Has it really been 17 days?
Before writing this I looked around for a few minutes to verify that I had in fact, not posted in 17 days. It doesn’t feel like it’s been that long. I guess it means I’ve enjoyed the past few weeks, however I can’t help but worry that at the end of my career I’ll look back and feel like it happened in the blink of an eye.
But let’s cut the sappy stuff, you’re here because you like SHL4 and want to see what I’ve done, and the answer is I did a lot of work accomplishing fairly little! Well, that’s not fair - it’s just what I accomplished is fairly hard to describe.
What have I done since the last post?
To bring you up to speed, in my last blog post I talked about how I was struggling making the avatars feel good to control. They felt awkward, and frankly I couldn’t figure out why. So I did some research and got some insights, and the last +2 weeks have been me trying to integrate those insights into the avatar.
So where did I start? This gif below uses the old movement system, you’ll notice the movement feels a bit off.
The feet slide across the ground, the turns feel too dramatic for the speed the character was moving. The entire movement of the character was also quite stiff looking - almost like a robot (which I suppose is not too far off from how videogame avatars work, but usually they’re better at hiding it). After this gif was posted people pointed out these things and I realized the issue was beyond needing to polish the walk animation.
So, did we improve? I’d say yes, however there’s still some things left to do.
So, what all was changed?
- Reorganized the entire movement system backend to allow for more inter-connectivity between aspects of the visualization. Movement physics can talk to animations, which can talk to inverse kinematics, which can talk to camera placement, etc.
- Redid the animation framework to focus on physics based movement adjustments, in the past it just adjusted the animation speed based on some preset numbers, now it actually takes the movement speed, the stride length, and uses some trigonometry to determine exactly how fast it needs to play the animation to match the movement speed. The result is that the feet now rarely look like they’re ice skating.
- Redid the movement and camera system, now the WASD/arrow keys will each take into account the direction of the camera when moving, which leads to much more intuitive movements.
- Redid the inertia tracking in the custom physics engine, allowing me to combine it with the inverse-kinematics engine to have limbs, and even the entire body, tilt and adjust based on the inertia of the velocity changes.
- Added minor camera shakes for each foot-step (intensity varies with speed), as well as larger ones for things like jumping and landing!
- Countless small bits of polish applied to existing systems, as well as multiple separate major backend reorganizations that don’t change the external behavior, but are easier to work with.
Did I succeed?
So, is it what I wanted? Kind of! Currently it does running, turning, and jumping really well! That’s why I included them in today’s blog video. Currently though there are many smaller scenarios which make it un-fun to use, these include:
- occasionally it will get stuck when it runs into a wall.
- it doesn’t always feel respondent when making a tight turn while walking.
- the changes to the IK engine have made the walk cycle + walk cycle transitions a bit messy.
- for some reason, the head now occasionally pops through the hood asset.
- the camera shakes are a bit jarring when you’re looking at the character from far away, and such be reduced as you zoom out.
So What Will I do Next Week?
Now, from reading these you can tell they aren’t exactly major issues, they’re important in the sense that they could hurt your perception of the experience, but they at least aren’t so all-encompassing that you can’t enjoy the core actions - namely running and jumping around the map.
So, what do I need to do to complete my work with avatar game feel?
- fix all the issues mentioned earlier
- add dynamic movement sounds (foot steps, slight-breathing, air-movement sounds, etc)
So, that’s what I have left to do, and hopefully I’ll get it done next week. This entire game-feel mission has added almost a month to my prediction for SHL4’s avatar testing release.
Current Estimated 0.1.0 Release Date
As of writing this the current expected release date is November 2nd, and while this isn’t super surprising considering a task I never planned for is taking weeks. My original predictions for the release were early October, looks like I was a month off.
This isn’t ideal, I’m excited to get to work on other things - working on an avatar system for 2-3 months is starting to wear on me a bit. Especially the game feel stuff, because it’s not flashy - I can’t show a minor improvement to the foot placement system and expect loud applause. I miss the days when I could pump out something cool in 2-3 days, then get 100 likes on twitter. On top of that, the constant iteration needed for this is quite boring, half of my day is just running around as the avatar, looking at the output log, and tweaking hundreds of different variables to get the right feel.
However I, and hopefully y’all, will recognize that the avatar is key to any game - especially one with immersion at the core. If it doesn’t feel right it will hurt the game in a way no other mechanic can. It’s very important, I just want to have solved it already.