The Big Decisions

by Ron Gilbert
Mar 14, 2015

When I asked what we could do to make this dev blog better, one of the suggestions was to talk more about the decisions Gary and I are making. The hard, tough decisions that can make or break a project. The decisions that can mean the difference between a flop and an enduring cult classic. The decisions we look back on and realize how close we came to disaster, if not for our years of experience and highly tuned design sense.

Well, today I wrestled with just such a problem, so I thought I'd share.

Tool names. Yeah, I know. Not sexy. Sorry for the dramatic build up.

I always struggle with what to name tools. I know they are just tools, tools that me and one or two other people are ever likely to see, but it's still important to me. Tools names should reflect the character of the project or engine. Nothing is worse than an object editor called "Object Edit".

The name and theme of the SCUMM system was a wealth of fun tool names. It was rare we couldn't think of a good one (and one or two that were too gross to use). If the SCUMM system hadn't been called SCUMM, I don't know what it would be talked about today. Maybe I'm wrong about that.

SCUMM was the name of the engine, but it was also the name of the compiler, not the run-time engine like many suspect. The name of the run-time engine was SPUTM.EXE (renamed to MANIAC.EXE or MONKEY1.EXE when we shipped).

MMUCUS was the tool that crunched all the raw art and script assets into .ROO files that were packed into .LFL files when the final game was built (all the bytes were XOR'd with 0x69 to make the files virtually uncrackable - eat on that SSL).

CYST was the character and animation editor and BYLE was used to create fonts (or maybe it was the other way around, I forget).

FLEM was a GUI tool that allowed the game programmers to define objects, object states and the walk boxes. This was all before Windows, so the GUI was all hand written and very "8-bit". Of course, back then we didn't call it 8-bit, we called it modern, cutting-edge, and the future.

The Thimbleweed Park tool I'm working on now is our equivalent to FLEM.

Problem is: I didn't have a name for the tool and it was driving me crazy. Yeah, I know. First world problem.

The vast library of code that I'm building our engine on is call GrumpyLib and has existed for years. It was the used in Word Spiral, The Big Big Castle, and Scurvy Scallywags. It's not really an engine as much as it is just a bunch of cool code I use to solve problems.

My job over these first few months of Thimbleweed Park is to take all this code and build some kind of a 2D point & click engine (the easy part), but I wasn't sure what to call the engine (the hard part).

Naming an engine is important because it sets the tone and theme for all the tools.

Based on my library of code being called GrumpyLib, I've decided to call the engine Grumpy and the FLEM-like tool I'm building now is called Wimpy.

I feel like I have a naming system for tools now. The project can finally begin for real.

For my Monday post, I will do a video demonstration of Wimpy and if you're nice, I might even post some code.

- Ron



oldtaku - Mar 15, 2015 at 02:47
I've been doing this for 40 years, and there's still nothing harder than naming.  Utils, files, classes, methods, variables, there are no rules of thumb that adequately handle everything, especially when you need to make it catchy and puny, and anyone who says otherwise is a filthy liar.

Wimpy's good. I will gladly pay you Tuesday for a demonstration on Monday.

vegetaman - Mar 15, 2015 at 11:36
This is so true. Naming stuff is always the hardest part.

Mattias Cedervall - Mar 15, 2015 at 02:48
Ron, you are right that memorable names are important! Many people are very bad at coming up good names for movies, books and so on. :-( Maybe your game engine based on Squirrel can be called Squaids?

longuist - Mar 15, 2015 at 13:02
How about woodchuck?

Mattias Cedervall - Mar 15, 2015 at 13:25
I don't know...

enthusi - Mar 15, 2015 at 03:08
Uh noes, lower case in a tools name? I love the wimp part though as in my job it stands for Weakly_interacting_massive_particles.
Sounds like Adventure Game Characters to me :-)

Snader - Mar 15, 2015 at 03:46
Sounds a bit like the dwarfs from snow-white to me.

Love to read these blogs. Makes me want to create an adventure game again.

Soong - Mar 15, 2015 at 06:01
Thank you so much for sharing this.  This post made me laugh out loud, especially the part about your "encryption".

I think you're totally right about naming engines; it's always a magical moment for me in Monkey Island 2 when the part "Scumm(TM) Story System by Ron Gilbert, Aric Wilmunder, Brad. P. Taylor and Vince Lee" shows up on the screen.  Ok, part of it is seeing how the engine that was written for a game four years earlier made it that far and also seeing your name in games (even after you left LucasArts), but I always thought the name was really cool.  I also liked the fact that LA stayed in that tradition when they named their 3D engine GrimE.  Anyways, I think for the random player, the name of the tools doesn't matter, but certainly for the people who use them and also for us adventure players who get a kick out of little details.

Thank you again!

Mattias Cedervall - Mar 15, 2015 at 07:48
I would've added something to the end of Grumpy and Wimpy to make it sound more unique like Grumpynator (I now discovered that Grumpynators is the name of a name stealing band) and Wimpynator for example.

Alex - Mar 15, 2015 at 08:02
Please don't use the term "flem-like" again.

Christopher Griffin - Mar 16, 2015 at 09:48
It's okay, because he didn't say phlegm-like.

Damian - Mar 15, 2015 at 09:23
Can we expect other tools called "Sulky", "Lumpy" and "Wussy" then?

smartypants - Mar 15, 2015 at 10:07
> CYST was the character and animation editor and BYLE was used to create fonts (or maybe it was the other way around, I forget).

In an Gamasutra article [1] Aric Wilmunder says that
- SCUMM = compiler
- SPUTM = interpreter
- FLEM = room editor
- MMUCUS = room file bundler
- SPIT = font editor
- BYLE = animation tool
- CYST = successor to BYLE

[1] http://www.gamasutra.com/view/feature/196009/the_scumm_diary_stories_behind_.php?page=2

Christopher Griffin - Mar 16, 2015 at 09:48
Thanks, smartypants!

peterszky - Mar 15, 2015 at 11:49
:DDD

Best post so far!

Davide - Mar 15, 2015 at 12:32
LoL!

delMar - Mar 15, 2015 at 13:32
Looking forward to the tool called "Lusty".
I wonder what it will be good for...

Christopher Griffin - Jun 10, 2016 at 15:16
Finding all of the "hot spots" in a room.

Natalija1999 - Mar 15, 2015 at 13:54
I got one question: What is the secret of Monkey island!? P.S. I know that this question has nothing to do with this game but I'm curious!

Iron Curtain - Mar 16, 2015 at 18:37
Ron Gilbert will absotively, posolutely not answer that question except in officially licensed. game form.

Iron Curtain - Mar 16, 2015 at 18:39
I forgot to add: IF there's zero chance in hell that Monkey Island 3a will happen, THEN Ron Gilbert will spill the beans. As of now, he'll keep that secret.

Dominik - Mar 15, 2015 at 15:01
I really want to see some code on monday.

It will be like opening Ron's mind and looking directly at his ideas.

It's been my dream for years.

Don't destroy my dream.

Why are you mad at me?

What did I ever do to you?

I don't want to look at your code anymore!

...

I'm sorry.

Please show us some code on moday!

(cough)

Jammet - Mar 15, 2015 at 15:24
It's really fun to play around with "Acronym Finder" when you're struggling for names for you various creations! ;)

VAST   Versatile Adventure System Tool
INGOT      INteractive Game Operator Tool
INLET   INteractive Logic Entertainment Tool
INPUT      INteractive PUzzle Tool
INTEREST   INTERactive Entertainment System Tool

This thing spits 'em out by the dozen if you enter a few words. :) But Grumpy is grumpy, and doesn't sound boring at all :).

Patrick - Mar 15, 2015 at 16:49
Can't wait to #include "GrumpyLib.h" and get rich and famous with my very own adventure! Besides that library some code snippets on Monday would also help.

Leandro - Mar 15, 2015 at 22:49
When I cracked Monkey Island 2 Copy Protection in 1996 , I noted that XOR 0x69 operation ( I had to re XOR all two changed bytes in order to propperly modified MONKEY.000 File also ) , yet no one ever could answer me , specifically why 0x69 ? why that number and not other ?. That mystery haunts me til this present day.

Santiago - Mar 15, 2015 at 23:26
I guess because of the sexual position 69....?

Leandro - Mar 16, 2015 at 22:04
Hahahahahahahaha !!!! Still , I suspect there are deeper reasons for that , even , maybe the "Secret" of Monkey Island !

Leandro - Mar 15, 2015 at 22:52
The MMUCUS-Like tool should definetely be called Limpy.

Zak Phoenix McKracken - Mar 16, 2015 at 03:52
Name your tools with the prefix "TW" (ThimbleWeed).
Examples:
TWEED (-Engine Editor)
TWIRL (-Intuitive Random Library)
...
and so on your fantasies!

Leandro - Mar 16, 2015 at 22:14
TWAT       ( Thimbelweed Audio Tool  )
TWINS      ( Thimbleweed Interactive Narration System  )
TWIST      ( Thimbelweed Interactive Scripting Tool  )

Geoff Paulsen - Apr 29, 2015 at 13:16
Ha.  

But Ha in a good way, like "yes, make that happen".

Marcel - Mar 16, 2015 at 05:04
SNOT - Significant Number of Tools

Eugene Sandulenko - Mar 16, 2015 at 08:32
And we would like to have support for Grumpy engine in ScummVM :D

Strawberry - Mar 16, 2015 at 10:14
Wimpy is a great start to a list of tool names.

Derrick Reisdorf - Mar 16, 2015 at 10:26
Weird.  It seems as they want to name themselves.  2D Point and Click Engine...2Pac?

Rum Rogers - Mar 20, 2015 at 14:06
Isn't it a little restrictive to only have rects as hotspots? Why not generic polygons?

Ron Gilbert - Mar 20, 2015 at 14:14
First pass. I may go to polygons at some point.  I don't like to over-design until I know there is a need. Polygons add complexity in being able to visually edit them, plus concave/convex issues. My goal is to get the tool up and running and then see what is needed.  Also, sometimes you just want a box for hotspots. If you give game programmers the ability to add complex shapes, they will, but that's often not what the player expects. Players don't see hot spots as complex shapes, they see them as boxes.

Jihan J. - Jul 17, 2015 at 13:52
SPITP (Sprite Programming Interface for Thimbleweed Park)

(The second "P" is silent.)