Beyond the Chiron Gate: April 2019

I’d intended to do an end of March dev blog but it slipped as I kept wanting to make one more tweak to my systems before I posted the next preview version.

Since the last dev blog I’ve mostly been working on the random universe generator. This is an example of its current output:

I spent a lot of time going back and forth about how exactly I should generate the planets. Originally I wanted to include actual numbers in the simulation: the star’s mass and luminosity, each planet’s distance from the star, mass, radius, black body temperature, and from that generate its surface composition and atmosphere, and so forth. But this led to the code being complex and hard to balance, and all the scientific research I did just led to more research rather than resolving my questions. I came to realize I was spending time on complexity that players wouldn’t really notice. So I decided to strip out the numbers and describe planets in terms of small, medium, large, etc., and come up with a generation algorithm that gave realistic-looking results but would also let me more easily fine-tune things like the proportion of ice planets vs gas giants later down the line.

What the system does is divide a solar system into three zones, each of which has 0-4 orbits. An orbit can contain a numbered planet, minor planet, or asteroid belt. Inner planets are always rocky; middle planets can be rocky or gas giants; outer planets can be ice planets or gas giants. Eventually I’ll fine-tune this so that different star types will have different numbers of planets in each zone.

(In science terms, inner planets are those within the frost line, which is the distance beyond which it’s cold enough for ice and other volatiles to remain stable. Middle planets are those that were within the frost line when the system was formed but aren’t any more, as the frost line tends to migrate outwards as the star gets older and hotter. Outer planets are those which formed outside the frost line and are still outside it. Currently the modelling is very simplistic and I will make it more complex later, e.g. to add inner ‘hot Jupiter’ gas giants which formed outside the frost line and migrated inwards, but I think my approach of dividing the solar system into zones rather than calculating each planet’s exact temperature etc. is a good one which I’ll stick with.)

Once the game has generated each planet’s size, surface composition, atmosphere, and misc. features like whether it is tidally locked, it goes through the whole system and adds planet anomalies. These anomalies are things that you can encounter during gameplay, either by deliberately exploring them or by having them trigger as hazards while you are exploring something else.

Actually, before the game places anomalies it goes the system and generates civilisations. Every terrestrial (non-gas-giant) planet or moon has a chance to have a civilisation, and the civilisations are a factor in generating anomalies. The idea is that if you see something like a rock formation it could just be a rock formation, or it could turn out to be an ancient monument or a crashed ship.

Civilisations have a random technology level, which affects the kinds of anomalies they can generate. If a civilisation’s tech level is at least interplanetary, they can generate anomalies anywhere in their system, otherwise they only appear on their home planet. (In the final game I’m also going to add interstellar civilisations, whose artefacts you can find in several different systems, but for now each system is generated in isolation.)

This planet had an intriguing rock formation, and when I explored it I found it was actually a monument to an alien dictator:

Because the monument is the only Fleblamm artefact I’ve discovered on this planet, I can tell that this wasn’t their homeworld, which means that their homeworld must be another planet in this system. Clicking on the civ name takes you to the Data view, which contains a listing of every civ you’ve encountered.

Right now a civilisation consists of a name, a tech level, and an extinction date,  but I’ll add more details later. (I’ve got a system of civilisation traits set up, but I haven’t made the system generator add them yet.) I also might come up with a more subtle way of modelling aliens’ technology than just “tech level”, to allow for them to be more advanced in some ways than others. Civilisation names are currently taken from a list that I got by repeatedly clicking on an online random generator, but I’ll eventually make my own generator so every civ name should be unique. I’ll also round the extinction date to two significant figures or something as it is a bit silly to have the date be so exact.

Regarding extinction dates, right now every civilisation the game generates is extinct. The game also doesn’t generate life on any planets, so every civilisation is from a planet that has since become uninhabitable. I’m not trying to make some pessimistic statement here! It’s just that extinct civilisations are easier to model than living ones, since you can’t interact with them, so I thought I’d add them first.

Anyway I eventually found the ruins of the Fleblamm’s capital city on the icy Chi Eta VI:

Another thing you might notice is that I’ve replaced Supplies in the top left with two resources, Fuel and Armour. Fuel gets depleted when you move between planets or land on them, and armour gets depleted by certain events which damage your ship. If either one runs out, it’s game over. You can replenish fuel from helium-3 deposits in some gas giants’ atmospheres, and armour from metal-rich asteroids in some rocky asteroid belts. (I think in the full game I’ll lock the ability to do this behind ship upgrades, once I introduce a ship upgrade system.) I was originally going to have Supplies in addition to these two, but I decided to cut it because it fulfilled a similar role to fuel in that it was a resource that depleted during the normal course of play.

My next step will be to refine the anomaly system and add a lot more content to it: more things to find on planets and to happen to you when you’re exploring. These would include first alien life, and then non-extinct alien civilisations. Once I’ve got a decent amount of content there then I’ll think about better modelling of crew members and a ship upgrade system. I also think now also might be a good time for me to take a break from this big project to make a smaller game and/or a Seedship update, so you might see one of those before the next Chiron Gate blog post.

This entry was posted in Beyond the Chiron Gate, Dev Diary. Bookmark the permalink.