In this post I have a look at some of the things I considered while developing my game’s map. I also mention the script I used to turn my 3D-modelled terrain into a Unity heightmap terrain.
My game’s plot had a significant influence on how the map turned out to be. I drew my first version of the map only after I had written the first version of the game’s plot flowchart. Then I co-developed the map and plot flowchart while taking into account the player experience. I mainly tried to considered what a player will discover and in what order, the emotions each discovery might create, how much back and forth between each of the locations and finally which different terrain elements will help enhance the gaming experience.
There were a few main factors I considered while planning the different elements in the map: is the element relevant for story, make for a believable environment and/or helps to create the right atmosphere. To find out more about the environment I’m developing read my previous post: Planning my game’s environment.
I ended up modelling my terrain in Blender instead of sculpting it from scratch with Unity terrain tools, mainly because there were some parts of the terrain I wanted to match precisely to my assets. For me, it was also easier to create the shape of the terrain in a rich 3D-modelling environment than in Unity. The use of the precise 3D-model as a base of the terrain also turned out to be a faster way to test the game build, because I have a 3D-model as a base of the terrain I was able to create a navigation mesh from it. Using a navigation mesh allows me to restrict player movement instead of using Unity’s physics engine to detect collisions between the player and the terrain. This means that Unity doesn’t have to calculate the collisions of the terrain elements (trees, bushes, etc) when building the game.
I used Object2Terrain script to convert the .fbx file of my 3D-model into a heightmap in Unity. Then I was able to use Unity terrain tools and started painting textures, trees and details. I’ll post about that later.