Been working on clouds.
Keijiro did the heavy lifting with a compute based marching cube solution, I shoved some shader magic onto it, and have since been trying to wrangle the numbers.
The Economy screen in PLVS VLTRA, where you get a detailed breakdown of all the ways you're losing money.
That massive blue slice is your Social Programs keeping people happy. That red one is the military keeping them alive. That orange one is Debt keeping you awake at night.
#4X
@MainKindRTS I worry that without unique design they will be hard to differentiate at a glance, but that depends on the UX, are they going to be very small on screen most of the time? The need for a strong silhouette for each to tell them apart becomes more important if so, they look great!
I have some small supporting systems in place around this, like RNG (via RNG.Chance) which takes a 1:# number and returns true or false for it, so RNG.Chance(2) would be a 50/50 true/false. Otherwise, this rule is called at the desired time in my main game loop. Benefit of this system is updates don't happen via scene graph traversal, they happen in a discrete order per mechanic/rule, and for all entities at the 'same' time (in foreach sequence). I'm not getting all caught up with making sure my components are bucketed together to fit the cache, or making sure my functions are simple enough to avoid cache misses, necessarily, but I do think that just organising the code this way achieves a couple things:
- Its easier to understand when something happens in the tick.
- I still get some performance benefits, as I am executing the same logic over and over again on a set of data.
- I am avoiding all the scene graph update headaches (having to know or care about which MonoBehaviour updates first or last, or any of that silliness)
Additionally, the window's light, as well as a larger ambient light used to fake light pollution/ambient light, have their intensity controlled by the time of day, so that windows can be on during the day but they don't contribute light to the scene. This looks a little funk in shadows, but it looks better in aggregate than the windows intensity not changing during the day.
I've been working, slowly, on adding more life to the world, namely right now via lighting/window details, still very devy (just square windows, no fancy nice windows yet), the system in place dynamically turns windows on and off depending on time of day and desired window % on.
Chiefly what is happening is that windows turn on or off understanding that a desired % on can in aggregate be achieved by each window independently deciding if it is on to turn off at random intervals based on some weighted chance of changing + the desired percentage on.
Another one, this time because I was prototyping with the Mesh components on the base object and now I want them in LOD groups, in my case its low poly so LOD 0-3 are all the same renderer, and only the Culled LOD group is important, anyways, this moves the mesh data from the root object to the target object (in this case my LOD 0 object)