Adam Blaster: Atomic Enforcer


Inner Sanctum

(Screenshot from cinematic)

Adam is invited home for a Hero's Welcome after vanquishing foes on 3 worlds and uncovering an alien conspiracy. He is greeted by Enforcer Prime and Mara Kane, but not in the way he anticipated. Adam quickly realized that it was up to HIM to stop the alien invasion.

  Hall of Heroes:

Adam returns to HQ after vanquishing formidable foes in 3 hostile worlds. He enters the Hall of Heroes and is greeted by Enforcer Prime's treachery.

  Inner Sanctum:

Adam chases Enforcer Prime through a portal into the Inner Sanctum where trans-dimensional aliens plot to invade this realm.

A Revolution Now and Then... A Good Thing!

We had originally engineered the game around a proprietary scripting language which allowed us the ability to get something on-screen with very little coding. The problem was, there was very little support for math or complex data structures, two things indispensable to writing a good game.

So, although we had a successful first pass through 75% of the game using the scripting language, we ultimately acknowledged that it was insufficient to create the final game, and we took a great and risky but all-important move under the leadership of our fearless Senior Software Engineer, Chris Petkau:

We threw out the scripting language and re-engineered the game from ground up in C++ with only 8 months left in the schedule.

The level of control afforded by programming at a closer level to the engine and the matured and robust debugging tools available with such a common language as C++ paid off in spades as we realized very soon in the new process.

My concerns with having to re-engineer all the levels in such a short time frame were eased by bringing two more application programmers to help out. Sandra Lee and Kevin Mack joined our forces in March and were very helpful in the endeavor.

A large impetus to the transition to C++ was the fact that the scripting language, designed to be easy to use, was too inflexible and unpredictable to be of any utility to anyone who hadn't noodled with it for half a year. Kevin and Sandra dubbed the scripting language "MaybeScript" because events that one specified to occur may or may not do so.

The second pass implementation in C++ went pretty smoothly, because we had already gone through most of the game in "rough sketch" form with the scripting language and had made most of the decisions on where things would go and how they would act.

Transitioning to C++ gave us many benefits:

+ Increased frame rate: By removing the overhead associated with interpreting the scripting language, we gained great performance.

+ Better tracing/debugging tools available in DevStudio 6: When something broke, we can trace precisely what happened. There was no guesswork or "maybe"s in C++.

+ Math, complex structures all supported: I don't care what anyone says, one cannot write a compelling game in this day and age with only counters and strings to track game state! We were able to evolve the brains of our creatures beyond the puny "see player attack player" automaton model.

+ More features! Because we were programming much closer to the engine (and therefore, RenderWare itself), I was able to come up with some visual effects classes for general use that I always wanted to see in our game.Some of these things, like lightning/electricity arcs, giant light beams and light shafts, and textured particles, made a nice improvement in making the game come alive when simple models and textures did not suffice.

All in all, the risky revolution was a success, and we are thankful it happened.

 Projects                   Gallery                   Résumé


©Richard Yeh