Monday, November 8, 2021

NaGaDeMon 2021: Twists and Turns

This is my fourth year participating in National Game Design Month. It's become an annual tradition that my family and I anticipate. I was actually a little disappointed that there are some other coincident events happening, such as Go Godot Jam 2 and GitHub's GameOff 2021. I suspect both of these will be more popular than NaGaDeMon, since they are backed by larger, established communities and organizations. I wish them the best in their events, but there's something about the ideological purity of NaGaDeMon that calls to me. NaGaDeMon doesn't care how you version your code, what engine you use, or if you use an engine or code at all. The elegance of make, talk, play is a wonderful framework on which to inspire people. Maybe we need NaGaDeMon evangelists participating in those other events to help them see that there's a bigger tent that we're all in.

I came into November with just a few scattered ideas. One of them was that I had never made a 3D game in Godot Engine, and this might be fun to do. A recent GDQuest video pointed me to the KayKit asset collections. Looking at these inspired my son as well as me. I had assumed, since they were given GDQuest's blessing, that they would be straightforward to incorporate into Godot Engine. After some time, I was able to put together an integration of Kay's animation pack and dungeon pack as described in an earlier blog post. Unfortunately, after several more hours of tinkering, I ran into several more problems, which I've documented in an issue in my test repo

Now along the way, I did get a playable toy working. I recently introduced my kids to Rogue Legacy, and so I was thinking about action platform games with powerups and procedural generation—not that I would necessarily get that far, but that's where my mind was. Here was my first test:


It is pretty basic GodotEngine KinematicBody stuff there, but look closely and you can also see that there's smooth blending between the idle and running animations. Continuing to work along these lines, I was able to get a skeleton that could be knocked down.


The next logical step was to work on jumping, which resulted in the following results.


Behind the scenes here, I had several surprises, not even counting the trickiness of getting the models and animations to work well together. I've made dozens of games, most of them being very small, and I've never made a 3D-rendered platformer before. It's not even clear that I was actually making that, really: I was just messing around. However, I found myself surprised at what I did not account for intuitively. Here are two particulars:

  • I originally was using a jump animation that included a little crouch before lifting off. It looked great, but how exactly will this interact with the attack animation? Should the player not be able to attack while crouching? If they can still attack, will they still launch upward at the same time they would if they did not? Does it make sense to blend just the arms' attack animation while using the body's jump animation, even though the result would be that the sword doesn't have the same reach as when attacking on the ground?
  • What exactly happens when you go left? In 2D, you can get away with just flipping the sprite, but with 3D models, you really need to turn them. What happens if you start a jump or attack in the middle of turning? Or are these not allowed? 
It reminds me of the door problem, which I've started assigning in my game design class. On one hand, it sounds glamorous to say, "I'm making a game inspired by Rogue Legacy!" and on the other hand, the reality of game design is that you're deciding what really happens when you crouch.

I got in touch with Kay about my troubles with the asset packs in Godot Engine, and she got back to me with amazing alacrity. She welcomed me to join the Pixeland Discord, which I did. The folks there were (and are) very friendly, but the rough consensus seemed to be that to really do what I wanted to do, I'd have to get the Blender sources and convert them into something more Godot-friendly. 

I had penciled out the first week of November as being for exploratory work. I felt like this was a good exploration, but I was not feeling inspired to pursue these designs to a full, working game. I sat down in the evening with my design notebook and a drink to consider where to go next. On November 1, I had jotted down just a couple of ideas. Literally a couple. Two ideas. Turns out, one of them sounded really amazing to me, sitting in my comfy chair late at night with a half-glass of whiskey. How that goes will be the subject of my next NaGaDeMon blog post. 

Thanks for coming by. I hope you're inspired to make, play, and talk about games this month.

No comments:

Post a Comment