Moon Environments

by Kim Aarnseth April 07, 2018

Moon Environments

This week is all about the moon environments.

Summary of this week’s devlog

  • New DevLog on youtube
  • Moon environments
  • Awesome screenshots
  • The problems with looping


Showing off  the the new moon terrains:

Moon Environments

A big part of Lunar Soil is about exploration! Initially we decided to have one large moon with different thematic biomes. We changed that! Why only have one moon when you can have a multitude of small interesting and creative ones instead? It makes it easy for us to design interesting locations, add new ones and let you pick where you want to go (of course you will need to discover a location before you can colonize it which will take some skills).  

Each moon will have different opportunities, resources, secrets and problems to solve. We took some time making sure we got the setting right this week - we've worked a lot with the environmental feel of the moons. The moons might look complete now but there will be a lot more things to interact and play with once we're finished.


Here is a set off screenshots of the terrains:  

A land divided by a river of lava. reaching the other side might reveal some secret location of temple A land divided by a river of lava. reaching the other side might reveal a secret temple.


A cold little moon. A cold little moon with black sand, rocks and glaciers.


Windy sulfur crater filled with valuable resources.Windy sulfur crater filled with valuable resources. There might even be some strange fish living in the sulfurlakes!  


Crater worldA gloomy dark crater world.  


Gigantic desert moonGigantic desert moon with signs of an ancient civilization.  


A stable plateau surrounded by lava.Watching the sunrise on a stable plateau surrounded by lava.  

The Looping world problem

Remember when we talked about looping worlds? If not, check out this post and then come back here! We got support for streaming levels and looping worlds. The system will unload and load new chunks of environments as you move through the world. Below are some of the technical problems with looping worlds that we're experiencing at the moment.  

Technical problems with looping

  • We need to make sure that each terrains' seams start and end at the same height, meaning that if we have a big mountain in a scene we need to make sure the other side is as low as the first one. Otherwise there will be some unnatural gaps or hard edges which will greatly restrict us designing interesting terrains.
  • As the terrain needs to be cut down into chunks in order to stream we need to carefully offset and match the terrain textures. Failing to do so creates a visible seam at the edge of each chunk. Doing that manually is horrible, doing that automatically is hard work.
  • Buildings you place need to dynamically load and unload together with the terrain instead of part of the level which will make it much harder for us having a stable building system as we need to keep track of the original position as well as the current looped world's position for each building, this will also take up more memory to handle.
  • Areas with big player impact like a drained lake or a cut down forest, need to be rechecked of their current state each time that part of the moon is reloaded.
  • The AI agents (your crew) will need to be close to you all the time as the navmesh needs to be recalculated when a new piece is unloaded/loaded which will consume a large amount of memory keeping track of all the chunks at the same time.

Is it worth it?

When looking at all these problems we are not sure if its actually worth it to have seamless looping worlds. All the problems can be solved but it would require a lot more work.  

The main goal of having looping worlds is of course to avoid having hard/artificial edges or restricted player zones as it creates a greater sense of being on spherical moon body. This can be designed around with natural borders like mountains, craters, rivers etc. We haven't sacked the idea yet but it's looking quite grim for the old looper.

Kim Aarnseth
Kim Aarnseth