rahn zen - type mode
LOG 202412202254 #log
type mode: running with rahn 🏃♂️
diving deeper into type mode - the game that started it all. what began as a simple typing test became this whimsical experience where your words power a rectangular pupper's journey through colorful landscapes.
the animations
my favorite part of building this was definitely the animations. rahn's running speed matches your wpm, and when he really gets going, his tongue flops out in the wind - the faster you type, the longer it gets! and if you take a break? our boy just plops down for a quick snooze, complete with adorable dream messages floating above his head. (he's always dreaming about bloofberries, despite pickles being his favorite)
typing mechanics
the word stream was definitely a "don't touch it once it works" feature. after a bunch of trial and error, i landed on this simple but effective system: green for correct letters, red for mistakes, and grey for what's coming up. i was really just replicating the part of the monkeytype.com experience that i liked and tweaking it to my exact specs. once i got it there, i didn't really want to keep going cause it just is how i want a typing test to work now. it's not fancy, but it gets the job done and feels satisfying to use.
customization galore
everything in this game comes from markdown files in the codebase, which means i can tweak things super easily. the word bank is this fun mix of regular words and doggo-speak to keep things playful (because why be serious when you can be fun?). even rahn's dream messages are customizable - currently filled with pickle-themed musings and random dog thoughts.
threw in some quality of life features too - adjustable font sizes, four different word count challenges (10/25/50/100), and those eight different scenes (day/night variants of zen, desert, fall, and winter). probably went a bit overboard with the options, will probably keep going. maybe one of the games will just be configuring settings for the others idk.
the technical bits
while the game looks simple on the surface, getting everything to feel just right took some doing. syncing the animation speeds with typing speed, making sure the word detection felt responsive, and even timing how long rahn should stay awake before dozing off (about 5 seconds of inactivity, if you're curious). typescript is kind of a pita, and i made a lot of bad decisions on this project that'll ultimately mean it goes into the bin eventually.
what's next
for now, i'm pretty happy with how it turned out. sometimes the best projects are the ones where you just keep adding little touches until it feels just right. on to the next game!
p.s. fun fact: finding the perfect tongue-flop-to-wpm ratio took way more tweaking than i'd like to admit and i never really got there 😅✌️