I originally wrote this code in 1994-95. I finished the game engine and was ready to go when my graphics guy (Robert Kauffman) dropped out of the project. As I didn’t have any decent graphics tools (Hey, it was OS/2!) I never actually released the game. The background and Walker were done by Bob (Cool, huh?). The rest I slapped together.

I recently decided to re-release all of my OS/2 shareware software (http://www.ratajik.net/OS2), and most of the source code. This release of Diver is from that effort. While I’ve touched up the code a bit (fixed a couple of bugs, general clean up, etc.), it still is very much a pre-released game. I may port the code to Windows (the code is VERY portable, as it’s layered nicely). If so, I will continue to make improvements to it. I also am now mostly a Windows/C++ programmer, so I’ll probably be moving it to C++.

The original reason for writing the engine was to prove whether a action game, with a scrolling background and many sprites, could be totally written using threads. Each sprite is a thread; when the player fires a missile , each is its own thread, interacting with the game environment as a self contained entity. What would game performance be like with so many threads? Would the overhead prove to be to much? And would threading make the game programming easier or more difficult?

Another reason for written the game was to show that OS/2 was able to be a game OS. Could it handle high speed parallax scrolling? Was it possible to blit a large number of sprites using OS/2 API’s, and have acceptable performance.