I’m not sure if I have posted about the current structure of how things work, and it’s probably time to start documenting it now that I’m reaching my first sort-of-milestone: i.e. the end of the quarter.
Currently there’s objects in the form of pieces (player and npc objects that move around and do stuff) and scenery (such as the wolf’s den, eventually trees that obscure movement, maybe water which could have an effect on scent or even piece strength, as do the traps in animals chess). Pieces can have behaviors, which are modular scripts that can be stacked onto them to aggregate into a sort of piece personality. Some current pieces are Sleep, ConsumePiece, PlayerMovement, and MoveTowardsTarget. Behaviors often have their own internal states that can be checked from outside via functions, like Hungry, Full, Awake, Sleepy, Asleep. There’s a couple of manager singletons, like the PieceManager, which decides who’s turn it is and has a game clock, and I’m also currently working on a MessageManager, which handles all the text that prints to the text window.
This project has also been interesting because I’ve used it as an excuse to develop how I document projects as well as develop the project itself. This page is a ever-changing structure in my static site generator, which aggregates a lot of different stuff that is tagged for the project or included in a project folder. I’m working on adding my .taskpaper tasklists for the project as part of the aggregate, but that’ll probably require me writing a ruby plugin since my site is built with jekyll (and I don’t actually know Ruby). For now, here’s a snapshot of my tasklist:
MessageManager singleton: figure out how to get the last n number of messages from the allMessages list to put in the text object, convert all the old text outputs to use addMessage() add scent trails create a burndown using the ‘metabolism’ int in ConsumePiece to time post-eating naps.
- figure out restricting movement within grid bounds bug.
- pieces with the same strength: the advancing piece pushes the other piece forward with its move (for scooting chickens around as bait.
- continue trying to figure out how to use the offeset - cube coordinate converters from redblobgames site
- once there’s offset to cube functions, switch out the range visualization with a cube co-ordinate range function.
- once there’s offset to cube, switch fog of war to line of sight (or line of sight + range at night)
- once line of sight works, create sight blocking scenery
- add a bear (stronger than wolf, doesn’t care about deer
- create water trap scenery (throws a pursuer off a scent trail, maybe other effects)
A lot of this stuff will probably have to happen after this quarter has ended (I’ve got a week left), so I am going to spend a little time doing something fun- making an attract screen animation and music, since I’ve been spending all quarter eating my vegetables and banging my head against all these programming tasks that I’m not very good at and now I want dessert. 😛𐂂
also holy shit look at this unicode deer I just found: 𐂂 I don’t want to give the deer antlers but I would love to use it!