This week - Learn and play (store)
December 11, 2019 - Wednesday noon
This one's a little late (obviously) but I'll double up a bit to make up.
I've been learning about a few things:
Will Wright's method of game design on Masterclass
I'm feeling that I'm getting towards the end of the purely technical parts of building the foundation of the game and will move on to more design-oriented work soon. I'm starting to learn some of the perspective and language of game design, and his course has been both inspirational and practical.
Some methods I had already planned to use, such as building real-life prototypes to play with - I was going to make a little board game with cardboard. The course also validated the time I spent researching city planning and seasteading in general (and that, well, it's ok that a lot of that may not make it to the game).
Unity's upcoming tech
That is, the Data-Oriented Technology Stack and runtime UIElements. I have some ideas of visual things I could convert to DOTS Entities that may help performance, specifically the resident action icons and bodies.
As a front-end dev, UIElements is a little taste of home in this faraway land. I've pulled in a layouting pattern that I like to use and am using UIElements for the status panels I've added. I'd like to look into using Elmish with UIElements eventually, but for now my 10-liner homegrown thing will work. Runtime UIElements is an experimental preview package that's intended to land late next year, but I'm going to just hope (fingers crossed, and welded together with a blowtorch) the API itself has no horrendous edge-case bugs and any instability is just UI Builder related.
Oh and, here are the UIElements panels in action:
F# and AOT compilation
I'll admit the darkest technical part of this journey. There are some painful limits, but in the end it's more or less working. A follow-up on this will come (very) shortly.
Since I took a detour to make sure the game is actually publishable, I'll be picking up where I left off last week once serialization is (once again) working. That is, building-owned Tasks and UI sketches. I'd also like to start on the buildings-as-cache-of-buildings query stuff but in the meantime I'll just calculate distance to every building every call and see what happens (with hex coordinates, this is just max xdiff ydiff zdiff
).