Glowbot Commander is a game I created about 3 years ago. It’s a retro styled top-down shooter with some real time strategy elements. You can directly control your character (which is a robot) by using the standard WSAD keys to move around and the mouse to aim and shoot. You can also release the robot from direct control, where it will then fire at enemies on its own. It will also back up from enemies on its own. In this mode you can control the robot in a similar way you would control your units in a real-time strategy game. You can click on a place for the robot go go, have it patrol, tell it to attack a specific enemy, have it guard a specific ally, or hold its position. You can purchase additional robots to fight with you, or different guns and shields. Upgrades and robots can be sold for money, or swapped out for different upgrades. Your team of robots fights against endless waves of enemies. You can also make your own maps.
This is a Java game. I used the Eclipse IDE. The game framework I used was LibGDX. I did all my drawings in Inkscape. All my animations were done using Spriter. The spriter animations are easily integrated with LibGDX via the Gdx-Spriter library. The game is hosted on Itch.io. I created a job in my personal Jenkins build server that uses the Itch.io API to automatically package and deploy the game to Itch.io whenever I run the job.
The game has over a hundered unit tests and a few integration tests, which are run on every commit on my Jenkins server. I used a modified version of the entity-component-systemdesign pattern to easily manage the creation of the entities in the game. This design pattern allowed me to easily create entities where I could swap out different rendering, AI, and logic components to change the look and behavior of the entities without having to create separate entities for each different robot and enemy. In other words, all the entities use the same underlying logic but have different “components” that make them look different and behave differently.
The swarming and avoidance logic the game uses is based on chapter 6 in The Nature of Code.
You can download the game here. I haven’t been actively maintaining the game. If it generates any interest or if I feel like developing it further I’ll start maintaining it again, but for now I’ve moved onto other projects.