Displaying the CPA system + possibly agents


Edit: I’m restarting this thread as I think it’s the right place to put the second post. It’s two different posts with different things in them.

I didn’t quite know where to put this. It’s a thought I had while out walking today, I’m not at all wedded to it I just thought it was interesting enough to post (as you can see I am no artist :smile: ) .

So when the CPA system is build we will (hopefully) have many patches each of which contains many (possibly thousands) of species. So how should all this info be displayed? Moreover how do we display the usefulness of agents when they have a different effect on every other microbe in your patch?

For the ocean some kind of 3D map showing where each patch is might be appropriate (this is another story). Inside each patch it might be nice to have something like a food web. However all the microbes feed on / fight with all the others so a tree diagram is going to look very messy with lines going everywhere, with thousands of microbes this might end up looking incomprehensible.

One key piece of information to work with is the predation function. Denote it F(A,B) which gives you a real number for “How much of species B is eaten by species A.” Assume for now this is anti-symmetric, which means F(B,A) = -F(A,B) (if bears eat fish and that transfers 10 protein per day then fish eat bears at the rate of -10 protein per day). Therefore for each species you can compute badassness = Sum_X F(A,X)/N(X) where N(X) is the number of species (so bears eat fish and bears eat birds and get eaten by nothing so they have +1 badassness, birds are eaten by bears but eat fish so they have 0 and fish are eaten by both so they have -1). You then display this information vertically on the screen. It gives you a measure of how often it is a predator and how often it is prey. Here is an example;

Edit: Sorry fucked up the calculation a bit here. The predation function will usually give you a very small value (like A eats 0.002% of B per timestep) and so when you average that across all species you are going to get a very small value, between -1 and +1 but usually like 0.001. I could redraw to picture, I’m not going to.


Now we can do this for all the microbes in a patch, each one displayed by an image of itself. However we have a free axis, the circles can get moved left and right freely. So we could have buttons along the bottom which allow you to select what to show on the left right axis. Maybe you want to see how many chloroplasts a cell has or maybe you want to see how fast it is, you can choose what to display, this could give you some great info, here is what you would see if medium speed was best;


Finally this could be used to show the effectiveness of agents. So if you selected “Agent - 1” along the bottom you would see all the microbes you agents worked on displayed on the left AND they would have a border which let you know which organelles they effected. That would be quite an easy way of displaying this information. Moreover it could be used to select what you want your agent to do. You could pick a microbe and say “I want my agent to affect this microbes flagella 100%” and then it could show you exactly what other effects that agent would have on other microbes (as you chose the code to line up perfectly with that one organelles but it will overlap with others). Maybe the size of the border could show the intensity of the effect. Here is an example;


What do you think? Agents may require memory and guesswork or information might be available up front, we haven’t settled that, I think this might work as a way of displaying the info the game is allowed to show you, however much that is. Moreover with zoom and a big “you are here” sign this could work nicely for arbitrarily big patches.

Edit: Also, come to think of it, it makes most sense to have both axes free. So you can left click to put something on the up down axis and right click to put something on the right left. Maybe you think there is a correlation between number of chloroplasts and speed, why not have a look?

In-game encyclopedia

I think this is probably a good thread to put this next mspaint based idea in, thought it is certainly necroposting.

Basically here are two problems we have.

  1. What about timescales? In a billion year microbe stage the climate will change a lot slower than the lifetime of a bacteria. Really we would want 1,000,000 generations of your cell to cover the 10,000 year period between ice ages. This is obviously a bit much to ask the player to do.

  2. Plate tectonics and designing planets. It’s a lot of work to simulate a planet and does the microbe stage really need it?

So here is a suggestion of how to solve both these problems, by basically completely throwing out time and space and gamifying everything. The cons of this are that it’s less realistic but the main pro is that it will feel right as a game, and that is huge.

Here’s a picture showing what I mean.

Each patch has an icon on a 2d map. Importantly there’s only 1 of each biome. Moreover the map is the same each time you play. The algal bloom happens occasionally and descends down through the ocean over time, mixing with the patches it passes as it goes.

Climate is controlled by the carbon cycle, the volcano on the left erupts and that changes the atmospheric gas composition which changes the temperature of the planet and the wavelengths of light getting through the atmosphere (I’ve already written a prototype capable of doing these calculations). The speed of climate change is based on “turns” (a turn is each time the player goes to the editor). So it will feel right, like if things start freezing over you will get 2-3 chances to adapt yourself to the change as it happens.

The concentrations of compounds in the ocean and atmosphere are controlled similarly, if the chemical concentration of the ocean is changing you will get some chances to adapt to these changes. (Unless maybe you are on a super hard mode). This is unrealistic (as the climate does not change in 2-3 bacterial generations) however it preserves the “spirit” of the stage. Meaning the climate changes and the player adapts to it and feels tension when there is a race.

For example if the planet gets too cold it can freeze over as in this next diagram.

and so you need to flee to the ocean vent to keep your species alive (as all the photosynthesizers will die and so will all life that relies on them. You are not allowed in the top patches at this time). When the ocean warms up you can spread out again.

Likewise if the planet gets too hot the ocean starts to boil off and the top patches become inaccessible.

The oil I thought was a cute feature that it could build up over time and you could come back to it later in the industrial, the quantity available could depend on how long you stuck around in the microbe stage for. Though be careful, too much oil might lead to climate disaster when you use it later!

Anyway what do you think? It is very gamey. It’s relatively easy to implement (the map is the same every time and the climate changes are slaved to the players actions / turns), it’s especially easy compared to procedural plate tectonics. It captures the spirit of the systems we are interested in. The CPA system would sit inside the patches and determine fitness / make alterations to the species and can be bolted on when we are happy with it.

Is it too limited or too boring? Is it too unrealistic? If you want many more patches can you say why? What is the advantage of a bigger map? If you want more accurate timescales can you explain how that will work and how they will be meshed together?

I think this will feel very gamelike and approachable, which I like, but will still have a lot of really interesting systems in the background (CPA, light and matter interaction, planetary climate calculation, carbon cycle etc). Anyway I’m not wedded to it or anything, just wanted to suggest it.


Very Gamelike, and I love it! However, I feel as though once we have 3d planet generation what we could do is just take a 2d cross section of the ocean we play in and overlay biome icons on top of it. Thus we do have variety in there and some replayability. I feel algae should stay in its respective biomes but i understand the idea. Making world changes happen at slow enough paces so you can adapt is also pretty good ideawise.


This sounds great! In most games a ledger or a info graph of sorts always helps in making the player informed of what is going on and what is going to happen if it continues, this really makes it feel more game like too since it provides needed info, like a Paradox game, I like it : )