Let’s kick off the week right with the first full source code commit for “2299 : THE GAME“.
The source code is available under the GPL and the art assets are available under CC BY-SA.
This is really a double-whammy.
Not only do you get the source code and art assets for the game… but you also get the art assets for my comic strip, 2299, under a Creative Commons license.
Now for some technical details.
There are two, very different, versions of the 2299 code.
The first one is the “old code” that I started putzing with quite a long time ago. This is the currently released version for Linux, Mac and Windows and is written in Realstudio. You can grab that version (along with the art) over here.
The second one is the “new code” that is responsible for the DOS specific version and was built with an older version of Adventure Game Studio (the new versions of which are open source under the Artistic License). This version started as just an excuse for me to tinker around with Adventure Game Studio… then it turned out so well I decided to keep going. You can grab the DOS version over here. [At least you will be able to in just a bit, I am fixing a few path issues with the project file so it's not such a mess when it gets committed.]
The code for both is extremely different.
In the Linux/Mac/Windows version I implemented custom script, stage, actor and dialog systems. The net result is that it’s pretty easy to add new Actors and Stages. Each Actor having events that get fired such as “Talked To”, “Looked At” and so forth.
Honestly it would be pretty trivial to base entirely new games (or expanded 2299 releases) without ever really touching the engine behind it. For example: To add, say, a new actor (an object you can interact with in the game) you simply create a new instance of the “actNPC” class, add in the initialization code in the “initActorsPlanets” (or whatever you like really) — the initialization code here simply sets the name, graphic and location — and then fill out the events (like “Looked At” and “Talked To”). Take a look at the “planetEarth” class for a good example of how this works (with fancy branching dialog and everything).
The AGS (Adventure Game Studio) version, on the other hand, is built with that system in mind (and using AGS’s built in scripting language – which is really pretty cool). There are a few new graphics assets that have been added to this version to make it work a little nicer under DOS (and on tablets when run in DOSbox)… and there are even new toolbar icons that are reminiscent of some of the old Sierra adventure games (though… with a distinctly 2299 style).
There’s not a lot of documentation in either project. But they are both pretty doggone self explanatory once you take a look. Want to edit what the Kill Ball says in-game? Open up “shipKillBall” and edit “ActorTalkedTo”. Easy peasy.
Now, with that out of the way, time to fix a few issues with the website and pull together the next code drop (it’s going to be a fun week).