Published: October 27, 2022
It's been a challenge to juggle Rhythm Quest alongside my job, but I still have some progress to report on!
I've got a new set of character animations in the game! I actually went to see some alpacas at a farm not too long ago, and decided it would make for a cute new character:
I decided to go with a tan-ish color...alpacas come in several colors but I figured this one would be nice since it's different than the rest of the characters that I have so far.
The running animation is mostly just basic leg movement, but there's some secondary motion with its tail and neck that help to give it a sense of weight. The slight bit of elasticity / delay between the chest movement and the head bounce I think is the main thing to focus on.
This was a fun one, haha. The anticipation frame and smear are pretty important here; the motion is a lot smaller without those. The overall form of the animation is similar to Ducky, with the horizontal stretch happening at the point of "impact". For the water, it starts as a solid wavefront and then splits off into distinct streams, which fade into droplets. It's actually somewhat challenging to get the spacing to look right for thi sone, since the enemies are really more positioned for a bite than a spit attack. Still, I think in practice it's fine.
Experimenting with having the alpaca's legs flail around while jumping was really weird, so instead I kept everything stationary and instead just focused on subtle fur movement so it doesn't look static. There's a brief crouch frame used here; that one doesn't really need to be very clean since it's more of a quick flash of motion than an actual animation frame.
Flying is the same as jumping, just with the wings added.
And same thing with the flying attack, I just added the wings onto the normal attack animation. It's really nice that I can just copy-paste the wing frames and have them look fine with only a couple of tweaks...
Over on the Rhythm Quest Discord we had some interest in translations of the game, so I decided to put together a quick and dirty google sheet for people to openly contribute translations as they like. This is more of a temporary solution than anything else -- in the future I'll need to either appoint specific people to manage each language's translations, or simply use a professional service -- but the demo text has already been fully translated into 7 other languages, which is awesome to see. Those have been pulled into Unity and should be available in my next demo update, which I'm sure will be a welcome addition since I know I've got quite a few international players interested in the game.
Of course, different languages add a whole host of new challenges for me to handle...
First off, the pixel font that I'm using throughout the game is Softsquare / "Soft square cakes" from Chevy Ray's pixel font pack. It's a fine font, but unfortunately it's missing versions of letters with all of the diacritics, so it can't render characters like á, è, ö, ñ, and all that, not to mention stuff like ¡, ¿, and even ß. I have a fallback font for unicode characters (including East Asian glyphs), but it would be nice to have these written in the same style as the other English letters.
And so, I opened Fontforge and added them to the font myself...
So yeah, add "font design" to the endless list of skills that I've used throughout this project.
Anyhow, that is all looking mostly fine now:
They don't render as well at a 1x scale (if you're playing at 500x300, for example), but that's acceptable for me. That topic does bring me to my next point, though...
While diacritics render "not well, but alright" at 1x scale using a pixel font, unicode characters like East Asian glyphs are just plain unreadable at this scale with my current unicode pixel font:
Yeah, that's a problem. Of course, I could just double the font size here and be fine, but that would lead to characters taking up much more space than I'd like:
My solution here was to implement custom code in my font-switching script that detects whether you're using a 1x UI scale, and if so, forces all labels using these unicode glyphs to use a smooth font instead of the pixel font:
So now even if you play in Chinese using a 500x300 resolution, things will be somewhat readable. Of course, probably nobody is going to play my game in 500x300 to begin with, but hey, if you do, it's going to work properly now!
That unfortunately wasn't the last of my issues, as my CJK (Chinese, Japanese, Korean) font was inexplicably missing characters that I thought it ought to have covered, so I had to spend a bunch of time debugging that and finding a different download...but I think that should be fixed now as well. Phew......
That's going to do it for this update. There's still more work to be done for localization (mostly, fixing up the sizing of labels to make sure everything fits regardless of language), but it's a lot closer to being done than before. Now I just have to get back to working on the rest of the game...