Welcome to some of my most frustrating challenges!
Landmass Terrain System
This is a specialized node-based terrain system for Into The Fray. This enables the generation of large optimized land masses, complete with vegetation and procedurally generated settlements.
One of the main challenges was keeping this system fast, flexible, and maintainable. To that end I wrote the code to thread heavily from the beginning, keeping iteration times reasonable.
Additionally, a good amount of code went into custom inspectors to ensure a high degree of usability.
Optimized Dynamic Lighting
The main slow-down with real-time lighting is dynamic shadowing. Baked shadows are limiting, and the shadow settings in Unity don't help much here.
The solution was a script to efficiently pick the highest priority lights to shadow, while letting the sun shadow at a farther distance. This brought a 3-4x performance boost in lighting-heavy parts of my client's scene!
Test scene filled with real-time shadowed lights with a high global shadow distance!
World Streaming Solution
Another solution built for Into The Fray! AssetBundles are used to store unique terrain and vegetation data on disk, compressed and unloaded.
With this streaming setup, parts of the world can be streamed in very efficiently without have to pre-load the entire world into RAM. This means RAM usage and load time are drastically improved.
Circle Pack Enhancer
A client approached me with a circle packing script and told me he wanted it to look less uniform and more natural.
I ended up writing a configurable post-process algorithm that procedurally modified the circles, moving and scaling some of them while removing others.
The next step to solve the overlapping circles was to write an optimized circle collision solver and a better visualization so the client could clearly see the result.