General Thoughts
Lately, when I’ve been sitting down to work, I just pick something I know needs to be done and start. I have not been making too much use of my Trello board until I’m done working, oddly enough.
Today I decided to add two animations to my zombies: Running and Dying. My last venture of merely skinning a model and putting it into my game took two days, so I was prepared to flop around all today just trying to learn something. Much to my surprise, I managed to get everything working without too much distress.
I can credit FinePointCGI’s YouTube video for really letting me make a ton of progress today. Very straightforward video that taught me a lot. I am also finding it easier and easier to maneuver around Blender. It always feels very awkward learning new software, especially dense pieces of software like Photoshop or Blender. I still don’t know what 99% of the doodads do, but I’m starting to at least learn what things can be done in the different tabs, like I have some vague concept of what the “UV Editing” and “Texture Paint” tabs are capable of.
I ran into one very obnoxious issue once I finally had my 3D model and animations imported and running in my game, and that was something called “Motion Scale”. To truly commiserate with my woes, first you need to understand what Motion Scale is.
Let’s say this gif above is my walking animation. Notice that in this animation of my silly walk, my character travels from left to right - the animation includes distance being covered. In Godot, and reasonably other places as well I suppose, Motion Scale translates this distance into my 3D model. So if they cover distance in the animation, they will cover distance in the game.
In my running animation, the animation includes the character moving forward in several steps. When I played this animation and made my zombie run after you, the zombie would occasionally warp backward as the animation repeated. It took me a while to find (and learn) what Motion Scale was, and I set the Skeleton3D node which contains my model and animations have a 0 Motion Scale. I have essentially told my running animation to “run in place”, as I control the movement of the zombie so I can make it chase the zombie. So all is good, right?
Wrong. All was not good. All was good until I tried to add in a death animation. In my death animation, the zombie crumples to the ground. But with no Motion Scale, they sort of just crumpled into the air. I would have to programmatically move them down in time with the animation, which sounded painful. But luckily I thought of a much lazier, but hopefully, good enough way to get this done. Right before changing an animation, I set the motion scale of the Skeleton3D node responsible for everything.
There is some jankiness with the solution that I can’t quite place my finger on, but I’m fairly pleased with the duct tape solutions in place. I’m thinking I’ll keep working on polishing for the moment, but I do want to start doing the layout for the first level.
Oh! I almost forgot to mention. I put up a 20-second unedited YouTube clip of my zombie’s t-posing. I’m going to start stepping into the world of marketing things. And I have to admit, it’s fun to see people comment on your work. It is very motivating. I am using a program called Shotcut, but I’m not really doing any editing beyond splicing recorded footage together.
Things I Did
- Discovered/Learned/Used mixamo.com with my zombie model to create a series of animations. Very awesome website.
- Learned how to combine all animations into one file for import into Godot 4.
- Added walking and death animations.
- Small code tweaks
- Learned about Motion Scale. Why does learning feel like stepping into bear traps sometimes?
I created this format for posting to help remove some friction from me sitting down to write, but I’m now finding it a little awkward to have this A.I. section under everything. Maybe I’ll take another look at the format of this at some point. And with that, without further adeiu, here are my next steps according to an A.I. Note: This A.I’s suggestions were particularly unhelpful, and I had to regenerate them several times. But to be fair, this model is typically used for creative writing. ~ Marcus
Prompt Used: “I want you to analyze a body of text for actionable items. I am going to send you an entry for a game development log. This log belongs to a single developer. I want you to analyze the text to determine what the next steps should be, ending with a single motivating quote. If you understood this message, say “Ok!”. Afterward, I will send the text that will be analyzed”
Kayra’s Game Dev To Do
Actionable Items
- Lay out the entire map of the first level.
- Play test to make sure layout is good.
- Fix any issues with the layout.
- Put in a few enemies and objects, and play test.
- Make any layout changes needed.
- Create a save/load function.
- Continue polishing the environment.
- Continue polishing the AI and enemies.
- Continue polishing the controls.
- Write a story about a game developer who tells himself this:
- Learn how to upload and use animations in Godot.