BEM was written in C++ with the IBM cset compiler for OS/2. It has 745K of source code that took over two years to create. Most of the code has been re-written: parts of graphics engine are third iteration, while most of the code is second iteration.
These are partial animation frames for the Rhino Commander (RhinoCom, a wordplay on Rhintek's product.) I think it was my favorite character in the game to make. It has leather armor, a black battle skirt, and a very big gun.
The drone BEM got cut from It Crawled from the Net. (As did the Brainiac BEM.) The most complicated model, it has four arms as well as knee and ankle joints.
BEM also uses computer generated animation. (I used trueSpace 2.) I created the models on the machine, and told it to render away. You don't get the detail and "grittiness" of the clay models. On the other hand, the process is faster and one doesn't have to worry about all that video noise. The lighting was more accurate. There are some occasional inconsistencies between the light on the clay models and the light on the backgrounds, which were generated with trueSpace as well.
The Plants (partial frames.)
I wound up writing all this code to make the game run that's not in the game. There are programs to process images, assemble all the pictures into one big-honkin' graphics file, a construction set to build rooms (that was an undertaking), utilities to do math and make sure everything fits together correctly, etc. The assembly of all the pieces is a big process.
But it was a wonderful moment (after Bill and I also wrote part of the multi-player engine) when we connected the two computers and opened fire.
On the other hand, some of the syntax could be a wee bit less confusing. (Like declaring pointers constant, for instance.) I think C++ is becoming much too large and complex. They should have stopped adding to the language somewhere back at templates. The most dangerous pitfall of C++?
array = new int[15];Is a memory leak! There had to be a better way. That one is tedious to keep track of and every beginning C++ programmer does it. Whenever someone starts talking about their weird memory problems I search for that bug.
...
delete array;
I'M
MAD. YOU'RE MAD.
WE'RE ALL MAD
HERE.