So @timbeaudet challenged his viewers to make an Asteroid-like game, and I needed a reason to try #Godot out more. We sometimes play typeracers on his stream so I decided to give making a typing game a go!
So @timbeaudet challenged his viewers to make an Asteroid-like game, and I needed a reason to try #Godot out more. We sometimes play typeracers on his stream so I decided to give making a typing game a go!
Instantiating bullet scenes and tweening them towards the asteroid, and only removing the asteroid when the last bullet hits it!
Now that the word disappears when the last bullet hits, rather than when you finished typing it, let's colour the word green as a visual indicator that it's finished!
Took me like an hour to get the hearts to line up in the HBoxContainer thing and be spaced properly... Layout in #Godot is confusing, sometimes clicking the anchor shortcuts makes the node move around in the parent, and sometimes it just does nothing O_o
Anyway, there's a fail condition! It's a real game now right?
Oh my god, I finally figured out one of the reasons why layouting things in #Godot is terrible. In order to right-align or center text, you need to constrain the text to a specific width! Whatβ½
Without a width, text grows towards the right, unbounded by any maximum size. That's how left-align works. So why can't it grow towards the left, aka right-align, unbounded? Or grow both ways, for center-align?
Why is having a fixed width a requirement for center and right-align, but not left-align?
Anyway, finally got the WPM display to be right-aligned, by providing a width...
Also found the ShaderMaterial and added a subtle starry background with some twinkling stars π
This feels like a hack, but it seems to work, creating a SubViewport around an object to take a "screenshot" of it into a texture and then multiple sprites with its own region of the texture == word go boom π₯
But getting used to how #Godot thinks, I probably missed a "split Node into multiple segments" button somewhere :P
I managed to get rid of the stutter by instantiating the scene into a SubViewport and then deleting it after a frame π
Also the Steam #Typing Fest 2026 just started, and I'm participating! You can go play the #demo right now!
Started implementing different typing modes.
Some words you have to type backwards, which is surprisingly hard to do!
And instead of actual words, sometimes you get a collection of random letters!