Sunday, December 11, 2016

To-List Update

So, here's a list of things I haven't done, and what needs to happen with them. Feedback encouraged!

Random, distinct biomes. I've been reading some very good articles about faux random placement of objects (the best one was Random Scattering: Creating Realistic Landscapes by Mick West). Right now, my object placement is a mess. I have C# dictionaries of different terrain types, and to place the trees I pick a random point, see if I already have a tree there, and if not I place it. Too many failures to place a tree means the space is filled, and I quit out of the method.

It might work for the trees, but what about the crops? What about the rocks? What about the small plants I'll be scattering around? Do I pick random tiles and duck out if they're occupied too? How will I even know if they're occupied? I haven't put that code on the tile; it doesn't know what's on it yet. Maybe a 2d array of booleans on the Map class and create a GetClosestEmptyTile(Tile tile) method?

I have some ideas about hand-placing distinct areas in Photoshop, then analyzing what makes them look that way, some ideas on a Random Distribution Manager to track random objects and the likelihood of them spawning, several ways to address the 'is this space empty?' problem. I haven't settled on the best approach.

Inventories and inventory items. I have a few small items that characters should be able to carry around, place in stockpiles, ect: wood piles of various sizes, apples, and corn. Right now, they're just game object prefabs with art. I haven't thought of the best approach to handle them yet. What's the difference between a wood pile that spawns beside a cut tree and a stack of wood sitting in a stockpile? Decisions.

Pathfinding and jobs. Okay, I actually do have the pathfinding system set up and ready to go. I haven't put it in yet because I'm not sure how to queue up such a huge range of jobs. Instant gratification tilling and tree chopping have worked well as the end result, but that won't stick around.

(Also, I haven't added pathfinding yet because I haven't decided on that 'what's on me?' tile dilemma, and I need a system in place so I can properly add in movement costs per tile for pathfinding weighting. You wouldn't walk through a wall to chop down a tree on the other side.)

Stockpiles and storage zones. The other way the tile expects things to be placed on it. It'd be dead easy to tell tiles to accept one stack of inventory items (once I decide how inventory items should work), but again, movement cost and inventory. Also, having each character have their own, small inventory so that they can carry things.

* * *

So if you look at my game goals list, most of them involve these four things. Falling hunger bars for the characters isn't going to get done without a self-assigning 'eat food' job. I need to make some code architecture decisions and knock off these items next.