Game Design, Programming and running a one-man games business…

Ridiculous Space Battles: how and why?

Its 15 years since Gratuitous Space Battles came out, and when I announced a few days ago that I was making this game, I said I’d been working on it for 18 months. How come? Why not announce sooner? and why am I making it, and why now?

After I made the last expansion pack for Democracy 4, I took quite a bit of time off, because I had the mad idea to build a solar farm. This literally took years longer than it was supposed to, and swallowed up a ton of time, and effort, and caused me an insane amount of stress. Even though the farm has been generating for 6 months, its STILL causing me stress and still not properly finished. To put it mildly, during this time I did not have the energy to actively and publicly be working on a new video game.

Any indie game dev will tell you that it is a super stressful job, and a very very hard way to make money. I can say with experience now that solar farm development is 10x as stressful, so that took its toll and meant there was absolutely no way I would also announce a new game. I simply could not cope with having to deal with people asking me about the game, or asking when it would be done, or telling me it was a bad idea and that I was doing it wrong. I had multiple bouts of screaming and tears over the farm. No way was I going to add more pressure or work on top.

You do not know stress until you have personally financed and managed a project like this. Gamedev is easy.

So as a sort of ‘hobby project’, I decided ‘for fun’ to make a little space shooter game using the assets from Gratuitous Space Battles and its DLC. This was a fun project to work on. I coded it all completely from scratch, with a new engine, because I actually find writing engine code (2D but using 3D APIs) to be genuinely relaxing. I know most people would not agree, but thats me. I got quite into this game, and eventually made it public, and put it up for sale on itch.io and on steam. I’ve since stopped using itch, as they ignore requests to pay developers for months, but you can still grab that game on steam:

Anyway, I enjoyed that enough that I ended up making a proper game rather than a little vertical scroller. The amount of change this early game went through is huge. At one point it was called ‘paint by spaceships’, where you basically had microsoft paint, but with brushes that deployed formations of spaceships. To this day, the game’s project folder is called PBS.

A screenshot of ‘Paint By Spaceships’

That then got changed to a game called ‘convoy’ which was like GSB but entirely about protecting a convoy of freighters from enemy attack. The Visual C++ project for the game is still called CONVOY. That then morphed into a ‘re-imagining’ of GSB, called Ridiculous Space Battles. I had decided to re-code everything entirely from scratch, because I prefer to do that rather than hack and bodge together 15 year old outdated code.

At some point I decided that re-using art assets from GSB was a bit boring, so ended up buying stock 3D art packs and kit-bashing together my own new art for the ships. At this point, solar farm dev was less intense, and I was working 40+ hours a week on the new game. I even spent some actual money on the art packs and some new textures for backgrounds and planets, so suddenly this was less of a hobby and now an actual new commercial game I would release.

I am in a very very fortunate position as an indie game developer, in that I have had a run of hit games, starting ages ago with Kudos, then Democracy, then Gratuitous Space Battles, the Democracy 3 and 4 and Production Line. I also published Big Pharma, and I invested the profits pretty cannily. Thus I made enough money that retirement beckoned. Early retirement no less! what a luxury. I then decided to spend a gratuitous amount of money on a solar farm. I do not know if it will break even yet… but even so, I am in the fortunate position of not *needing* RSB to make a huge income. I do not have to stress myself half to death chasing reviewers and streamers and youtubers. I do not have to manically work 60 hour weeks on it, or beg people for wishlists and bundles and marketing opportunities.

However…

I am now super proud of what I have made. Having a ‘second go’, from scratch, at a game idea from 15 years ago, with no financial pressure is a huge opportunity. Realizing very late that I somehow invented an entire genre (autobattlers) and never really capitalised on that is very motivating. When I look back at GSB, its a very very innovative game, but it was a first-go, and suffered from a load of obvious game design mistakes. Why not right them, and try to make the game GSB should have been? Even if it makes no profit at all, but just leaves behind a game I am proud of, and a small percentage of GSB players bought and enjoyed and brought back good memories, thats definitely a good and worthy thing.

An early design for the main menu

As of today I have not sent a single press release or told any journalists about the game. I am building up to it. The game is actually playable, and looks lovely, and I have a never ending supply of awesome screenshots. I could do a trailer right now, but I am thinking about getting new music for it before them (it currently uses music from GSB, which is…ok, but could be more modern perhaps). I also have no real release date, and a very flexible schedule and design.

I am also really enjoying writing the code for it. I updated from Visual Studio 2013 to 2022, which actually went extremely well. I am sticking with directx9 but pushing it to its limits, and doing it in a way that will be tons more stable than when I attempted it in Gratuitous Space Battles 2, which had technical issues :(. I have way better tools to develop the game now, and 15 years more coding experience. I also am happy to stick with top down 2D graphical style. GSB2 did mock-3D lighting and I don’t think it was worth it. Sticking with simple 2D gives me other options to ramp up the crazy spectacle, and its working well.

I’m already pleased with how the game looks, and it will only get more ridiculous

So yup, expect a lot of technical coding blog posts (and design ones) over the next few months.! In the meantime you can add the game to your steam wishlist now :D

Announcing Ridiculous Space Battles

So yup… I’m announcing a new game. I don’t say that often these days! For the last eighteenish months I’ve been working on a project as a hobby that turned into a serious hobby that then turned into a full time thing, and has now become an actual game that will be released on steam this year (into Early Access anyway), called Ridiculous Space Battles.

If that name sounds familiar, its because 15 years ago I was the guy who made ‘Gratuitous Space Battles‘. At the time, there was no other game like it, and now its become a whole genre called ‘autobattlers’. Yup, that was me. I don’t bang on about it as much as I should frankly. But anyway, I made GSB 15 years ago, and a bunch of expansions. A few years later I made GSB2, which was a bit of a flop by comparison. It had bugs for some players, and I got annoyed about it, and really decided to just switch genres and make more political strategy games, publish other people’s games, and also make Production Line: Car factory simulation.

Then at some point I started building a Solar Farm.

But WE ARE SO BACK. I have had enormous fun making this game, and I have so much to say about it. I want to write blog posts, post on social media, etc, and I have been waiting until I was ready to announce it with some nice screenshots like this:

And this

The way I am developing the game is a bit mad, and worthy of a proper long blog post, but for now, I will just leave it that there is a basic website up here, and you can see the game’s steam page (and wishlist it!) on steam here. Also if you are on social media,. any retweets or posts or likes are welcome on this post on bluesky and this one on X. Thanks!

More updates coming really soon :D.

Designing a system of orders for units in a war game

So… I am sort of working on a game as a hobby. It may never be released. But anyway, lets pretend its a Napoleonic war game.(its not). That allows me to at least talk in non vague terms. I am stuck slightly in the way I am designing a core part of the game.

Imagine a game where you have to place down a large number of units, on a map, and give them orders. The game then plays out the resulting battle against a pre-placed AI enemy. These days the kids call that an autobattler, but AFAIK I made the very first one (Gratuitous Space Battles), so I didn’t have a name of it back then. Anyway…

The goals in the design for such a game are actually quite complex. The system needs to be intuitive, so it can be played easily by a fairly casual gamer, but also provide depth where possible, must ensure that the way things play out goes as expected by the player (they feel like they had real control over events), and must result in a visual outcome that looks appropriately cinematic, and not just like a bunch of idiots in a bar room brawl. (This is my #1 critique of all the total war games, that seem to descend into this). These goals are actually quite complex and conflicting, and I have spent a lot of time and code trying to reconcile them.

Formations

One of the clearest places where stuff falls apart is when it comes to formations. If you have a long line of units, and declare them to be a formation, then you are expecting them all to operate as one. My solution for this was to make all the units but one the ‘dumb followers’ of this one independent formation ‘leader’, which would be free to care about other orders. If the leader moves forward, everyone in the line also moves forward. Sounds simple enough to design & code right?

Nope.

Firstly, the leader may die. In that case we need a new leader, so the system has to hold an ‘election’ to pick the most appropriate replacement. Initially I chose the largest unit at the time of election, but you then encounter issues where the lead ‘unit’ may weaken down to 1% health, but is still the leader. Ideally there are periodic elections to ensure ‘leadership’ is tied to current strength, but this needs to take into account units healing and not result in leadership ping-ponging etc. Also in my game the ‘strongest’ unit does not necessarily visually make sense for deciding who leads and who follows. Just picking a leader is complicated as it is.

Its amazing what good condition the grass is in after a thousand soldiers have cartwheeled around on it to form patterns.

Secondly, how is the formation maintained? A line of units that represents a column in the Y axis looks good at the start of battle, but is the formational-consistency based on the initial x/y offset or does the line ‘wheel’ around the leader? If the leader turns to the left are we now doing a wheel adjustment? and if so, shouldn’t the leader be the unit in the middle, not the strongest?

Thirdly how do we handle gaps? If half the formation is destroyed, does our line now close ranks to form a thinner line? a shorter line? or do we just ignore the holes and continue as a depleted sparse formation? What would the player expect, and what looks coolest?

Engagement Range

This is the one that has just stumped me and made me write this blog post. For example, lets presume that your unit is not in a formation, but it has an ideal range to engage the enemy, due to its weapons, of 800 meters. How do we take into account this engagement range (and maybe a minimum range of half this?) when deciding where on the battlefield we need to be. So for example, a unit of cannons is looking all over the battlefield, thinking ‘where is the place I should head to now?’. How does it decide where to go?

The first system I have coded looks ahead and slightly to each side, and evaluates every square it could move to and gives them a score. For each square, it looks at all the units, in all the nearby squares to this potential target site, and counts up the values of all the potential targets for each square. There is then some minor tweaking to penalize far-off squares, and a hellishly complicated system of ‘reserving’ and ‘occupying’ squares so that the units don’t all end up stacked on top of each other. All of this code is written, and to some extent it seems to all work but…

…you then get the Total War bar-room brawl situation because it turns out that with this algorithm the ideal place for every unit is to be slap bang in the middle of the battle where it can shoot at absolutely everyone. Hence the big furball of messy collision in the middle of the map.

My first thought is that this is just something needing a minor tweak. If units heavily prioritized locations where enemy units were within a certain percentage of the engagement range (in this case say between 600-800m) and actually penalized places where enemies were within that range (say under 600), then you would get the long range units more sensibly placing themselves at a nice aesthetically pleasing distance where they could shoot at each other in a classic war movie style.

I can throw a banana further than this. WTF is their engagement range set to?

The Bigger Question

However, I am starting to wonder if that is all a load of bollocks.

There are three different scenarios under discussion here. The military reality of what makes sense in a real war to win a battle. The movie version, where the goal is to look cool, and the game version where the goal is to be fun, and intuitive and satisfying to tinker with as well as watch. I have definitely been starting from a real military position, which is at the total other end of the spectrum in terms of where I need to be (a fun game!).

One of the primary drivers of the code I have written so far is that it is supposed to seem like it makes sense for military units to do this. But as a game, I kind of don’t really care. Games are not vaguely concerned with the inconvenient truth of military history. We want things to feel fun, even if that means the choices make little sense. It might be TRUE that a line of 10 gatling guns on a hill could obliterate an entire roman legion, but after seeing it once, is it still fun? Not really. What wargames like this focus on is a sort of block-puzzle game, where carefully mixing and matching and positioning units ‘unlocks’ a solution, which is a complex feat of ‘combined arms’ resulting in a close victory.

One of the great things about modern gaming is we can make some really cool special effects, and use massively powerful video cards to draw amazing spectacles. That takes a bit of the pressure off of designing a game that is so intricate in the abstract. I used to play a tabletop war game called Starfleet Battles. Its LUDICROUSLY complicated, and a single turn can take an hour with a group of players. The ‘fun’ comes from the complex interactions of highly detailed systems. It has to, because the actual experience is just hours staring at pieces of cardboard on a map, hoping nobody sneezes.

I was ludicrously obsessed with these games back when I was young and before electricity was invented.

Simplification

I’m not exactly known for simple games. But there are certainly companies that outdo me. The Hearts Of Iron games are just way beyond me, in terms of the amount of stuff to keep track of, and Eve-Online has become a game seemingly more involved than life itself. These games also have 100+ developers working full time, and this game is a hobby project I am spending an hour or so a day on, so its not going to go in that direction…

…and genuinely I am starting to consider the idea that my game should more resemble a simple puzzle game more than a complex uber war simulator. The amount of variables will still be high, and the outcome very pleasing. I think the cool ‘fun’ element of games like this is ‘I tried this… it failed, but was an awesome battle. I’ll try again’. It shouldn’t involve multiple hours of tweaking individual units decimal points in the AI decision making. Maybe the whole army is always just ONE formation, and it just moves right at the enemy as a single cohesive pattern? Maybe all the complex route-planning AI is utter bollocks? There are definitely a ton of much simpler games out there that seem to do this. I wonder if thats what a ‘roguelike deckbuilder’ game is? (I am sick of the term, but still don’t really understand what it means tbh).

Anyway, it might all be academic, as I might get bored and make something else. But I might not :D.

Gratuitous Space Shooty Game released!!!

And you probably thought I wasn’t still making games right?

After the long and intense development of Democracy 4, which is a HUGE sprawling game with a LOT of code, and a ton of content, and is now in about 10 languages and has 3 expansion packs… it was nice to be able to make something small, and simple, and not at all commercial or serious. With that in mind I started messing around making a space-invaders style vertical shooter, using the art assets I have from an older game of mine: Gratuitous Space Battles.

GSB is pretty old now, but TBH the spaceship graphics for it still look incredibly good to my eyes. I generally think its very wasteful that the games industry hires so many people to make music, SFX and graphics, and then makes a single game with them, never to be re-used in any way. Frankly a spaceship is a spaceship, whether its used in an RTS or a shooter or a turn based grand strategy game.

I know some people worry that gamers will bombard you with abuse for daring to use the same artwork in another game, because they will feel ‘cheated’. This strikes me as utter nonsense. Sensible re-use of assets just makes sense. As a general principle I hate waste, and I love efficiency. Also, not doing something because a tiny, tiny percentage of vocal gamers may complain about it is definitely a losing strategy in gamedev. There are always people who complain about any choice you will make.

After working on this game for a bit, and initially thinking it was a little throwaway thing I’d probably keep to myself, I started to really enjoy its development. I have never made a vertical shooter, but I loved Star Monkey, which is very old, and I am old enough to remember the first space invaders arcade cabinets as a kid, as well as Galaxian (far superior imho) and then Phoenix and the rest. I also spent a lot of time playing Astrosmash on our intellivision console as a kid.

Gratuitous Space Shooty Game is a bit of a mashup of a lot of those shooters, with some extra ideas that occurred during development. My wife playtested it a lot, and HATED the asteroids, so I added a repulsor beam to keep them away from you. Once implemented, it became a very cool new gameplay mechanic, as it allowed you to ‘balance’ attacking ships above you to get some extra shots in before they leave the screen.

During development I experimented with a bunch of ideas, and after a lot of playtesting, I’m happy with what I chose to do. The fact that you can accidentally shoot ship bonuses gives the player an incentive to keep moving and not risk a volley destroying a bonus. Penalizing you for every ship that escapes, INCLUDING the left-right ‘saucer’ ships also adds to the challenge. Making it so that the best power-ups are only dropped by those ships was also a good move from a design POV. Adding friendly ships you have to avoid is an evil mechanic, but its still in there!

In the end I went with 25 levels, and the levels get slightly longer as you go along. I don’t do any adaptive difficulty stuff, although I considered it. I do offer 3 difficulty levels from the start though. The top one is seriously hard. In-between levels you get to spend your cash, earned from shooting aliens and collecting bonuses (and a cool 10% bonus if nobody escapes) on upgrades for your ship.

Right now the game is only on itch, for $3 with a suggestion of $5 if you want to. It will not be a big financial success :D. Because I was doing it for fun, its currently windows only, and fixed aspect ratio of 1920×1080, or scaled to fit fullscreen. Windowed option literally went in the day before release :D. Its English only for now. I may try a google-translate for the limited text at some future point if I do an update to it.

So there you go, its another game by me! the first non-strategy one for a long time. I’m quite proud of it. Its a fun short laptop-friendly game you can play in lunch hour or multiple coffee breaks. If you like the look of it, get a copy!