Tags: DOS Gamedev

In November 2019 I took a break from my ongoing Game Boy project to try prototyping a racing game.. for MS-DOS. It's now April 2020 and the prototype is a released game available from itch.io. Whoops.

SlipSpeed animated banner

SlipSpeed started as a quick experiment to answer the following questions:

Can I build for MS-DOS from modern Linux/Windows/OSX?

Yes! This was the easiest problem to solve. DJ Delorie still maintains the very good and free DJGPP compiler suite, which is pretty much a complete solution for compiling DOS executables and is available even now for contemporary operating systems. After some configuration, I had a makefile that could cross compile to DOS and launch the game in the free DOSBOX DOS emulator in a single handy command.

Are there MS-DOS game development libraries?

Allegro maintained MS-DOS support all the way up to version 4.2, which was maintained as recently as 2007! It has everything a developer could want in a game programming library: blitting, audio, image loading etc. I'd used Allegro a couple of times previously, most recently for DATA-RUNNERS, another MS-DOS prototype for the alakajam gamejam.

Would it fit on a floppy disk?

Including Allegro in an executable does bulk it up somewhat, but macros are included for excluding unwanted drivers and further optimisations are probably possible with some conditional compilation of the library. Totally reasonable filesizes. Unfortunately, out of the box Allegro doesn't support compressed image formats - so if my game was going to use much in the way of graphics I'd need to add support for compressed formats. Music was another concern, but I'm fortunate enough to be friends with talented musician and all round handsome dutchman Martijn Frazer, who explains here how he made the music and why it's so small. The shareware release version fits uncompressed onto a single 1.4MB floppy, the full game can also fit - but only when compressed.

Who would even want to play a MS-DOS game in 2020?

I'm a member of Dos Game Club, a community of nerds that pick an old DOS game each month and play it - something like a book club but for really old videogames. So, I figured I knew at least a few people that might be interested in a new game for their favourite operating system. Beyond that? Who knows - but it would be unrealistic to expect there to be a commercially viable market for a small independent DOS game in 2020.

So after some work I ended up with a development environment on a modern linux machine that could output DOS executables - and as my machine has a built in floppy drive, I could almost automate deployment to my real DOS laptop. I still had to manually eject the disk from the dev machine and insert it into the laptop, however :(.

All the excitement of a cross compiling build process

For designing and building the tracks, I used the excellent Tiled map editor. It would have been fun to create my own track editor, perhaps running inside the game itself, but Tiled really accelerated the development process and helped me iterate faster on tracks.

Tiled editor in action, making the DAMNSEL track

If you're interested in seeing more of how the game developed, I kept an occasionally updated twitter thread populated with videos and screenshots.