May you live in interesting times

March saw more work on pkmn.ai projects summaries and an influx of new competitive Pokémon AI enthusiasts on the Discord server. I’m optimistic about the knowledge-sharing and idea cross-pollination opportunities and I’m motivated to finish the initial version of the pkmn.ai site (or at least the leaderboard and tournament design) though have lost some momentum there. Whenever a project reaches a point where a lot of difficult work is required I either get to choose between actually getting things done or finding something else easier or more interesting to work on. This month it felt like a lot of projects were kind of at this point, so there wasn’t anything to be done but suck it up and grind.

Part of this backlog of less interesting work included non-Pokémon projects, though I also took the time to fix the bugs related to @pkmn/sim’s handling of mods and formats. I’m pretty unhappy with the resulting fixes but they’re workable enough that I can live with them, at least for the time being. zxc has also been identifying a lot of chat protocol parsing oversights in @pkmn/protocol which has resulted in many small patch fixes. On the protocol front, I’ve been working on strictly verifying battle protocol messages in a local branch for several weeks — pretty tedious and frustrating work, but necessary as covered in previous logs.

There has also been some “fun” work too — the engine gained a Zig API for overriding high-level RNG functionality, inspired by Athena, which ended up being rather elegant to represent in Zig thanks to its comptime functionality. Additionally, I started working on a more comprehensive computation of Pokémon’s complexity as well as an analysis of the competitive Pokémon simulator historical traffic stats and breakdown. The latter is somewhat dependent on @pkmn/logs being a thing, providing yet more motivation for a long-overdue return to the stats project.

This update is short and a little late, but due to being effectively stunlocked for the better part of the month with non-pkmn related concerns there’s not a lot more I can say here. It’s kind of unfortunate the pkmn work on my plate right now is so unattractive because it makes restarting after a period of turmoil even more difficult — next month’s log may end up similarly anemic but pkmn development progress has always been highly non-linear so it shouldn’t be too worrisome.