Game Jam, Day 2: Lookit That Little Guy Move
I'm going to be a part-time game dev, and that means that life will be lifin' to the detriment of daily development time. I'm okay with that, which is good: a lot of small things conspired today to give me little coding time tonight. With that, my goal for today was whittled down to "make the title screen, create the first level, and get the caterpillar moving" to "make the title screen".
Except that's not how Godot is set up for me to operate. I've inferred a Godot best practice is to set up the player first, which isn't the first thing I have listed in my pseudocode. There's an important lesson there for someone as regimented as I am: you don't have to code your game in the same order in which you wrote the pseudocode. That made my skin crawl a bit, but I resigned myself to fate and got to work on making the player scene and getting the caterpillar to move.
And move he did. This was the debug screen at the end of the night:

That's the head of the caterpillar (he's going to grow additional segments as he eats), just moving left, right, up, and down in the void. Simple, right?
Good gravy, no. No, it was not simple at all.
I like to think that I don't make the same mistake twice. No, I made a lot of rookie mistakes exactly once today. I can't imagine I'll ever exhaust the number of unique mistakes I can make, but hopefully I can get the obvious ones out of the way. Some examples from today:
- My character sprites, level sprites, and background sprites are hilariously out of scale with respect to each other. Godot can scale sprites, so I won't have Frank the Kaijupillar stomping on a tiny leaf. Next time, I'll write down sprite dimensions on a piece of graph paper to make sure they work together. Yes, write it down. I like writing things down.
- You can't just put all the game's sprites in one sprite sheet, especially if they don't fit in nice, neat, square boxes. Godot breaks a sprite sheet into equally-sized horizontal and vertical frames. That crow from yesterday? That little jerk took up two squares. So, I had to break the sprite sheet apart. It wasn't a big deal, but it was a deal which caused me to lose some momentum.
- I overestimated how much would I could get done today. I suspect most game devs are that way, and that I'll develop more reasonable timeframes as I learn more.
That sounds critical, but I also did some things right today:
- I wrote down all my mistakes in a journal so I could reference them if I get stuck again. I said that I like to think that I don't make the same mistake twice. I also like to think I can eat two Oreos without plowing through an entire sleeve.
- I was patient with myself. I stepped back after every mistake, told myself it was okay, then sought out a solution. I know the game jam has a deadline, but this game doesn't. I'll ge there when I get there.
- I had an organized file tree for the game. That did wonders to reduce stress (I didn't have to search for scripts or assets in a panic) and countered the loss of momentum I had when things didn't go right.
I didn't get a lot done today, but I cleared away more mistakes and learned a lot more. I have faith there will be other days when I can get a lot more done, so it'll average out. For tonight, though, I'm happy. I did what I could, and that will be enough.
Tomorrow: a player state machine for the caterpillar. Hopefully.