Posted January 10, 2026 by qwack!
Hello everyone and happy new year! I hope you enjoyed the festivities with your family and friends!
It’s that time again, and once again this update is pretty massive!
It also should be one of the lasts, as the game is nearing completion!
This update introduces a menu interface by switching between different screens.
The startup screen is still the same, with some light changes:
I implemented dynamic screen switching: screens continue updating while switching and retain their state while invisible.
Switching can be canceled mid-animation.
The first new screen is an options menu with 3 options (for the moment):
When switched, that last option is reflected on the startup screen
The second added screen, which is empty right now, is the leaderboards screen that will display global leaderboards once the game is (hopefully) released on Catalog and I can create official scoreboards.
Only leaderboards for unlocked modes are displayed.
The next screen is major part of this update and it shows achievements!
Thanks to the Playdate Squad team for developing the pd-achievements framework!
The game now has achievements and displays toasts when achievements are granted.
After tweaking and torturing the official viewer to work with my screen switching mechanic, I finally decided to go my own route and developed my own (simplified) viewer which integrates better with the functionning and style of the next screens.
This viewer shows an outlined title over a gradient fade out for scrolling items, a scroll bar, has accelerated scrolling with the crank and elastic overshoot when scrolling past the start or the end of the list.
The achievements are shown in the order of the most recent achievement granted, with date and time displayed.
I’m using achievements as conditions to unlock game modes and features, and am dynamically changing some achievements secret status so that achievements themselves can be “unlocked”. For example, achievements unlocking game modes are secret, as well as the achievements within each game mode, but once a mode is unlocked the corresponding achievements are no longer secret.
The other major part of this update is an adaptive hint system to help players in mastering the game through recurring gameplay.
I’ve added some more animation to the game over screen and now show a (not so) random hint.
Hints are chosen from a pool of hints, from very basic hints to advanced gameplay techniques, trying to match the player’s experience or difficulties through the granted (or not yet granted) achievements.
Hints are rotated so that you never see the same tip two times in a row.
While we’re talking about the game over screen, I’ve added a smooth transition from this screen to the startup screen for a seamless gameplay experience.
After the player has seen their first hint, the next screen is unlocked, which shows all the already seen hints for review. The hints are shown in increasing order of times seen (so that seldom seen hints are shown first).
This screen uses the same UI grammar as the previous screen, with scroll fading, a scrollbar, accelerated scrolling and elastic overshoot.
The last screen is the credits, for which I enjoyed drawing little icons (and even new font glyphs) corresponding to the different sections :-)
Even though the arrow at the bottom of the screen is no longer shown while the game is running to prevent unnecessary clutter, all the screens can still be reached while the game is playing.
However, in this case a quick timer is now displayed before resuming gameplay to give you a second before diving back into the action.
This timer is also displayed when exiting from the Playdate menu, as well as when unlocking the device.
This timer does not get triggered if the screen switching is canceled though.
Some minor modifications to the gameplay:
This gave me the idea of a new bonus, the swordmaster!
I’ve fixed the “vector font” for digits to have rounded ends, and am not using the default font for the rest of the text anymore.
I’ve added outlined versions of that font to make the text more legible on noisy backgrounds
I made the crank-to-rewind mechanic smoother.