Note: Armoured Commander is still very alive in the sense that I continue to issue updates to fix bugs, but here are my reflections on completing the project
Back in January 2015, I was fairly regularly playing Flames of War and Bolt Action, tabletop miniatures games set in WW2. I started thinking about a way to play scenarios solitaire between games, and happened upon the 1987 board game Patton’s Best. Reading through the rules I realized that it was essentially a stripped-down, pre-calculated, and campaign-driven adaptation of the Advanced Squad Leader system. Without actually playing much Patton’s Best (which does have an excellent VASSAL module), I instead decided to try to make a solitaire tank commander game, using the framework from the PB board game but also drawing upon ASL and other systems to flesh it out. Being neither an artist nor a programmer, making a Roguelike game with a simulated ASCII console interface and making it in Python made the most sense. I felt that the campaign structure and random generation that I had in mind fit the RL genre as well.
While I’d previously started making a few games in BASIC, C++, and Python, ArmCom was the first game that I’ve ever brought to any state of completion. Just over a year later, while there’s certainly a lot more that could be done to improve and expand the game, I feel that I am finished with this iteration of the project. Here’s some of what I’ve learned along the way.
- I no longer think it’s a good idea to base one’s game too much on any one pre-existing system. Early on I spent a lot of time thinking through different aspects of Patton’s Best and trying to figure out how to implement them in a computer game. I realized, too late, that the most freedom of creativity comes from being free of restrictions like this. I think restriction is important in art (sticking to ascii being one example) but that these restrictions should be self-selected and have a purpose. Partway through I started developing new systems and components which, although it’s a fine game on its own, I like much better than many aspects of Patton’s Best. ArmCom2 is not going to follow any one established system, but will be something newly assembled from different sources of inspiration and ideas.
- While I’m grateful for all the feedback I’ve received, I don’t think I will release versions of my games to the public as early as I did previously. I suspect that the clunky, buggy early versions might have put some people off trying the game later on. Anything put out there for people to try should be polished, even if it’s a small, limited portion of a much larger planned game. Screenshots and descriptions of game features, however, are great things to get out there, and a small cadre of dedicated beta-testers is always welcome.
- Beware of getting bogged down in a minor feature. Although the campaign maps are a nice touch, they don’t add anything functional to the game, and ended up taking a lot of time to get working properly. Once I had added them, however, I felt that I had to implement them properly, whereas I probably could have just left them out altogether.
- The more game data that lives outside of the code, in data files that are dynamically loaded as needed, the better. This makes it much easier to organize the way that game data is structured, to change and update aspects of the game (sometimes while it’s running in the background), and to expand it later on. Too much in ArmCom is hard-coded as long lists of data, whereas it should exist as data files in a standard format such as XML.
- It’s important to focus on the core experience of your game, and let everything else fall into place around it. The core experience of ArmCom is commanding your tank and crew on the encounter map, and unfortunately after a while this gets quite repetitive. In hindsight I wish I had put more time into designing this aspect of the game, and then added on the structures for the campaign day, and the larger campaign calendar.
Finally, I should note that I think ArmCom is a seriously flawed game: it’s just too unpredictable and capricious to be fun, and while this is likely an excellent simulation of what being a tank commander was historically like, it doesn’t make for a fun experience. Tank commanders in all forces went out on their missions not knowing if they would return alive, and never knowing if there wasn’t an enemy tank or anti-tank gun lurking around the next corner. One of the horrors of war is the randomness to it, that bravery and skill mean little when shells and bullets are flying, and the survivors are often lucky rather than skilled. In ArmCom your tank might be attacked and destroyed at any point in an encounter, and in most cases there’s little you can do about it but, more importantly, little you could have done to prevent it. You can play very defensively (and in the early game this is essential) and still be unlucky enough to have an 88 take aim at you. This is the reality of war, but it feels unfair to the player who, given enough knowledge about the game and planning, should be able to triumph. Roguelikes are always random, but they are rarely completely unfair. Even the most deadly opponent will give you a few turns to react. Do you quaff an unknown potion, hoping that it saves you? Do you run toward the staircase, hoping that the monster doesn’t follow you? There’s always at least one last-ditch effort, but in ArmCom, as soon as that 88 fires, you might be dead without any recourse.
In ArmCom 2, I’m hoping to improve this by changing the core structure of battle encounters so that instead of a very abstract directional map, gameplay takes place on a geomorphic grid. In ArmCom the action begins and the enemy will often already be firing at you. In ArmCom 2 you have a chance to choose how your tank and its allied forces are deployed, either as a traveling column or in defense of a position, before the battle begins. The player tank will still be vulnerable, but hopefully careful commanders will learn to place their recon forces ahead of the main column, to support themselves with AT guns and infantry, and not to poke their hull out when they know a Tiger is waiting for them. In that case, hopefully, the player will understand what they did to earn their lost tank, and the game will encourage players to do better next time.
That’s the plan, in any case! Stay safe out there, tank commanders.