A Whole New World

Just not shiny or shimmery, yet


Posted 05/24/2016 19:31:51 in Homestead

Updated 07/09/2017 13:29:47

I've been plugging along these past two weeks, and ended up working on a few different systems. I'm wrapping up an introductory Data Management university course, and learning about Entity-Relationship diagrams got me so giddy that I skipped the homework assignments and graphed out Homestead's data structure instead. It helped me to see a few places in which I can improve the system, and I started making optimizations here and there (like storing keys as enums/ints, rather than strings) to avoid future headaches as the data scales.

Finally, a sane UI layout! I put off doing any actual UI design for too long, but I finally sat down with a pencil and sketched out some ideas. I learned a bit about Unity's UI system too-- I've been using it since the new system came out in 4.6, but hadn't taken advantage of the Grid Layout component or the Scroll Rect component (which is actually pretty sweet, once you get it customized and set up!).

New UI
New UI

You might have noticed the scenery is a bit different in the above screenshot-- I've moved on from the initial test area! I blocked out the first actual game area in this project, and it's dubbed Whitepine Glens. I was running out of space in the little plot I had carved out in the initial testing area, so I finally had the excuse to scratch the itch to do some world building. Whitepine Glens is the wilder, less civilized half of the world, and it is the location of two of the four possible starting plots. Most of your time spent here will be farming, lumberjacking, fishing, mining, and foraging!

Whitepine Glens
Whitepine Glens

To end this post, I have a few terrain-building tips for my fellow Unity folks:

  1. For prototyping, or at least getting a base texture down on your terrains, I highly recommend reading through this post about procedurally generating splatmaps by Alastair Aitchison. He provides some simple example code, and it's not hard to modify for your own ends (my version weighs textures based on a combination of terrain flatness and Animation Curves for easy tweaking).
  2. Getting past that initial flat plane of terrain is hard, even if you have a plan in mind. What I like to do is block out the entire terrain using the Flatten tool first. I flatten the entire terrain at some arbitrary height (like 10 meters) so that there's some room to go down, and then move up in increments of 5 meters or so, essentially painting only the contour lines in a topographic map. I start filling in details, smoothing, and adding hills and noise only after the entire terrain is already looking like a map.
  3. Even more daunting that starting with that blank terrain is the prospect of placing light probes all over a 500 square meter chunk of land, just to be able see your character run around it. I found this quick and dirty auto light probe placer on GitHub, and it will get your scene up-and-running quickly!

ROADMAP: Transform the UI Mockup into a functional system, build a barn (I know... it's been on the docket for over a month), continue improving the BittyDatabase system.