For our latest technical Gamasutra feature
, programming guru Bruce Wilcox reflects on his experience building game scripting languages for 3DO, Radical Entertainment, and LimeLife, weighing in on whether to 'Build, Buy, or API.'
In this excerpt, Wilcox explains the processes that led to the creation of one of these scripting languages, ICE, built during his time with 3DO for a PlayStation 2 project called Army Men: Green Rogue
“In 2000, when 3DO (now extinct) was beginning its multi-platform common library strategy, one of the elements was a scripting language. 3DO was tired of each project designing and building its own language, then training the level designers in it.
When our project (Green Rogue for PS2) started, we, of course, wrote in our design doc that we would adhere to the new 3DO policy- i.e., that we would use the common library code, including its scripting language. Then I read the scripting language documentation. Or rather, tried to read it.
It seems the new scripting language was really just a macro preprocessor for C. I struggled to make sense of it and I knew no level designer was going to read it and comprehend it. The language presumed some event handling mechanism and timer, but didn’t supply one. That meant each project would create their own macros and timers and event mechanisms. Really, each project would be completely unique in its scripting language with just a minimal common core.
Finally, all the language did was preprocess C. That meant compiling the script into the load file for the PS2. If you wanted to change a script, you had to recompile and redownload the new ELF.
He later added:
“Many people have written scripting languages for their companies, only to have the language disappear after zero or one use. To accomplish making my language truly useful and universal, I needed to do the following: a) build a better language b) document it so people could learn to use it c) support it so that any project that needed new features could get them d) promote it in lunch lectures and by other means so that people knew why they should want to switch.
Without all of those steps, it would become yet another scripting language used on yet another project. And right up there in importance was creating a great name, something that people would react well to (this is a marketing exercise). I chose ICE.”
You can now read the full Gamasutra feature
with more from Wilcox on creating custom scripting languages to suit the needs of game development projects (no registration required, please feel free to link to this column from external websites).