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:
To Do:
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 trailscreate 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!