The world outlook from farther distance kind of felt boring and dull. Some games just increase the fog level just to hide this dullness. There was zero detail in the distance so I started increasing draw distance for trees and rocks. I have created a new simple mesh (actually a rectangle with two triangles) and populated it with a simple grass cutout texture. I proceeded with creating procedural LODs, placing both simple mesh and complex in one spot, baking the same ones together in patches and adding Unity’s LODGroup on top of that. The distance is busy now which enables us to decrease the fog level. LOD levels (for world objects) and other settings (such as shadows) are going to be tweakable via config file.
I have also managed to create a color variety on the terrain itself by writing a custom terrain surface shader. The shader enables us to input three different colors – one for the lowest points of the island, second one is meant for middle/ground heights and the last one is meant for hills and mountain tops. To interpolate colors smoothly I have transformed the colors from RGB to HSL space and used this code bit for interpolation (_Middle is a float [0, 1] that sets the “middle ground” height):
float3 interpolatedHSL = lerp(bottomHSL, middleHSL, h / _Middle) * step(h, _Middle); interpolatedHSL += lerp(middleHSL, topHSL, (h - _Middle) / (1 - _Middle)) * step(_Middle, h); fixed4 tintColor = fixed4(hsl2rgb(interpolatedHSL), 1);
Me and Andrej added a new kind of non-hostile NPCs to the world that actually have no purpose as regards to gameplay – they will only make skies more busy and immersive. They are called Prospecting drones. They will fly around the island, stopping at the rocks and try to mine them with their laser. Yes, you can destroy and scrap them, but why would you do that to these beautiful robot creatures?
Since there will be a lot of NPCs that will populate various settlements, we decided to make a system that randomizes the characters by using shape keys (blend shapes / morph targets, whatever your software calls it…) on the face to change different facial features of the character and effectively makes each character have a unique face. Of course the character will also have a variety of different outfits.
Randomized human characters
I started out by making a model with about average features and then modeled the extremes for every feature, so the game can blend between individual shapes, Then I made a script that randomizes the features and chooses a random combination of an outfit, shoes, a hat and facial hair. I also made a brand new animation rig for the human NPCs that will support the variety of animations that I have already started making for them. At the beginning of the week I concluded the work on ‘techies’ buildings by finishing up the shop model.
Every device that we have in our electricity starter pack needs proper implementation. Previously I worked on repair and charging stations, but this week I focused on bringing functionality to light lamps, actually two types of those lamps – wall lamp & standing lamp. A quick preview in the picture below:
We have improved the indicators, so those basic electric components are considered done for now. In this example I filled up the generator with fat, and it started to generate electricity. Very easy!
We are slowly finishing up the electricity which will be an exciting new addition to enhance the gameplay. The newly added electric devices will need icons to display them in the players HUD. Below you can see a set of new icons, including bolts which will have a special use in the game.