Thank you! I appreciate it!
Zac | MakeFunGames
Creator of
Recent community posts
Thank you!
So the customer AI is actually a chain of goal-oriented behaviors. The goals themselves are just transform references, and the behaviors started with an abstract class to define checking if a transform is the goal, what to do when the goal is reached, and what the next behavior is once the behavior is complete. The goal transforms are just sphere triggers that check if the collision is a customer. Every shelf in the store has one of these nodes, as well as the shop entrance, the queue positions, the start of the checkout, the end of the checkout, etc.
Also to note, the behaviors are all components that attach to the customer directly, and replace each other every time the next behavior is to start.
The simplest behaviors are the enter store and leave store behaviors. They simple get the store entrance transform, set the pathfinding target to its position and let it head there.
The actual shopping behavior is more of a loop. The customer gets a random amount of items to purchase and the behavior finds a random shelf node to go to. Once there, it "adds" the item to the cart, and if it hit the desired/possible number of items the behavior gets replaced with the queue behavior. If not, it keeps finding shelves to go to until it hits the desired/possible number of items (you might run out of items in the store and they have to end their shopping early)
Does that makes sense?
The pathfinding is just the A* algorithm with a grid.
And then I wrote a similar behavior system for the zombies, but more customizable as the zombies actually need to do something to be able to enter the store
I went in without reading the description so I initially just ran away from the tumbleweeds lol. Made a little more sense once I read your description, but still felt a little clunky. A couple things that could help improve your next jam game!
1. If no time for a tutorial, leave the controls in one of the corners of the screen! (I did this for my entry, you can check it out here https://itch.io/jam/synty-jam-march-2024/rate/2585069 )
2. For sounds that will happen a lot, use an array so that they randomise each time and feel less repetitive!
Right?! It's so addicting! Near the end of the deadline I needed to tell myself to stop playing and keep working!
I think I did a good job designing both sides of the abilities, angel and demon. There's some real bangers on both sides. You have to try the "Smite" ability from the angel side, and the corpse explosion is always a classic!!!!