nicolas-siplis
Joined 9 years ago
Joined 9 years ago
You can create your own unique cards to playtest against ("Compile Card" button is what you're looking for), as long as they follow the engine's supported grammar (which I'm working on so that it fully supports Magic's ~30k legally playable cards, currently at 26k partially/20k fully supported).
It also supports 4-way P2P multiplayer lobbies via PeerJS, though I haven't had enough time to test everything network related so there may be some hidden bugs there!
My dev process was heavily influenced by the recent surge in agentic coding, but I think I've settled on an architecture which successfully manages to avoid slop creeping in:
Each card from its original, normalized oracle text into a CardDefinition struct which contains every single behavior for that particular card. By the time this card definition is compiled, we no longer have access to the original oracle text.
Each effect in the card's compiled definition can be decompiled into human readable text, after which a series of normalization steps based on the AST structure of the card's compilation and a post-pass to cleanup awkward wording is applied. The resulting compiled oracle text is compared against the original card's using vector embeddings, which gives us a semantic similarity score.
The entire purpose of this development workflow is making it obvious to the AI which cards are working correctly and which ones still need better support, without having to rely on behavioral tests for every single card. It took me some time until I finally managed to get the architecture to the point where the AI doesn't cheat its way into improving the card coverage, but the whole experience has been a fantastic way of getting used to this new way of coding and I'm excited to see how the future of our profession looks like in a few years.
I'm looking for any kind of feedback, both UI/UX and engine related, so please share your thoughts!
It's a parser + (de)compiler and rules engine which I'm trying to get to 100% coverage over all Standard/Modern/Vintage/Commander legal cards. About 23000 of them are partially supported, while 15k currently work in full (~3k more than what MTGA currently supports, IIRC). It also allows for P2P 4-way multiplayer which Arena unfortunately does not :/
Anyone can create their own market with an arbitrary number of options. The submission links to Argentina's presidential elections market, feel free to try it in the Goerli testnet and let me know in the comments if you need some testnet USDC to play with it.
The "Explore markets" option is super barebones but should at least give you the list of all created markets.
I plan on doing a release on the Polygon network, but I'd love to have some feedback for the beta version.
The whole code is open source but honestly pretty illegible at the moment. I need to dedicate a day to splitting/reorganizing the code, and probably start to consider an actual framework instead of vanilla JS. If all that hasn't scared you away: https://github.com/chiplis/gambeth
I'm looking for people willing to contribute to a UI revamp but PR's are welcome on anything and everything, all of the time.