Day 1: Basic Movement
Today saw a lot of progress, most of which will be unseen because it didn't produce much in the way of gameplay. Basically, today was a day for laying the foundation. I set up project folders, created basic sprites, and laid the groundwork for future features. As always, things I thought would be easy took a while and things that I thought might be hard took no time at all.
However, I did get a few cool things done today: player movement, animal movement, and basic collisions. Shoutouts to GDQuest and HeartBeast, whose excellent Godot tutorials on YT saved me a lot of time.
Player movement: the player can move using WASD, which is simple enough. Godot also has built in functions which make colliding easy. The player can run into this house. Not only that, Godot also has an easy way of rendering top-down games so that the player sprite renders in front or behind appropriately.
Animal movement: this is where things get tricky. The dog needs to remember its destination and stop at the right spot. In the future, they will also need to be able to transition between moving, idle, attacking, etc. on command from the AI, so some work today went to setting up a state machine to control the movement. I had not done much in the way of object-oriented state machines, so this was tricky for me. I ended up creating a more detailed sprite so that I could better visualize the dog's movement, and while I was at it gave it very basic animations.
Tomorrow's task is to convince the animal to be able to attack in all directions. I cheated in the above gif: right now the dog can only attack right. Anyways, if I finish that, I will start coding the animal's AI, hopefully giving it a mind of its own.