I've never shared it with the magic community because I think wizards of the coast would just send me a cease and desist, so three years of work is just sitting idle.
I'm still not sure how I feel about it.
I've never shared it with the magic community because I think wizards of the coast would just send me a cease and desist, so three years of work is just sitting idle.
I'm still not sure how I feel about it.
You never know what opportunities this adventure might bring, but certainly more than just keeping it on your hard drive. Go for it mate.
Heroku restarts their servers once every 24 hours with only thirty seconds' warning. Since the games are in-memory, this of course kicks everyone out of whatever games they may be in the middle of.
I guess the solution is to have the games be on Redis instead of in-memory? I'm a bit more front-end oriented so I was bewildered to learn this was how it worked in the first place and I'm not 100% confident in my solution.
If you use a PaaS (platform as a service, e.g. Heroku, DO App Platform, AWS EB), they might assume your app to be stateless and do things like restart it at will.
If you use a VPS (virtual private server, e.g. DO Droplet, AWS EC2), this certainly shouldn’t happen, but of course it requires some Linux skills to maintain your VPS.
So it’s basically a trade-off between engineering your app to fit a PaaS or hand-managing your VMs (though the latter is usually the cheaper option).
Redis would work but I'd be afraid of race conditions. There probably wouldn't be any, but it's something to be aware of.
If you wanted to test the waters with at least the relative public, I'd consider doing step 1 of renting a server, but then hiding it behind a Tor hidden service. Inconvenient to connect to? Yeah. (Probably) safe from the Hasbro demons? Also yeah.
Feel free to message me and I’d be happy to help with server stuff.
I'd be happy to help if you need anything! Whether hosting or just backend related questions!
Also depending on how hard coded your architecture is, maybe you can separate out the Magic specific data from the app itself? So the MTG specific data could just be loaded as a datapack?
An open-sourced codedump will survive best if people (which effectively means "average technically-minded MTG player" in this case) can run it wherever they're most comfortable - which will almost certainly be something that smells like a VPS. Mayyybe a container.
If both players are still connected once the server comes up and client reconnects, both players can send state to server and if both players' global states match then the game resumes, if not then error out. If only one player reconnects cause the other couldn't wait & closed tab, then you gotta error out anyways.
Then you don't need Redis or any other additional dep at least.
I was assuming I would go in and buy a couple of starter decks from the most recent numbered "edition" to start teaching him, but it appears that they don't do this anymore, and everything I saw was focused around the "Commander" format, which has even more mechanics and rules. The game was already complex enough that I was worried about teaching it to someone new (Plus, the commander mechanic didn't appeal to me, personally, anyway).
Is there no longer the concept of a "simple base set" with just the basic mechanics? Or is everything just theme-heavy sets now?
The game is complex, but a good intellectual challenge for a bright 6yo reader.
Also, FWIW, 5th edition also didn't have a set symbol, but the "Visions" set was released at around the same time and had a "V" symbol... (I only realized how confusing it was after 27 years lol...
They had a Jumpstart product, where you could buy two half-decks and mix them together. But it looks like the last printing of that was 2022.
If you don't mind spending the time, you could just craft a starter deck on paper or find a list online, and then order the individual cards from a website. As long as you avoid the must-have cards for competitive players, it'll be cheap.
See also: https://mtg.fandom.com/wiki/Core_set
Alternatively, Star Wars Unlimited just released their first set. The starter set has two balanced decks (Vader vs Luke) with some staple cards that can be used in a bunch of different decks with boosters. Gameplay is Magic-esque, but smoothed out (no land issues since any card can be turned into a resource, no instants/stack shenanigans, and actions pass back and forth so constant engagement).
There's a free to play version at https://www.forcetable.net/swu using the starter decks.
Here is a small blogpost by WotC: https://magic.wizards.com/en/news/announcements/revitalizing...
The basic rules around commander aren't particularly additionally taxing beyond that. (This is your special card that you can play every time. When it dies it goes back to its special spot and it gets more expensive each time you cast it). What I like about the commander format (in the few pre-constructed decks I've bought over the last few years) - they can really lean into a theme/strategy more - and the commander really guides you in how to play this deck.
Start with those arena kits - they are cheap and handle the rules. But if your son sees a commander deck that resonates with him (in theme or mechanics) -- I'd recommend giving it a shot.
> I built the best site out there for playing magic the gathering online.
No you didn't! You built the best site out there for playing trading card games. It just so happens that it's very easy to point to your own local card/rule sets, share them with peers, and play together online. And if the cards/rules being used by the clients happen to be MTG cards/rules, oh well! That's out of your hands.
Seriously, if you want to release this you only need to make it a) generic out of the box, and b) completely customizable at the client level. Of course this would never support true competitive play since you can never trust the client, but it would still be super fun for playing against people you trust. And as a bonus you could support user-created cards and rules.
If they really built the best site for playing MTG, even over paid versions, then there's no real way to hide the fact that it's magic-specific.
I'm competing with Untap.in and Cockatrice, and what I built is just a much, much nicer version of those things. If you give me your email, I'll send you a link to it and you can try it out yourself if you'd like.
Note: You can see all the rules here: https://mtg.fandom.com/wiki/Comprehensive_Rules
However, I would be interested to have a FOSS rule engine of Magic: the Gathering, preferably written in C, and licensed by AGPL3 or some compatible license. But, unfortunately there is no official FOSS implementation; if there was (at least of the rule engine; not necessarily the UI) (especially if literate programming is used for the rule engine), I think that it would be better since the rules can be made more precise.
I would want to ensure that the rule engine has no pictures at all (you can easily download pictures separately if you want them, anyways; so the rule engine doesn't need them and shouldn't have them).
Obviously the name can be trademarked, and text (e.g. the names / descriptions of things, the specific expression of the rules) and images (e.g. card art) can be copyrighted.
There is a long history of clones of games with the exact same mechanics, but with everything renamed and the artwork changed.
Occasionally, there are attempts to patent mechanics.
So it wouldn't necessarily be a problem if GP was to rename the game, change all the card artwork, make sure no instructions from the original game are used in the new game, and rename all the cards and concepts in an isomorphic way (i.e. a 1:1 mapping between MtG and whatever the new game is called). That way, it could be a completely new game which happens to have the same mechanics as MtG, but isn't a derivative of it legally.
It would be possible to speculate what WoTC would do in that case, but hard to know for sure. Most likely, they'd probably just ignore it if it isn't using their trademark, artwork, descriptions and so on. They could send a blusterous C&D letter to try their luck if they were particularly worried. If the GP got such a letter and ignored it, or replied explaining that their game does not reuse any copyrightable elements, they'd probably just back down. If they really decided to take it to court, they could try to hope it goes more like https://en.wikipedia.org/wiki/Spry_Fox%2C_LLC_v._Lolapps%2C_.... than https://en.wikipedia.org/wiki/Data_East_USA,_Inc._v._Epyx,_I.... (although they'd probably have a harder road given Spry Fox was largely based on the visual look-and-feel, which would be a longer bow to draw when saying a computer game infringes on a card game).
Obviously, none of this is legal advice, and the circumstances could differ depending on facts like where it is hosted / where GP lives, and the exact details of the game engine or how similar artwork was.
The owners of the intellectual property wrote to me and just asked that I stop using the domain name I was using (which was the name of a character) and that every cell contains a reference to them ("Tintin is copyrighted to blah blah blah"). I obliged and haven't heard of them ever since.
(It's in French, should have mentioned that)
Maybe consider posting your site as a 'Show HN' at some point?
Could you adapt the thing to suit another card game?