Microbe Stage Terrain Generation and Features

Me and Nunz had been discussing physical terrain in the developer chatroom, and after some momentary exchanges decided it would be a good idea to move the discussion to the forums.

In Thrive, the microbe biomes are currently incredibly similar in terms of gameplay, being vast expanses of empty void populated by cells and occasional floating rocks.
While this isn’t an immediate concern as the microbe stage functions well, it is clear that implementing tangible terrain features could vastly expand the biome diversity in this early stage by further differentiating the various patch types. However; some may consider this to be inherently unrealistic at the microbial scale, and so this addition could potentially come at the cost of Thrive’s scope of realism.

That being said; should we decide to implement this, we need to know how it aught to be done.

Patch Terrain

I believe that the following patches should contain terrain features and blockages, the unincluded patches will remain open zones like they are in the current game.

Vents:
The vents biome could be a largely open area containing occasional “pillars” or other small terrain features that would never really be in the player’s way. This would introduce players to the concept of static terrain and allow them to experiment with involved strategies or parts without hindrance.

Vents terrain will be dark basalt.

Seafloor:
A large expanse of maze-like substrate. The seafloor will introduce players to moderately tight spaces that they must navigate with care, lest they be cornered by predators.

Seafloor terrain will be a mix of dark and pale substrates and occasional stone.

Cave:
The cave biome would be mostly open space, with occasional terrain features riddled with small cracks that could potentially offer safety to smaller prokaryotes from large predators.

Cave terrain will be grey craggy stone (I almost preferred brown but we need to differentiate iron from the surroundings.)

Ice Shelf:
The ice shelf will consist of large open seas with occasional ice flows where terrain would become much like the seafloor, presenting a diverse zone. Open areas would feature currents.

Ice shelf terrain will be condensed ice crystals creating a sort of crystalline and jagged appearance.

TidePools:
Large enclosed spaces interconnected with each other to create a sense of being walled in, while still remaining largely open and navigable. Stagnant water with very little currents.

Terrain would be a soft rosey or tan sandstone or substrate.

Alongside the terrain, it is also important to consider the implementation and functionality of currents and other interesting environmental features.

Currents

Currents in particular should be found mostly in the open ocean zones, but may also be occasionally found in enclosed biomes unless otherwise stated.
As of now the exact appearance of currents has not been decided, but we have had a few concepts on how they may appear;
https://cdn.discordapp.com/attachments/464847028539752471/817722693083594792/procedural_lighting_and_3ds.png
Currents will lightly push cells and any other loose objects along a path, allowing players to receive a speed boost, or forcing them to fight it or go around it. This will help make the world feel more alive and varied.

Things we need to discuss here is how to generate currents, how large they will be, how strong they will be, and how they will appear.

I personally believe that currents should be decent in length with an escapable width acting as a moderately gentle force pushing objects around. A minor nuisance at the worst. Visibility is very important, as invisible acting forces can be a great source of frustration.

I would like to see what ideas everyone has in regards to how to implement this, should we do so at all, we also need to discuss how we intend to handle the mechanical side of terrain generation and how it is performed.

I should also mention that this feature likely won’t be high priority, but it’s always good to discuss.

1 Like

These sound like good ideas, and ones that have been proposed before. Adding some bigger scale objects in the world the player needs to navigate around seems like a good idea to make the game more interesting.

1 Like

Imo, one solution for this would be to make these features rare, since at the scales we are talking about spaces between terrain would be enormous.

I think this environment would be better suited for the seafloor, those labyrinths could be the spaces between grains of sand so realism wouldn’t be compromised. I think Cave patches should be open spaces because, again, microbes are too small, and their distinctive features would be its environmental properties. Once organisms become bigger then Caves can become restricted and claustrophobic spaces.

1 Like

I was mentally justifying it as the cells living within the tiny cracks within the stone rather than in an open submerged cavern. Also, gameplay wise I was thinking it would be better if players encountered such an advanced biome later on the game rather than near the starting biome, though I suppose that won’t really matter once we have randomly generated patch maps.
That being said, I’m fine with caves being more open, maybe make the terrain more like the iceflows instead.

I wouldn’t like to force the player to navigate through a maze-like sea-floor but maybe that would be interesting progression-wise? I suppose we could always give the current patch map some more connections to bypass the seafloor if it became a problem.

Should the seafloor have maze-like terrain, or open seas?
  • Mazey Terrain
  • Open space
0 voters

I’m going to go ahead and drop this poll here, Nunz mentioned using polls in his devposts and I thought it was a great idea as well as it can help folks have a say in things they otherwise wouldn’t know what to add to.

not sure if thats a yes or no question. Its a mazey or open space question. Is yes pro-mazy? or anti-mazey?

I had a bit of a brainfart there, thanks for pointing that out. I went ahead and remade the poll so everyone will have to vote again, sorry about that.

2 Likes

Alright, it looks like everyone is in favor of the seafloor having alot of terrain. I’ll go ahead and update the parent post to keep track of this decision.

1 Like

Recently there has been some interest in implementing the long awaited water currents into the microbe stage, and after a bit of discussion in our chatroom, I have decided to go ahead and share some ideas on how this could be done.

First we need to decide on how currents work.

My idea is that the basis of currents will be reliant on a vector grid; similar, if not the same, as what is used to render our compound clouds in the microbe stage. The points of this grid will have a projection force assigned to them, dictating how strongly and which direction they push objects and clouds that come into contact with it. So basically, the force of currents would be rendered in a similar way to compound clouds. (For those unfamiliar with vector fields, Nunz provided this).

Next, we need to consider how the forces represented in this vector field are generated.

The current plan is that the computer first generates a path via sin(x) or some other capable equation, assigns a direction to the path, and then applies this (Hopefully finite) path within the vector grid. The path dictates the distribution of force projecting vectors, as well as the direction of their force.
Think of this as drawing your finger across a field of pins, knocking them down in the direction your finger travels. Lifting your finger, you would find a visual not unlike this.


(When I mentioned vertex in this concept, I meant vector).
These paths would spawn in a similar manner to other objects; occasionally being dropped into the play area at random to be interacted with.

With this method, the world would be littered with a bunch of water currents that begin and end rather suddenly. In reality currents don’t just stop in place; they shift, twist, and contort as they flow throughout the world never ending. And so I introduce the next step in generating currents in Thrive.


By continuously generating new segments to place at the end of a current each time the player approaches, we can effectively simulate currents with endless continuity and variance.

I believe that this can be achieved in some way by tracking when an active force vector is aimed towards an adjacent neutral vector, or perhaps by simply tracking where the generation of a current segment stopped.

I admit that the nature of generation is unfamiliar territory for me, so I am unsure about the feasibility of this design. Regardless, I hope that it at least provides insight and ideas for how we can go about implementing functional currents. Any and all feedback is appreciated.

1 Like

This is actually pretty close to the current currents implementation.

(as noted before it’s not visualized in any way so it is not applied to cells currently).

I think the only real major difference is that in your design the currents directions are more harmonious, I think the current system has a lot higher variability in the pushing force between nearby points and they aren’t a part of large continuous currents.

1 Like

Well that’s good then. I assume that means this mechanic will be less work intensive since we already have something to work off of.

I feel that less chaotic currents would be preferable in terms of gameplay so I would like to pursue that if possible.

Edit: I should also mention that I left the visual aspects of currents out of this concept, as I feel Nunz is the best person to bring that up with their knowledge of graphics programming.
I can at least grasp programming generation, but graphics programming is magic to me.

1 Like