So to create the overworld, I took the original map of Hyrule and made it into a Grayscale image. (This was done long ago, before I knew the power of Photoshop!)
Original Map, Split Up (Red Lines), Started removing the color in the upper left corner:
Removing more of the color from the top and second row. Replacing the ground level with a different shade of gray.
Blacking it out, defining the highest and lowest point.
Added number to keep track of the RGB Value I was using at specific heights.
After importing the map into L3DT I manually sculpted the mountains and such. A border around the map was added, this gives it an additional screen row on all sides. Will give something to load when you are on a boarder screen.
Once this was created, I needed to split out the whole map into the original screens. There is a website that will let you break up an image into a specific number of pieces.
So with the split up heightmap exported, I now need to prepare the images for use as a heightmap in Blender. They need to Grayscale, 16-Bit images and they have to be non-interlaced. If the PNG is not saved with these options, when importing you get some really odd effects.
Here is where I am going in a completely different direction with the map than before.
Originally, I was pulling the PNG into Unity as a .RAW file and then creating an actual Terrain type object. There are limitations to this though. First, the .RAW file had to be a size which is a power of two (256 x 256, 512 x 512 etc.) and all the screens from the original game are rectangles…I wound up having the go through the splitting process shown above, but using tt to create 512 x 512 chunk of the land, so each individual chunk contained multiple screens within it.
In the image below, the red lines show my chunks and the black show the original screen sizes:
With the move to using 3D models for the Terrain instead of the native Unity terrain object, I will be able to load in one screen at a time instead of the more massive chunks. This will allow me to Dynamically load and unload the terrain in a more concise manner, improving performance of the program when walking about the overworld.
Here you can see what the original map looked like in L3DT.
Below we have an untextured screen which has been imported into Unity. Please excuse the mess which my file structure is, I am still working that out.
At this time, I am working on some small issues with the import of the Heightmap into Blender, but I should have that worked through soon.
The other benefit of using the models instead of Unity’s own Terrain object is I will be able to use custom sizes, the HM does not have to be a power of two in size. Secondly, I will be able to punch out the holes I need for cave entrances and setup destructible terrain for bombable walls. Third, the texture, I will be able to use procedurally generated textures to make the ground and rocks all unique instead of repeating tiles.
Next I will look at the terrain in Unity, laying it out and setting up the array which will contain our location data and map data.
You can see here in Blender, I have the ability to punch holes in the terrain right where I need them. Also, I can lay down the original texture as a wonderful reference for the placement of trees rocks and other such items, will be very accurate.
Still need to resolve the issue with the odd edges, which can be seen in the picture below.
Here is what it will eventually look like in Unity.