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

Ridiculous last minute re-design!

So in case you missed the news from my last blog post (I haven’t exactly made it to the cover of Newsweek), I have released a demo for my space based autobattler Ridiculous Space Battles. You can grab the demo from here. In the run-up to release I knew a bunch of players had said they really don’t like the idea of grid-based movement, which marked a change from Gratuitous Space Battles, but I thought people would be won over when they tried it…

Anyway, to cut a long story short, almost everyone disliked it when they tried it :D. And I am not immune to persuasion from players, so I decided, with less than a month to go before the game goes into Early Access to just do the sensible thing and totally redesign the entire movement system :D. A lot of it is already done, checked in and updated, so the current demo has the new movement code in. It is still missing ‘Keep Moving’, ‘Escort’ and ‘Formation orders’, but ‘Keep Moving’ is already done and tested, and I’ll work on the others over the next week or so.

People also wanted Hit Indicators from GSB in there, so I added those too… (obviously you can switch them off)

So far I have generally enjoyed having the game out there, reading people’s feedback and suggestions. I had a bit of a silly crash bug, but it is since fixed, and a number of people have problems running the game on…Linux. Oh what a shock. I do wonder if linux gamers actually ENJOY games just not working, or apps not being available. It just seems weird to deliberately install a game that expressly says its Windows only, and then be surprised when it doesn’t work for you. I would say that at least 90% of bug reports are from linux gamers. I cant see demo platform data any more, but from what I remember around 1% of my customers are on Linux. 1%, but 90% of bug reports…sigh.

Anyway, I am kind of resolved not to care, I hate this sort of thing. 95% of players are wonderful, cool, friendly and clever people with great feedback and ideas, but some seem to have a desire to just start an argument. I am 56 years old and semi-retired, I am not wasting any of my remaining years arguing about linux or AI. If you are a furiously anti-AI linux gamer, do us both a service and just play something else.

BUT! For the other 99%, give the demo a try and tell me what you think. I do really enjoy constructive feedback on my games ;D.

Approaching Ridiculous Space Battles demo release!

Oh my god, the release of this game has always seemed to be some far off nebulous thing in the future and now I go into Early access with Ridiculous Space Battles NEXT MONTH. Argghhh. To put that into perspective, the last time I released a ‘new’ game was Democracy 4 and that was (checks steam…) January 2022. OVER FOUR YEARS. Oh my god what happened? Well the short answer is that this happened:

I built a solar farm, and it took forever, and it was stressful, but its mine and I love it :D. But also, Democracy 4 was a huge project, and also frankly a very successful one, and there was absolutely no urgent need for me to release another game any time soon. Also…I am 56, which sounds insane to me, but I am 11 years from retirement…and if I smugly retired properly at 60, I am only FOUR years from retirement. In other words, I am able, very fortunately to be slowly winding down the rate at which I make games, or at least commercial ones.

But anyway, after I finished the solar farm, I decided to mess around making a little simple game as a way to get back into game dev, and I made this:

Which is on steam as ‘Gratuitous Space Shooty Game‘. It was a piece of fun, its sold a trivial number of copies (211) and was made mostly because its something I could make in a few months. But that got me back into thinking about Gratuitous Space Battles, and how much BETTER a game I could make now, 16 years after the original. And although that started as just me messing around, I got more an more into it. Initially I was re-using GSB art, but then I decided to buy some stock models from CGITrader, re-combine them, render them, edit them and make all new fleets. Then generative AI became a thing and meant that creating the race images and module graphics could all be done as a solo developer, and then I took it way too seriously :D.

Because RSB is a passion-project, and not a big commercial endeavour, I decided to use AI where it made sense, and not where it didn’t, but not give in to the anti-AI crowd. I am FINE with people refusing to buy RSB because they have some political or aesthetic objection to AI. Not every game is for everyone. I hate the look of Terraria and Balatro, but millions of people like it, thats cool. I am absolutely not even vaguely even slightly even a little bit trying to sell this game to people who hate generative AI.

Christ I hate having to include that disclaimer every time I even mention my game…and before anyone says ‘Just hire an artist’, I do NOT WANT to hire anyone. I HATE working with people, and this is supposed to be a stress free relaxing development for me, not people management. So anyway… I am now at the point, after actual years of coding and testing and optimizing and balancing… where I have a playable demo for my game. Oh my god, its submitted to steam and everything…

Its been 16 years since I made a demo for one of my games. Demo’s used to be the default, then everyone realised they were a bad idea, as they actually cost you sales, then weirdly about 12 years later everyone decided demos were needed again, despite valve’s refund policy. Anyway…there will be a demo for RSB. Two skirmish missions, no challenges or campaign. I think its enough for people to say ‘I like this’ or ‘I hate this’ which is the main point right? Anyway…its done, complete with upsell on the main menu and from the exit screen:

I am no longer a member of many of game dev communities. Frankly I find online communities very hard to navigate. I am autistic as fuck, and that means I need a LOT of social-cue information to relate to people. Pure text is hard, and I am too quick to take offense, and also I can be too blunt, and lack a lot of the emotional skills required to converse with people purely by text. Especially anybody I do not know well. Combine that with the fact that my goals and my situation are different from most indies (I’m not new, I do not desperately need sales, I am not making a roguelike deckbuilder), and I find its just not worth me staying in those communities any more… So I am kind of releasing a new game a bit blind, without a big social group of game devs to ask opinions of, or beg for retweets etc. And to be frank, I think ‘fellow devs retweeting your launch’ has a trivial actual impact, and something I’d hate to have to do anyway…

So anyway, thats a lot of text to say Yes, I DO have a new game coming out very soon, November 16th! and I have put a LOT of work into it (longest dev cycle in my career) and I am VERY proud of it, but I absolutely do not care if some people hate it. Thats fine. I hate Broccoli, but I don’t knock on the doors of farmers to tell them. I think some people will love this game. If 1,000 people buy it in its lifetime, I will be very happy (and probably break even!).

So hey, add the game to your wishlist I guess? I DO have an ad budget, I’ve spent a few thousand dollars on it I thinks, but it doesn’t hurt to beg at the end of a blog post right? :D.

Challenge UI for Ridiculous Space Battles

If you played the original Gratuitous Space Battles game about 500 years ago, you will recall that the online challenges were a very popular part of the game. If not, let me explain: GSB was the first autobattler, so its a game where you set up a fleet of space ships (that you designed), give them orders, and then use that fleet to defeat the enemy in a mission (which I called a skirmish) that was designed by me (the developer). HOWEVER, there was also the option to just design a fleet that you thought was a good all-rounder against all foes, and submit a ‘challenge’ to another player (or everyone) and let them fight against your fleet.

To do this, there was an online system where you logged in, and designed the fleet, typed a ‘taunt’ for your enemies, and submitted that challenge. It got stored on my server as a small text file, along with a small thumbnail preview image showing the fleet formation. Other players could browse available challenges, download them, and enjoy designing fleets to beat them. There were ratings system, message systems, and ability to view all of the fleets that were sent to battle against your fleet. It was so cool, and so popular, it crashed the server. The challenges were stored as individual files, and there was something silly like 500,000 of them (or more), and the whole back-end basically collapsed eventually!

So lets not let that happen this time eh? (hardly a risk, as I doubt this game will be as popular).

Anyway, I am re-coding the whole thing from scratch, like I have done for the whole of Ridiculous Space Battles, so it means completely re-thinking the UI, the UX, and the back-end code. The previous layout of the challenge browser looked like this:

Which has not aged THAT badly, although it certainly does not fit the more clean and white-space loving UI of the new game. The original game went with an ‘industrial physical’ theme for the UI, and that feels very 1990s to me now. The new design currently looks like this:

A bunch of stuff has changed. I am now listing the challenge ID, and also a title as well as a description. I do not have difficulties in there yet, or ratings for fun, but I might include that again. The big problem is getting the balance right between ‘I have a lot of information to display here’ and ‘do not look too cluttered’. This is something I struggle with a lot in design, because I feel like my tastes are the opposite of most web designers and game designers these days.

I am an autistic, numbers-obsessed data-loving geek who loves nothing more than a super-complicated dashboard of data. (Its a miracle I only worked on the software on trading floors and did not become a trader myself) This means I am pre-disposed to a data-rich UI layout. But these days its apparently ILLEGAL to update any software without saying its a ‘cleaner’ look, which means that the whitespace has gone from 90% of the layout to 95% of the layout. Absolutely every ‘designer’ seems to assume the only UI in the universe is a mobile phone, and the only customer is someone who is mentally incapable of seeing two pieces of information on a single screen. By Kahless I hate this trend… but anyway, nobody gets to tell me how to design my own game, so why do I care :D.

Anyway, there is a lot more to do. I have a different UI almost complete for actually submitting a challenge:

…but I still need to do the code that downloads the challenge from the browser, and then launches the deployment screen with it as a battle to be fought, and resolve all that at the end (Telling the challenge there was an attempt, and if it was a victory… logging what the attempting fleet was, etc). I also need to stress test everything, and set things up so you cannot create multiple users etc etc.

Doing all of that means writing a bunch of web client code (I use the WinInet win32 API) and also server code in PHP and SQL. This is where I have found working alongside Claude (Anthropic’s AI) has been great. I do NOT (yet) use ‘Claude Code’, but what I am doing (with a £15/month sub) is occasionally asking for Claude to write some php, or some SQL or an WinInet function for me, that I then read through and check. This, in my opinion is a great way to use AI to make you a more productive coder, without worrying that its doing random stuff. I use Claude very sparingly to write general C++, but for this part of the game, I’m using it a lot.

Why? Because frankly I do not enjoy SQL or PHP and am not an expert. I can code in C++ with my eyes closed (you would expect that after 29 years right?), but I have written very little php or SQL, and this stuff is web server stuff so its DANGEROUS. If I screw up the .exe, the game might crash, but screwing up database code and php could let someone hack the server and wipe things. I REALLY need expert help on the php/sql stuff, and Claude certainly seems to be amazing at this. FWIW I use Opus 4.8 (High) right now. Anyone who has used SQL will appreciate being able to say “Write me the correct SQL to do this…”.

Anyway… things are progressing! And I hope to actually have the game in a shippable (to Early Access) state around October at the latest. All I have left to do is this challenge stuff, then a bunch of ship designing and fleet designing for the levels and campaign (already done, but definitely need another pass), and a tutorial, and then its basically very playable. Early access will hopefully be a period of optimisation, any bug fixes, and responding to player suggestions about balance, gameplay tweaks and new features. I think I *am* just going to re-use the GSB2 music for this game, and all of the art is done, so I am not waiting for anybody else (and this is proudly a solo project anyway).

If you want to be notified when the game is finally released, you can add it to your steam wish-list using the widget below, or maybe bookmark (and share!) the games website link. Thanks :D.

Ridiculous Stats Battles

A while ago I re-designed the post-battle stats screen for Ridiculous Space Battles. I was MUCH happier with this than the earlier versions and I loved the horizontal histograms for every weapon which showed not just how much damage they did, but how much was reflected or absorbed by each of hull, armour and shields. I think it was a vast improvement on what I had previously. However! there was much room for improvement.

The biggest issue was that the list of stats chosen didn’t seem to be that helpful. If your fleet was 95% frigates, why bore you with the ‘best’ cruiser and fighter weapons? I re-designed the system to show you more interesting key stats such as the most cost-effective weapon, the ship that was hardest to damage (toughest?) and the weapons that were in use the most (or least). These stats are way more helpful:

Although that was a big improvement, play-testing showed me that a key problem still remained (which is true of all auto-batllers), which was namely ‘How can I translate what I learn from all these stats into adjusting my deployment the next time I fight this battle? This is a big problem (and it was back in the Gratuitous Space Battles days), and I have experimented a lot and come up with a solution I am super happy with!

In hindsight, the solution is obvious. Give the player a way to view want went wrong last time, when they try the level again. In code terms, this was a ton of work, but it works!

So when a battle ends, after viewing the current stats (probably best thought of as stats-highlights now), if you then want to try the level again you have a togglable overlay over the deployment map which shows the fleet you tried last time, with a ton of stats for every single squadron showing how they did.

The coloured squares and the percentages show survival rates for each squad, and you get Survived/Escaped/Destroyed percentages as a tooltip, but click on any squad to see a pop-up with a bunch more stats, tabbed into defensive and offensive data.

And at any point you can use a hotkey (or the buttons at the top of the screen) to toggle from this ‘previous battle overlay’ to your placed deployment for your next attempt at a battle. This makes it SO MUCH EASIER to look at your deployment and work out what went wrong and why, and correct it for the next battle. It is also persistent saved-to-disk data, so you can come back to a failed mission months later and still see the battle stats from your last attempt.

I know the games development keeps taking longer and longer but its definitely getting to be a lot better as a result, and I would rather ship a great game late than a not-as-great game on time. Thanks for your patience, and for following its development! Since I took that screenshot, I have had a MUCH better idea for how to make that screen even better, and I’m working on that now. This means even more work, but its going to be awesome.