code, game, github, interactive
see also: phoenixcommand.net
In February of this year, I became fascinated with this 30 year-old game called Phoenix Command. Phoenix Command was a role-playing game system published by Leading Edge Games, and copyrighted by Barry Nakazono and David McKenzie. Various versions of the system featured in the games Morning Star Missions, Living Steel, and Aliens Adventure Game. Phoenix Command had extremely detailed rules in an attempt to realistically simulate combat. The game utilized lookup tables which resolve injuries to specific digits, organs, and bones, and simulates the physics of different attacks, such as bullets with different velocities. The game is essentially a highly detailed, accurate, intense small arms combat simulator. The game time is split into 500 ms increments called an ‘impulse’, four of which combine to form a ‘phase’. The better and faster your character is, the more actions-per-impulse they receive.
Phoenix Command is often cited as an example of “too much detail” in an RPG. Typically, game designers strive to find a balance between fluff and crunch. Phoenix Command is so much crunch it’s almost not an RPG, but rather a bullet simulator. I thought it’d be great to automate the table lookups the game demands to hopefully speed it up and de-complicate the craziness. After all, most of the hard parts of this game are just pausing to cross-reference on a table in a book, which isn’t very fun. A computer should be able to do this for you automatically, given the correct starting values.
What I ended up with was a decent translation of the basic game. There is so much more of Phoenix Command that could be added, but I thought the basic game was enough. Early on, I decided I wanted this to be a handy mobile app that allowed users to give accurate gunfire outcomes to army men figures. Instead of a “video game”, it should be a reference app to help you run a Phoenix Command based miniatures game.
I used Firebase as the real-time database to keep any clients connected to the game in sync. I used milsymbol to represent military units with actual military symbols. Honeycomb was the js library that allowed me to keep the hex map required of the game. Various other js libraries made the UI and data easy to work with.
Try the demo! (read access only. I haven’t yet built in authentication, you you’ll only be able to poke around the interface)