12/18/2016 in devlog
In this week's devlog we explain how the planet's populations work, why you will be able to mine liquid oxygen and a bit about the visualizations of the main map.
I continued right where I left off last week and started tackling the next topic on my list of things to get done for our next milestone: Populations. If you are a regular reader of this blog, you might have a vague memory of me talking about this topic before. Since then, more than 20 weeks have passed and our plan of how we want to model populations in the game has changed quite a bit.
A quick recap: The original idea was to model populations as proper NPCs. An AI would control their purchasing behavior based on a set of rules and needs. Players would then essentially purchase manpower from them to run their production facilities.
While this is very close to our ideal of how things in Prosperous Universe should work, it turned out to cause quite a few tricky problems. Most and foremost, these NPCs would be quite easy to "game": Because a single NPC would represent the whole economy of a planet, the AI that controls it would have to be bullet-proof as to avoid price manipulations on part of the players. But even if we spent the time required to come up with such a system, there would still be the complexities involved in bidding for the available manpower and the delay it causes to anything a player wants to do on a planet. In some cases it might cause a complete loss of agency, for example when the required personell simply isn't available in a place where you need it.
Especially the latter would be quite realistic and in fact something that we want to have in the game at some point. But right now, we are working on the very first version of the game. The foundation of everything to come, so to speak. In this stage, what matters is that players can actually do stuff. That they are constrained by the game world but not to the extend that they can't do anything about their fate without mobilizing an alliance counting hundreds of other users (as would be the case if one had to colonize a planet with a full-fledged population just to get a certain production chain up and running).
So for now, we decided to drastically simplify the population aspects of the game. Firstly, populations are not NPCs anymore. Players can add habitation modules to their bases and thereby create their own pool of personell that's available without being affected by or having to wait for things outside of their sphere of influence. Secondly, it's now the players' job to provide for the populations by producing or purchasing the goods needed by the colonists. This makes the markets a lot more lively and stable since many actual players instead of a single NPC will be buying consumer products.
This week, I added the first server-side parts of this, mostly those that deal with the simulation of the actual consumption of goods. Next up is the influence of the supply situation on the efficiency of the workforce as well as all the interface components required to communicate the desires of the people to the great leaders that will be our players.
This week I finished one last feature we wanted to have in the universe generation process. It involves the phases of the resources that can be mined on planets. We already defined quite a few resources when we did the first iteration of the material/product tree. They can occur as mineral, liquid or gaseous resources. Take oxygen for example: Under normal conditions (moderate earth like temperatures, around one atmosphere pressure) it is a gas that is generated as part of the atmosphere on some of the planets in Prosperous Universe. So far so good, but what about planets that have very high temperatures and high atmospheric pressures? Oxygen cannot occur in the atmosphere because it would become a liquid under these circumstances.
So again, I did some research, found out that phase changes can be quite difficult and behaves slightly different for various materials. Eventually I came up with an approximation that works well enough for the liquids and gases in Prosperous Universe. We won't change the phases of mineral resources because in most, if not all, cases such high temperatures would be necessary that a human outpost on that planet wouldn't be viable at all.
The rest of the week I spent working on the client side of the game, specifically the visualization of the universe map. A few weeks ago we showed you a screenshot from the editor: Screenshot from the world generator
The universe map will look similar. While a lot of stars can be found in a hexagonal sector only one star will ever be in one of the triangles that make up these sectors. The idea now is to use these triangles to display various information like distribution of resources, traffic, demands for certain goods etc. We will do that by extruding the triangles upwards and generate a 3d graph out of them. I am not quite done with that, screenshots will follow!