UPDATE: jMagic 0.11.0 features all of Innistrad and Magic 2013
Special Thanks to Richard Garfield for inventing the game we all know and love, and to Wizards of the Coast for popularizing and producing it.
jMagic is, first and foremost, a Java implementation of the Comprehensive Rules of Magic: the Gathering, bundled with a user interface (that we realize is pretty terrible). As this project is very large (over 100,000 lines of code as of this writing), even though we have written the code with care, there are bound to be bugs both in the rules implementation and the interface. Our team is experienced but small. We will do our best to respond to bug reports with alacrity. Post bug reports and feature requests to this thread. We want jMagic to be as good as it can be, and that means we want you to enjoy it. If you aren't enjoying it, please tell us why!
jMagic requires the latest version of Java, which is available for free at http://www.java.com.
jMagic.zip contains, among other things, jMagic.jar. Extract jMagic anywhere and invoke `java -jar jmagic.jar` (Most Windows users can just double-click jMagic.jar). This will open the jMagic launcher, which looks like this:
To host a game, simply click the Host Publicly button (or the Host button if you know you'll be playing a specific opponent). To connect to a game, switch to the connect tab. If you know your opponent's IP address, type it and click Connect. To search for publicly hosted games, click Find Games. To use either the Host Publicly or Find Games features, you'll need to point jMagic at a game finding server. There is one at http://games.slightlymagic.net/games/ -- typing this URL (including the final slash) in the appropriate box on the launcher's settings panel will tell jMagic where to look for and host games.
The "Supported cards" button on the host tab brings up a searchable list of all cards jMagic currently supports. As of this writing (pre-M12), all standard-legal cards are supported, as well as many Extended and Legacy favorites.
Choosing jMagic->Settings from the launcher's menu bar brings up a settings window. There are lots of advanced settings in this dialog, including settings for loading custom cards. The setting you'll want to look at here is Card art location. If you have card art, setting this option to the folder containing that art will cause jMagic to display that art. jMagic is expecting each file in the specified folder to be a .jpg file named like the card (for example, "Jace Beleren.jpg").
Choosing Game->Settings from the game's menu bar brings up a settings window.
* "Automatic Passes" allows you to configure when jMagic will automatically pass for you. A checked box indicates that jMagic should pass priority for you automatically if nothing happens during that step. An unchecked box indicates that you always want to manually pass priority during that step.
* "Play" configures various miscellaneous options:
* "Rotate opponents' cards" rotates your opponents cards 180 degrees.
* "Always Show Actions Menu" causes a popup menu to appear when you click on a card you'd like to cast/activate/suspend/etc, rather than immediately performing that action (this option helps prevents misclicks). (If there are multiple actions associated with a card, the menu will always come up.)
* "Render damage" causes damage to be displayed above the power and toughness on cards on the battlefield, in red.
* "Default zone display" changes which two zones come up by default on the left side of the screen for new games.
* "Arrows" allows you to change the colors of arrows that represent the various relationships between cards.
* "Yields" will display any spells/abilities you've yielded to. To yield to something for the rest of the game, click it while it's on the stack. You can stop yielding to a spell or ability by unchecking it here.
Does the game have full card text and/or allow use of images?
From what I understand, as other software does this - you can legally allow use of images in your program, as long as you don't distribute the images with your software.
Does the game have full card text and/or allow use of images?
From what I understand, as other software does this - you can legally allow use of images in your program, as long as you don't distribute the images with your software.
jMagic does show the full text of a card when you hover over it with your mouse. Here's a screenshot example:
In addition, jMagic supports card art, but you have to provide it yourself. The instructions for jMagic to use art are in the original post:
Choosing jMagic->Settings from the launcher's menu bar brings up a settings window. There are lots of advanced settings in this dialog, including settings for loading custom cards. The setting you'll want to look at here is Card art location. If you have card art, setting this option to the folder containing that art will cause jMagic to display that art. jMagic is expecting each file in the specified folder to be a .jpg file named like the card (for example, "Jace Beleren.jpg").
What is the format of a deck file? I click "Host" but it expects a deck, first. I'd like to make one if I knew how.
The deck files are available in the "Decks" folder. They're all preconstructed that I've seen (e.g. PT t8 decks), but presumably you could make your own with little trouble.
Edit: Yup, just:
[quantity] [cardname]
for each card in the deck. Put "SB:" before the quantity to specify sideboard.
There's a bug where if you do any sort of limited type of game, and don't have a decklist picked, it won't let you start a game. Right now, you have to just pick any decklist, and start the game, and then it will load up and you'll have your packwar deck.
There's a bug where if you do any sort of limited type of game, and don't have a decklist picked, it won't let you start a game. Right now, you have to just pick any decklist, and start the game, and then it will load up and you'll have your packwar deck.
Ah yes, that is an annoyance currently. The launcher doesn't realize pack wars is going to give you an entirely new deck; but then when the engine gets your decklist it just ignores it. Makes sense from a development perspective but not so much from a user perspective. Thanks for the note!
1) [randomly choosing who goes first] We randomly select who chooses who will play first.
2) [opening hand reveal actions] This is a known issue, and we are working to fix it.
3) [marking counters on permanents] Thanks for the suggestion here. We like this idea, and it is on our list of things to implement in future versions.
4) [noob-friendliness] Oddly enough this is actually how the rules work. If you don't have the mana to cast a spell, the game state reverses to the moment before you began casting it. We agree there is not any explanation as to what's happening when the game state reverses, and we've added this to our list as well.
Thanks for the feedback -- the more we get, the better we can focus our efforts to make jMagic more enjoyable to use! To answer your question on where we are focusing next: We don't know yet, because we want to know what you all think needs work first.
You did great work so far with this software, definitely the right way!
Here i've some suggestions for you:
- The interface needs some work i think, why don't you take a look at the original Magic Online interface? I think they did it a good way there! (i attached a screenshot of the 'compact version' of the interface, just in case)
For instance, it would be better for the "turn phases window" to be kinda between the card picture and the "status/response window". I've attached a picture, to show you what i mean. At the moment, i'm always busy with looking left/right to see, in what phase i am and what just happend.
- A player chat window would also be nice, maybe in the place of the "turn phases window" down there? (if it is planned to be added)
- A kind of "grid" for the cards on the "battlefield" to snap to could also come in handy. Right now, all cards are "floating" around a bit too much. :/
- A way to change the card background image would be nice.
Think that's all for now, hope this helps! Anyway, keep up the good work!
New features in jMagic 0.7.1: * Game finder connectivity. The launcher's host tab has "Host" and "Host Publicly" buttons. "Host" does what it did in the previous version. "Host Publicly" posts the game details to a game finding server; specify the location of said server in the launcher's options (jMagic->Settings, directly beneath "Card art location"). * Constructed format support. You can enforce a format in a hosted game by selecting it from the game type dropdown. * Counter display. Cards on the battlefield show their counters as small squares in their art boxes, in rows of ten. +1/+1 counters are green, -1/-1 counters are red, and all others are white. If there are more than thirty counters on a card, instead of the squares there is a line of text saying how many total counters of all types there are. * New cards: AEther Vial, Ancient Tomb, Fireblast, Goblin Welder, Grim Monolith, Grindstone, Misdirection, Stillmoon Cavalier, Sylvan Library ...
Bugfixes in 0.7.1:
* Pack wars games don't require a decklist. (Actually, choosing no deck is the same as choosing an empty decklist; this has the side effect of choosing no deck for a constructed game failing the "minimum deck size" requirement.)
* Various card bugs (Karn Liberated's ultimate bringing sideboards into the decks).
THE GAME FINDER is in the zip file alongside jMagic itself, in the game-finder-server directory. We aren't hosting a game finding server ourselves. Information about hosting one is in the readme.txt file. If you host a game finding server, post the address so people can host games on it!
You guys should use a project hosting service, like github or google projects. No need to store the source code publicly there but you get a handy way to store the released versions, a wiki, and a public bug tracker.
This is awesome, when are you planning on adding M12?
Magic 2012 is currently in testing. No formal 100% promises, but the plan is currently to have it tested and released this coming weekend, shortly after it is legal for play in paper Magic tournaments.
I'm not sure if this is a bug or if I don't know how to use the software.
I select a deck, choose a format and then click on the Host button.
A white window (jMagic Starting) will appear and won't go away. If I try to exit, it will ask me if I really want to cancel the host and even if I click yes the window won't disappear.
EDIT: I found out that the problem was the decklist but still that window annoyed me
Also, is there a way I can play goldfish?
EDIT: It would also be easier if we could see our own IP when hosting a game (like mws do)
I'm not sure if this is a bug or if I don't know how to use the software.
I select a deck, choose a format and then click on the Host button.
A white window (jMagic Starting) will appear and won't go away. If I try to exit, it will ask me if I really want to cancel the host and even if I click yes the window won't disappear.
EDIT: I found out that the problem was the decklist but still that window annoyed me
A problem with the decklist should not result in this behavior. You should get an error message saying what the problem is (though that message is admittedly a little cryptic right now).
Also closing the jMagic Starting window and then confirming should close bring you back to the launcher in short order. If it doesn't then something is wrong and we need to fix it.
If either of these things happen again could you possibly provide more detail? Unfortunately we haven't been able to reproduce these issues.
Also, is there a way I can play goldfish?
No, although you can play against yourself by connecting to localhost.
EDIT: It would also be easier if we could see our own IP when hosting a game (like mws do)
This is actually pretty difficult. Ideally we want players to be using game-finding servers (in which case you don't need to know your IP), but to our knowledge no one has put one up yet.
I have the same problem as tgdgc. I believe he is right on that it has do with the deck. I was trying to use an rtf file (it says .txt in my screen shot but it's actuall .rtf). Try just writing up a decklist and saving it, maybe change the extension to .txt just to be sure. When this happens I have to force quit because the message doesn't actually do anything, just disappears when you say yes. Picture
I also get an error when I try connecting to localhost. It says I/O error while trying to connect: Connection refused. I don't know if this happens when I try to connect to others or when they try to connect to me because I haven't yet tried it with other people. As of now I'm assuming it has to do with my router not accepting my host. I haven't port forwarded my new router yet so that could be the problem.
I have the same problem as tgdgc. I believe he is right on that it has do with the deck. I was trying to use an rtf file (it says .txt in my screen shot but it's actuall .rtf). Try just writing up a decklist and saving it, maybe change the extension to .txt just to be sure. When this happens I have to force quit because the message doesn't actually do anything, just disappears when you say yes. Picture
I also get an error when I try connecting to localhost. It says I/O error while trying to connect: Connection refused. I don't know if this happens when I try to connect to others or when they try to connect to me because I haven't yet tried it with other people. As of now I'm assuming it has to do with my router not accepting my host. I haven't port forwarded my new router yet so that could be the problem.
jMagic doesn't support RTF files describing decks. A deck file must be a plain-text file where each line is blank, starts with a "#" to indicate the rest of the line is a comment, or names a card. Lines that name a card can have an "SB:" at the start to mean to have that card in the sideboard. Naming a card can also include a number before the card name to indicate how many of that card to have in the deck. For example:
20 Plains
# Creatures
4 Suntail Hawk
Soul Warden
SB: 1 Gideon Jura
SB: Day of Judgement
Reading in an RTF file and not giving you an error, on the other hand, is a bug and one we have created a ticket to look at.
Did you start a game on before you tried to connect to yourself? In the case of hosting games for other people, jMagic tries to use UPnP to allow others to connect to you without having to mess with port-forwarding manually, but sometimes routers don't play nicely with standards. We have a bug-reporting thread over at SlightlyMagic which you can use to put the exact details behind the bug. Make sure to read the first post in that thread to see what information we're looking for when you report a bug.
What's New in jMagic 0.8: * We are hosting a game finder. In jMagic->Settings, type "http://jmagic.dyndns.org/games/" (no quotes, final slash required) into the "Game finder:" box to tell jMagic where you want to list your games or look for others' games. * All cards in Magic 2012 are available.
I was playing a game where my opponent controlled a Mox Opal. Its Metalcraft was active, and he activated it, but it didn't tap. He was able to repeatedly activate it on his turn. I suspect that the encoding for Mox Opal's ability is glitched.
I should feel all jealous and devastated, but I'm not going to poop on this extraordinary achievement.
Nice work. And you call the GUI pretty terrible, but I see some snazzy design ideas in there. Of course I will test extra turn cards with Sorin Markov.
Private Mod Note
():
Rollback Post to RevisionRollBack
Epic banner by Erasmus of æтђєг.
Awesome avatar provided by Krashbot @ [Epic Graphics].
jMagic
Downloads: Mac OSX / all other platforms
UPDATE: jMagic 0.11.0 features all of Innistrad and Magic 2013
Special Thanks to Richard Garfield for inventing the game we all know and love, and to Wizards of the Coast for popularizing and producing it.
jMagic is, first and foremost, a Java implementation of the Comprehensive Rules of Magic: the Gathering, bundled with a user interface (that we realize is pretty terrible). As this project is very large (over 100,000 lines of code as of this writing), even though we have written the code with care, there are bound to be bugs both in the rules implementation and the interface. Our team is experienced but small. We will do our best to respond to bug reports with alacrity. Post bug reports and feature requests to this thread. We want jMagic to be as good as it can be, and that means we want you to enjoy it. If you aren't enjoying it, please tell us why!
jMagic requires the latest version of Java, which is available for free at http://www.java.com.
jMagic.zip contains, among other things, jMagic.jar. Extract jMagic anywhere and invoke `java -jar jmagic.jar` (Most Windows users can just double-click jMagic.jar). This will open the jMagic launcher, which looks like this:
To host a game, simply click the Host Publicly button (or the Host button if you know you'll be playing a specific opponent). To connect to a game, switch to the connect tab. If you know your opponent's IP address, type it and click Connect. To search for publicly hosted games, click Find Games. To use either the Host Publicly or Find Games features, you'll need to point jMagic at a game finding server. There is one at http://games.slightlymagic.net/games/ -- typing this URL (including the final slash) in the appropriate box on the launcher's settings panel will tell jMagic where to look for and host games.
The "Supported cards" button on the host tab brings up a searchable list of all cards jMagic currently supports. As of this writing (pre-M12), all standard-legal cards are supported, as well as many Extended and Legacy favorites.
Choosing jMagic->Settings from the launcher's menu bar brings up a settings window. There are lots of advanced settings in this dialog, including settings for loading custom cards. The setting you'll want to look at here is Card art location. If you have card art, setting this option to the folder containing that art will cause jMagic to display that art. jMagic is expecting each file in the specified folder to be a .jpg file named like the card (for example, "Jace Beleren.jpg").
Choosing Game->Settings from the game's menu bar brings up a settings window.
* "Automatic Passes" allows you to configure when jMagic will automatically pass for you. A checked box indicates that jMagic should pass priority for you automatically if nothing happens during that step. An unchecked box indicates that you always want to manually pass priority during that step.
* "Play" configures various miscellaneous options:
* "Rotate opponents' cards" rotates your opponents cards 180 degrees.
* "Always Show Actions Menu" causes a popup menu to appear when you click on a card you'd like to cast/activate/suspend/etc, rather than immediately performing that action (this option helps prevents misclicks). (If there are multiple actions associated with a card, the menu will always come up.)
* "Render damage" causes damage to be displayed above the power and toughness on cards on the battlefield, in red.
* "Default zone display" changes which two zones come up by default on the left side of the screen for new games.
* "Arrows" allows you to change the colors of arrows that represent the various relationships between cards.
* "Yields" will display any spells/abilities you've yielded to. To yield to something for the rest of the game, click it while it's on the stack. You can stop yielding to a spell or ability by unchecking it here.
Play! Enjoy!
You should put up another mirror for the download. I could host it for you if you're interested.
The top post has been edited with a mirror of the download.
From what I understand, as other software does this - you can legally allow use of images in your program, as long as you don't distribute the images with your software.
jMagic does show the full text of a card when you hover over it with your mouse. Here's a screenshot example:
In addition, jMagic supports card art, but you have to provide it yourself. The instructions for jMagic to use art are in the original post:
Woops, just found the decks that came in the archive. Doh!
The deck files are available in the "Decks" folder. They're all preconstructed that I've seen (e.g. PT t8 decks), but presumably you could make your own with little trouble.
Edit: Yup, just:
[quantity] [cardname]
for each card in the deck. Put "SB:" before the quantity to specify sideboard.
WRBoros
RKuldotha Red
Ah yes, that is an annoyance currently. The launcher doesn't realize pack wars is going to give you an entirely new deck; but then when the engine gets your decklist it just ignores it. Makes sense from a development perspective but not so much from a user perspective. Thanks for the note!
2) [opening hand reveal actions] This is a known issue, and we are working to fix it.
3) [marking counters on permanents] Thanks for the suggestion here. We like this idea, and it is on our list of things to implement in future versions.
4) [noob-friendliness] Oddly enough this is actually how the rules work. If you don't have the mana to cast a spell, the game state reverses to the moment before you began casting it. We agree there is not any explanation as to what's happening when the game state reverses, and we've added this to our list as well.
Thanks for the feedback -- the more we get, the better we can focus our efforts to make jMagic more enjoyable to use! To answer your question on where we are focusing next: We don't know yet, because we want to know what you all think needs work first.
You did great work so far with this software, definitely the right way!
Here i've some suggestions for you:
- The interface needs some work i think, why don't you take a look at the original Magic Online interface? I think they did it a good way there! (i attached a screenshot of the 'compact version' of the interface, just in case)
For instance, it would be better for the "turn phases window" to be kinda between the card picture and the "status/response window". I've attached a picture, to show you what i mean. At the moment, i'm always busy with looking left/right to see, in what phase i am and what just happend.
- A player chat window would also be nice, maybe in the place of the "turn phases window" down there? (if it is planned to be added)
- A kind of "grid" for the cards on the "battlefield" to snap to could also come in handy. Right now, all cards are "floating" around a bit too much. :/
- A way to change the card background image would be nice.
Think that's all for now, hope this helps! Anyway, keep up the good work!
regards,
New features in jMagic 0.7.1:
* Game finder connectivity. The launcher's host tab has "Host" and "Host Publicly" buttons. "Host" does what it did in the previous version. "Host Publicly" posts the game details to a game finding server; specify the location of said server in the launcher's options (jMagic->Settings, directly beneath "Card art location").
* Constructed format support. You can enforce a format in a hosted game by selecting it from the game type dropdown.
* Counter display. Cards on the battlefield show their counters as small squares in their art boxes, in rows of ten. +1/+1 counters are green, -1/-1 counters are red, and all others are white. If there are more than thirty counters on a card, instead of the squares there is a line of text saying how many total counters of all types there are.
* New cards: AEther Vial, Ancient Tomb, Fireblast, Goblin Welder, Grim Monolith, Grindstone, Misdirection, Stillmoon Cavalier, Sylvan Library ...
Bugfixes in 0.7.1:
* Pack wars games don't require a decklist. (Actually, choosing no deck is the same as choosing an empty decklist; this has the side effect of choosing no deck for a constructed game failing the "minimum deck size" requirement.)
* Various card bugs (Karn Liberated's ultimate bringing sideboards into the decks).
THE GAME FINDER is in the zip file alongside jMagic itself, in the game-finder-server directory. We aren't hosting a game finding server ourselves. Information about hosting one is in the readme.txt file. If you host a game finding server, post the address so people can host games on it!
Thanks for all the feedback guys, keep it coming!
Magic 2012 is currently in testing. No formal 100% promises, but the plan is currently to have it tested and released this coming weekend, shortly after it is legal for play in paper Magic tournaments.
I select a deck, choose a format and then click on the Host button.
A white window (jMagic Starting) will appear and won't go away. If I try to exit, it will ask me if I really want to cancel the host and even if I click yes the window won't disappear.
EDIT: I found out that the problem was the decklist but still that window annoyed me
Also, is there a way I can play goldfish?
EDIT: It would also be easier if we could see our own IP when hosting a game (like mws do)
My english may suck, so please take it easy
A problem with the decklist should not result in this behavior. You should get an error message saying what the problem is (though that message is admittedly a little cryptic right now).
Also closing the jMagic Starting window and then confirming should close bring you back to the launcher in short order. If it doesn't then something is wrong and we need to fix it.
If either of these things happen again could you possibly provide more detail? Unfortunately we haven't been able to reproduce these issues.
No, although you can play against yourself by connecting to localhost.
This is actually pretty difficult. Ideally we want players to be using game-finding servers (in which case you don't need to know your IP), but to our knowledge no one has put one up yet.
I also get an error when I try connecting to localhost. It says I/O error while trying to connect: Connection refused. I don't know if this happens when I try to connect to others or when they try to connect to me because I haven't yet tried it with other people. As of now I'm assuming it has to do with my router not accepting my host. I haven't port forwarded my new router yet so that could be the problem.
jMagic doesn't support RTF files describing decks. A deck file must be a plain-text file where each line is blank, starts with a "#" to indicate the rest of the line is a comment, or names a card. Lines that name a card can have an "SB:" at the start to mean to have that card in the sideboard. Naming a card can also include a number before the card name to indicate how many of that card to have in the deck. For example:
Reading in an RTF file and not giving you an error, on the other hand, is a bug and one we have created a ticket to look at.
Did you start a game on before you tried to connect to yourself? In the case of hosting games for other people, jMagic tries to use UPnP to allow others to connect to you without having to mess with port-forwarding manually, but sometimes routers don't play nicely with standards. We have a bug-reporting thread over at SlightlyMagic which you can use to put the exact details behind the bug. Make sure to read the first post in that thread to see what information we're looking for when you report a bug.
* We are hosting a game finder. In jMagic->Settings, type "http://jmagic.dyndns.org/games/" (no quotes, final slash required) into the "Game finder:" box to tell jMagic where you want to list your games or look for others' games.
* All cards in Magic 2012 are available.
Nice work. And you call the GUI pretty terrible, but I see some snazzy design ideas in there. Of course I will test extra turn cards with Sorin Markov.
Awesome avatar provided by Krashbot @ [Epic Graphics].