To make an SCI game today, you can just grab a copy of SCI Companion and use that to import graphics and music, do the scripting, text… basically everything but drawing bitmap-based backgrounds. You get a copy of the interpreter matching the template you chose, the system scripts are all set up for you, and you can just hit Compile
, watch it work, and it’ll even automatically run the game for you in DOSBox, perhaps even starting you off in a specific room.
But dear lord do we have it easy nowadays.
In the old days, making an SCI game involved several separate utilities, many of them interface-less command line tools, and a particular network setup. That is, the tools expect to be invoked from a specific hard drive letter, as they are provided from one point of the network. There’s another where the system programmers keep the latest builds of the interpreter and system scripts, and the team for a given game has a batch script file to pull the latest into that game’s working directory. Writing the actual script code is roughly the same as it is now, but instead of a dedicated script editor they mostly used Brief. To test their changes, the programmers had to invoke SC
, the Script Compiler. Given that Brief was apparently pretty extensible, this could probably be done from there.
While we mostly work directly on RESOURCE.###
files, Sierra’s games were developed what I call loose-leaf style. Each type of resource was stored in its own folder, and a “wherefile” specified where each of them could be found — they were basically just RESOURCE.CFG
by another name, really. And that name was literally WHERE
. Turns out you can specify which configuration file you want the interpreter to use.
view=../view sound=../sound pic=../pic font=../system cursor=../system videoDrv=/system/ega320.drv soundDrv=/system/std.drv kbdDrv=/system/ibmkbd.drv joydrv=/system/joystick.drv
To make the game, they didn’t use makefiles. They used batch scripts that invoked SC
and compiled the .sc
source files to .scr
files in the SCRIPT
directory, and copied over the script resources from SYSTEM
.
Given how relative paths work, running another particular batch file would run the interpreter from one directory while in another, from which point the paths given above can be considered valid. Since they didn’t have the “start at the room specified in this file” feature that SCI Companion’s template game adds, we get the game-specific debug modes that ask for a room number on startup, as extensively documented elsewhere.
And then, when the game is considered fit to ship, they build a list of which resources go on which disk, pass that to yet another command-line tool, which goes through all that and produces the RESOURCE.###
files. Copy the result and there you go.
That list does not need to include all resources though. Indeed, as there are things that are included in the game data but left unused, there are some things that never got on a release disk in the first place. Let’s just say some things in the Larry source assets are even raunchier than you’d expect.