Veraticus
Joined 14 years ago
Joined 14 years ago
The rabbit hole I fell deepest into was the draft advisor. It's an 8-axis WASPAS scoring engine — baseline win rate (Bayesian-shrunk so sparse archetypes don't produce noise), N-wise card synergy, curve fit, castability via Karsten's tables, signal openness, role composition, color commitment, and opportunity cost. Empirical winning-deck data only works for card-intrinsic axes; state-dependent axes like signal and opportunity cost need theoretical sigmoid parameters or survivorship bias destroys the differentiation.
Try it! The MCP works out of the box with MTG rules, cards, stats, and mana base. If you connect the lightweight Savecraft daemon to your Arena install, it'll watch your `Player.log` and context will automatically flow to the LLM on your specific decks and matches, enabling the draft advisor and play advisor modules (and other cool stuff).
Everything is open source and Apache 2.0 @ https://github.com/joshsymonds/savecraft.gg
The blog post is about why I threw away all my wireframes and built the whole thing as a conversation. You see, dashboards are collections of pre-answered questions, and the interesting questions are always the ones the designer didn't anticipate.
The longer version involves getting banned from every gaming subreddit on the internet for mentioning AI, a Reddit moderator accusing me of "interpersonal relationship theft," (!) and a RimWorld veteran telling me my tool was "incredibly useful," lamenting their aging Google skills, and downvoting me to zero. It's been a ride, HN...
I'd love to see your JS lib if you're willing to share it! The raw files would still need per-game parsers (D2R's .d2s is a gnarly bit-packed binary, for example), but moving file access to the server side would be a big deal for adoption.
I built this because I got tired of screenshotting my inventory every time I wanted to compare two items in Diablo 2: Resurrected (and am too garbage at the game myself to make the distinction). A local Go daemon watches save directories with fsnotify, parses files through sandboxed WASM plugins, and pushes structured state to Cloudflare Workers over binary protobuf WebSocket.
Every plugin binary is Ed25519 signed: community contributors submit source, CI builds and signs the WASM with a key they never touch. Your machine verifies before execution. This was the only trust model I'd accept for running other people's code on my gaming rig.
Server side is Cloudflare Workers + Durable Objects with WebSocket Hibernation, D1 with FTS5 for full-text search across saves and notes, and reference data modules (like a D2R drop calculator) running as separate WASM Workers via Workers for Platforms dispatch namespaces.
Currently supports Diablo II: Resurrected, Clair Obscur: Expedition 33 (what I'm playing currently!), Stardew Valley (theoretically), and WoW (Battle.net API + Raider.io). Linux and Windows are solid, Mac is kind of undertested. Apache 2.0, solo project. The marketing site is https://savecraft.gg
The correct way to argue against this isn’t to say that “objectively” the world is the same for deaf and non-deaf people; it’s that there’s a culture and language bound up in deafness that don’t deserve to die thanks to medical advances. That is true, and makes treatments like these and what they mean to the deaf community much more complicated and difficult.