I finished my painting project the other week and packed my painting stuff away, so I suddenly became in desperate need of things to do instead of working. I started making a videogame about space.
The elevator pitch is Stellaris meets Mini Metro meets Cookie Clicker. Planets appear/are discovered, each with different amounts of resources and habitability, and you can build buildings on those planets to exploit those resources, and setup supply lines between planets to share those resources around. The goal of the game is to maximise your population, which means getting enough resources to high-habitability planets where your cities are. At the moment it looks like this:
This planet, for instance, has a decent amount of Fuel (that Oil Rig is running at 100% capacity) and good Habitability, which means the City’s growth is being boosted to 8.8, which means it’s reached 19billion people over a few generations (those numbers will need tweaking). Note that going down below 0 on any resource won’t be possible in future, so this world will need to bring in minerals and fuel to run as it is – or you could bring in food as well and replace all three buildings with colonies to take advantage of that x1.1 habitability, or if you’re low on Fuel use three Oil Rigs and ship the fuel elsewhere without needing to power anything else.
For this blog post I want to talk about some of the design decisions I still need to make for the game – I’m grudgingly setting it aside for a week to do some actual work, and also because I should probably think about what I’m doing next before I do it. So, here are the big questions, and they all link together so there’s a lot of decisions about the general direction to make:
How does the game scale up?
My original intention was for a Mini-Metro-Esque constant expansion and scale up – for those who haven’t played that, the camera basically constantly zooms out, with new stations spawning around the outside edge of the screen. However, Mini Metro doesn’t rely on clicking precisely, as this does, and the icons start out considerably larger: you can zoom out much further before it gets unwieldy to control things. (Plus, it can have the icons much closer together without compromising the “feel” of the game – squash planets in too tightly and the fiction of a stellar empire is lost.
Perhaps the game could scale discretely, so you move from “star system” view to “cluster” view, and even from that to “galaxy” view – you could even make the game itself scale (so you connect planets together, then zoom out and see the data for a whole star system at once, and then connect star systems together – but that seems perhaps more complicated than I want, and constantly switching between “layers” of view seems a step more action than is required for such simple actions. There’s no cost to rebuilding/switching buildings, so it’s nice and easy to tweak and change and switch strategies – and I want to keep that process simple, without needing to flick back and forth between multiple views.
Another alternative might be a large world which the camera can move around, a la Every RTS Ever, with some kind of expanding Fog Of War mechanic. This also makes planning on the macroscale more complex, but at least doesn’t require clicking through screens – just scrolling around. It would, however, keep the sense of the scale of a Big Space Empire.
How does the game end?
Back when I was using a previous system for the resources, this seemed fairly simple – go for too long without Food to any populated planet, and people die and you get sacked – again, like Mini Metro. However, the current plan is that operating at a deficit isn’t possible (low-grade buildings have small benefits but no costs, and you can’t build a building that would set you into a negative for any resource) so of course this isn’t viable. So how does the game end? Do I find another way for the player to “lose”? Do I find another end-state? (Get to one trillion population in as few planets as possible?) Do I add an extra, complicating factor? (Perhaps Convoys sometimes break and need replacing? (Sounds irritatingly random and easy to fix.) Does Habitability degrade over time? (Sounds like it would create a very slow gameplay degradation, and be fairly vague as to how well you were doing over time, and would turn the end into lots of tweaking and micromanaging for quite a small change.)) Or do I just drop the “ending” as an idea and let it continue forever, like a Clicker game? Sounds like it would be less satisfying than otherwise, have lower replayability (since I can’t keep the string of New Stuff coming like a clicker can), and offer some wierd technical issues (how many complex GameObjects can Unity hold before collapsing? Or do I dynamically load/unload them, and is that beyond my programming abilities?).
How do I make Convoys interesting?
Conceptually, Convoys are super simple. Link one planet to another, and click the link to set how much resources are transported and in what direction. I want to add an extra layer of complexity to them though – I want interesting spidery “supply lines”, and I want their layout to be something the player can optimise, rather than simply matching every planet to every other planet and juggling numbers. So what should that extra layer be? Mini Metro uses rivers and bridges – there are barriers on the map, and you only have so many routes across those barriers. That could work, albeit with the “barriers” represented with fancy space magic of some kind. (ps GW give me the Warhammer 40K license, i will put your aliens in and use The Warp to handwave anything i want). Another idea I had was limiting Convoy range quite strictly, with the exception of planets with a Spaceport building – so you connect planets in a local cluster together, then use Spaceports to connect them to other clusters further away.
Ultimately these all come down to the same question: what do I want from this game? I know I want it to be fairly chill and low-stress, without needing too much thought (a little mental maths, keep the numbers in the green, that’s all) But how much, and to what purpose? These are big questions, that with a more serious project I should have decided on earlier. I’m not giving up on this – It’s a fun diversion, and about the right scope for a game I can make by myself. However, I do want to step away from the keyboard and take the time to properly think about this – and I should, at some point, do some actual work.