The room grew this week! In addition to the play area getting bigger, the first test walls were added. At first you’ll probably just be able to change between one of three room templates, but later on I want you to be able to really customize your room.
I did some quick tool work in how “zones” of the room are defined. Right now there’s only two, “Play” and “Food Trough”, but I might add more later. “Egg Hatching”, maybe? “Nap Zone”? Who knows!
This week saw a lot of good work on pulling together the needs of the skeleton. The core loop is finally in place, which is very exciting because the game finally fits the bill of a virtual pet game. Your skeleton plays around the room, gets hungry, needs to eat, turns food into jelly, and vomits it into a jar. After a while they’ll get tired, go over to their dog skeleton bed, and sleep.
You can pick up the jars of jelly they make and sell them for skoins. Right now skoins don’t do anything, but that’s coming up. There’s also some more things that need to be tied into the system, such as happiness.
Skeletons have preferences! Kinda. When an item is generated, your skeleton randomly decides if it likes it or not. Eventually I want have classes or types of items, and a skeleton’s preference is based off of that, but this works while there’s so few items.
Item Getting and Holding
Beyond the needs loop, I did did a bunch of refactoring on how skeletons pickup and hold items. They’re now able to hold two items at once, and if they need a third (eg. a jelly jar or food), they’ll drop which ever one they like least. This is currently the only real use for the item affinity.
I also added a case to the AI where if an item is outside of the play zone and they want it, the skeleton will stretch. Skeletons stretching to grab an item is one of my favorite bugs, and I wanted to have at least one scenario where it was desired behavior.
I deleted a bunch of stuff from the old AI system. It was still lingering around for reference, but besides the trumpet (which I plan on reworking anyway) I think everything in the old version is in this one.
I spent some time in the behavior tree graph to add scaling. It’s janky, but still allows me to easily see what’s going on inside that skull. A while ago I felt like I was wasting time figuring out how to graph the skeleton’s behavior, but now it’s proving to be a vital tool in debugging what’s actually going on. SO THAT’S COOL.
I’m still debugging the needs loop. Every time I play it, I see some kind of weird behavior. Then I just have to decide if it’s good weird, or bad weird. It’s way more fun and enjoyable than debugging normal boring programming stuff, though.
I don’t like making UI, but I need to force myself to next week. I really want to get the food buying UI in, because it will both add a use for skoins and it’s one of the last bits of the needs loop for a while.