This week I took the time to optimize island generator so that an island can be procedurally (re)generated in the background, it takes around 2 – 3 seconds to properly craft an island without hickups, which is quite fast considering all of the things that need to be modified doing run-time.
It is time to decorate islands with props that have no function at all and to follow up our lore and ideas about the world of Floatlands. I’ve added huge pipes around the islands, here is a quick work in progress generated island with some of them.
As a part of optimizations we had to reconsider the vegetation system. Up until now we were using modeled grass and bushes, but that required a lot of performance to render if we wanted a dense grass scene. We have now changed to using only a couple of quads per grass and a black/white texture to go along with that. Here is what I came up with.
Let us know what you think, we will definitely try more bush variations, this is just a quick work-in-progress solution.
Each biome will have it’s own wildlife, which means I am making a variety of animals to inhabit the various islands of Floatlands. Each animal needs it’s own skeleton and a list of animations for different behaviours. After I make the animated 3D file, I add a ragdoll system to the skeleton in Unity, before I hand it in to Vili, who then connects the animations to the animal’s behaviours.
This week I finished the animations on the boar model, made the ragdoll systems for the boar and deer models for the green continental biomes.
After some troubleshooting on those models I started work on the rhino, which will inhabit the desert islands and started working on the animations for it.
Last week my task was to define the construction materials that can be found in the floatlands universe. To easily visualize where the actual materials came from I drew up a couple of concept sketches of the pre-disaster era buildings. After thorough research I found the architectural type and shape we’d imagine our buildings to exist. Then I broke them down into the materials which were used for assembly. After the disaster those buildings got demolished and broke down into the materials which were then used to erect the shelters which you’ll be able to discover as you’ll explore the expanding world of Floatlands.
- Collision avoidance optimisation
I removed un-needed raycast for NPCs – if there is no obstacles in forward direction, then why do raycasts on side? So I dropped those unneeded raycasts.
- Importing deer into Unity3D
I had some problems importing deer 3D model which took a lot of time to troubleshoot. Importing a model produced weird shapes. In addition to that .blend files just didn’t want to import animations. I have cooperated with Andrej to resolve everything. Here is a successfully imported deer, ready to be scripted.
- Path mesh optimizations
KDTree (structure used for pathfinding) is now optimized quite a lot – it builds a KD-Tree on the background thread and it has a dictionary for each unique mesh (so it builds KDTree for unique MeshCollider only once). I added a variant of SAH splitting heuristics and also reduced garbage collection and memory usage by removing un-needed arrays/lists. Because of this optimization island gets generated much quicker.