Back in 2009, a little game called Scribblenauts blew minds across the world with a single ambitious concept: you could make anything. By typing a noun on the in-game keyboard, youâd conjure that object into the gameâs world. The game could recognize just about anything, from common (dinosaurs) to esoteric (Shoggoth). Most people believed that this impressive system was the result of complicated math, but according to one designer, the real secret was hand-crafting.
On Twitter yesterday, former 5th Cell designer Liz England talked about âmathwashingââthe myth that a service is created by algorithms when itâs actually crafted by handâand mentioned Scribblenauts as an example. âBelief: In Scribblenauts the objects were all data driven & relied on inheritances, systems,â she wrote. âReality: hand authored 1 by 1 & lots of crunch.â
England, who now works for Ubisoft (and wrote this excellent pieceabout what video game designers actually do), went on to explain that many of the objects in Scribblenauts required careful massaging to get right. Although the design team at 5th Cell was able to categorize every item in the game and give many of them shared (or inherited) properties, there were always exceptions. For example, England pointed out, all humans could eat food, but vegetarians shouldnât be able to eat hamburgersâwhich meant going into the database and changing things by hand.
Cops, for example. âWhen you look at individual objects, the rules donât make sense,â she wrote. âThe cop was a great example of how inheritance in systems failed here. A cop wonât flee from monsters if armed with a gun, right? But if you arm an orphan with a gun, heâd still flee, right? If you put cthulhu AND a donut in the same space, everyone would flee from there. Except the cop should totally go for the donut, right?â
All of Scribblenauts was full of exceptions like this, which is why England and the rest of the development team had to get into the dictionary and dig dig dig.
With Englandâs permission, weâve reprinted her full Twitter thread:
Liz England: Scribblenauts objects definitely had systems and inheritance. They were placed in a 2-tier hierarchy. Ex: âMammal -> Water Type -> Dolphinâ
Some of the top level categories were things like âToolsâ âPeopleâ âFoodâ âBuildingsâ âPlantsâ âMiscellaneousâ (ridiculously useful)
There were some broad strokes things that could be inherited. Like, I dunno, âMammal -> Waterâ all had a checkbox for swim underwater
And you could do things like if an object was X by Y pixels, automatically set itâs weight to Z.
In a perfect world these systems would inherit across categories and youâd have to do very little hand-authoring to tweak outliers.
In practice when you are dealing with cartoon objects â âstereotypesâ â the most important thing is how they are different from each other
For example, all humans were scared of category âmonstersâ and ate from category âfoodâ. This is why the âvegetarianâ ate âhamburgersâ.
But when you look at individual objects, the rules donât make sense. The cop was a great example of how inheritance in systems failed here.
A cop wonât flee from monsters if armed with a gun, right? But if you arm an orphan with a gun, heâd still flee, right?
If you put cthulhu AND a donut in the same space, everyone would flee from there. Except the cop should totally go for the donut, right?
The entire game was riddled with exceptions to the rules. In the end sure, I didnât have to set the melting point different for each person.
But the expectations of players coming into the game meant that every AI, and many other objects, needed tons of custom âexceptionsâ.
In case youâre wondering, yes we had a lot of interesting conversations during dev, like if you glue steak to a lion will it eat itself.
I worked on Scribblenauts right out of school as the main object/dictionary designer. As my first shipped game it was a wild ride.
I often think how much better I am at design with 9 (!) years of experience behind me and what Iâd do differently. (Not much, less crunch).
FYI the melting point for humans (IIRC) was 180F. You could place a campfire near them and they might sweat but never reach that tempâŠ
But if you SURROUNDED a person with campfires, the ambient temp would raise over time high enough and theyâd catch on fire.
For common Q&A: My favorite object is santa (he gives presents) My favorite adjective is lovecraftian (lotsa eyeballs)
And my favorite combo in Super Scribblenauts is the pregnant cannibal baby. (think about it)
There was an interview where someone said we read scoured dictionaries for words. This wasnât ENTIRELY accurate. It was actually wikipedia.
It didnât actually matter if an object was accurate, What mattered is that it did what people expected. Wikipedia was best source for that.
Wikipedia also conveniently categorizes stuff, and includes lots of synonyms of other things people might call a thing from various cultures
Incidentally, this was how the word âsamboâ entered the game as a synonym for âwatermelonâ. Clear apologies here!
(When devs get upset about the potential âPC policeâ accusing them of -isms, I donât have much patience. Deal with it. I did, it was fine.)
In Super Scribblenauts I did download a public domain dictionary and stripped out everything but adjectives. Left with ~80k words.
Which had to be sorted. By hand. Into synonyms and categories. Most were deleted (no time, or too specific â like medical terminology)
During development I got our entire studio temp IP banned from google b/c I was using the thesaurus feature too fast, thought I was a bot.
I think this is the only time I made friends with a QA tester who I still have never met. I knew her only through her bug reports.
In particular, the bug she kept reopening titled âMongoose does not defeat cobra.â Very difficult to fix without making the mongoose too OP.
In short, when offered a job any sane person would think âthis wonât ship, weâre all going to get laid offâ⊠you should prob not do it.
But sometimes a particular design challenge is too tasty to say no to.
LAST thing. When they told me we were going to do adjectives in the sequel, I jokingly said âI quit.â Then I did the mathâŠ
If you tested 100 combinations PER SECOND, every second, every day, it would take 4,944,752,622,004 years to test every combination.
Or just 4,944,752,622,004 computers one year to test every combination. And that is why we have bugs in video games.