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 recognise just about anything, from common (dinosaurs) to esoteric (Shoggoth). Most people believed that this impressive system was the result of complicated maths, but according to one designer, the real secret was handcrafting.
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 piece about 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 categorise 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 doughnut in the same space, everyone would flee from there. Except the cop should totally go for the doughnut, 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 doughnut in the same space, everyone would flee from there. Except the cop should totally go for the doughnut, 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 favourite object is santa (he gives presents) My favourite adjective is lovecraftian (lotsa eyeballs)
And my favourite 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 maths...
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.