General
- Huge performance gains. Chiefly, our caching system saw a 2-3x perf improvement, and a few things here and there were improved. URPG's initial load was sped up by something like 200ms, which I can certainly feel. Then, I split the 'bundle' (a 1.8mb js file!) on the account page so it's far smaller and I was able to cut ~90kb out of the main bundle. Dropped 20kb of unused CSS.
- Engine: all events now have a subtle indicator upon play to show that the option has been selected. When new options show up (tracking in URPG) there's a nice intro animation.
- Pop-up state is now tracked, so (URPG) when we feed animals, the pop-up just stays there on the screen and updates the progress bar!
- Any new messages in the event log now get an attractive intro animation.
- We now report how much time actually remains for decay, on hover of the item (URPG Fountains)
- Item gain/loss messages were standardized, improved and fixed. For example, previously it gave a misleading message if the dev 'added' a negative number.
- Improved tinydark.com's search engine and LLM indexing, also some tweaks to the engine page, including reduced pricing for low-resource games
Server Update + Security Audit
- Modernized our server + software (GAM3) for performance and security purposes. Ubuntu 20 -> 24, MySQL 8 -> 8.4, PHP 8.2 -> 8.3.
- GAM3 itself ran the gamut for best security/code practices and there were definitely a few things to improve after 15 years of life as a game engine. :}
Bug Fixes
- Certain cooldown-hidden events (such as fountains) would stick around after being played
- Text results/event descriptions will no longer have the bug where references to a player's stats become the word '0' if they don't exist.
- Fixed 'floating' type of events (such as featured in URPG battles) sending the page to the top of the screen when played as event summary branches
- A new router means that awful "load game, click Characters, select one and hit back button twice to see a blank screen" bug is finally fixed.
- The feed was not updating when performing any inventory actions, requiring a refresh (or waiting) to see
- Severe regression 😱 where clicking any event/branch also immediately reloaded the feed afterwards, causing mild behind-the-scenes lag. Also made polling for new feed events considerably smarter/easier on the server.
#justdevthings
This was an absolutely monumental dev cycle for the engine. It is no exaggeration to say it was life-changing. See #channel for details.