It is currently 16 Apr 2024, 12:32
   
Text Size

jMagic 0.7.1

by jmagicdev

Moderators: jmagicdev, CCGHQ Admins

jMagic 0.7.1

Postby jmagicdev » 12 Jul 2011, 01:23

RnD logo.png


jMagic
Download!


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:

start-host.PNG
start-host.PNG (4.91 KiB) Viewed 6049 times


To host a game, simply click the host button. To connect to a game, switch to the connect tab, input the host's IP address, and click the connect button.

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.

game.PNG


Play! Enjoy!
jmagicdev
DEVELOPER
 
Posts: 22
Joined: 11 Jul 2011, 23:39
Has thanked: 0 time
Been thanked: 6 times

Re: jMagic 0.7.1

Postby jmagicdev » 12 Jul 2011, 01:41

UPDATE.

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! :-)
jmagicdev
DEVELOPER
 
Posts: 22
Joined: 11 Jul 2011, 23:39
Has thanked: 0 time
Been thanked: 6 times

Re: jMagic 0.7.1

Postby ubeefx » 12 Jul 2011, 14:58

Hi jmagicdev, a new Java Magic program, cool! I like R&D productions. :)
How long was jMagic already in development? Can you tell us a little more about this?
100 K lines is already impressive. After examining the jar I noticed the cards are programmed in Java.
There is a also a cards file that states there are 2977 supported cards.
The application is client/server like Mage, which makes it harder to use for most people.
Seems like it would be good to add a detailed readme in the main folder how to use this app.

I get following exception when hosting a private game:
Code: Select all
Exception in thread "Host" org.teleal.cling.transport.spi.InitializationException:
Could not initialize MulticastReceiverImpl: java.net.SocketException:
Unrecognized Windows Sockets error: 0: no Inet4Address associated with interface
User avatar
ubeefx
DEVELOPER
 
Posts: 748
Joined: 23 Nov 2010, 19:16
Has thanked: 34 times
Been thanked: 249 times

Re: jMagic 0.7.1

Postby jmagicdev » 12 Jul 2011, 22:38

ubeefx wrote:Hi jmagicdev, a new Java Magic program, cool! I like R&D productions. :)
How long was jMagic already in development? Can you tell us a little more about this?
100 K lines is already impressive. After examining the jar I noticed the cards are programmed in Java.
There is a also a cards file that states there are 2977 supported cards.
The application is client/server like Mage, which makes it harder to use for most people.
Seems like it would be good to add a detailed readme in the main folder how to use this app.

I get following exception when hosting a private game:
Code: Select all
Exception in thread "Host" org.teleal.cling.transport.spi.InitializationException:
Could not initialize MulticastReceiverImpl: java.net.SocketException:
Unrecognized Windows Sockets error: 0: no Inet4Address associated with interface
The first commit to jMagic's repository was on 2007-08-17, though the first email regarding jMagic was on 2007-02-12. That makes jMagic over 4 years old, officially. Unofficially, the ideas that formed jMagic were thought during 2005 and 2006, so jMagic has a lot of history behind it.

Yes, every card is in Java. We thought about a scripting language approach, but the script would have become so complicated to support certain cards (think Warp World) that we decided to just write the cards in the same language as the engine.

As of this reply, our repository trunk supports exactly 3000 cards, so we're always adding new ones.

Can you comment on the simliarities to Mage regarding client/server? What kind of model do you recommend?

We're putting together a README based on the feedback from those who have played it.

Your exception is not something we've ever seen before. Can you post in our bug-reports thread and tell us how your network is configured? Make sure to read the first post in that thread for all the information we're looking for.
jmagicdev
DEVELOPER
 
Posts: 22
Joined: 11 Jul 2011, 23:39
Has thanked: 0 time
Been thanked: 6 times

Re: jMagic 0.7.1

Postby ubeefx » 13 Jul 2011, 08:31

That makes jMagic over 4 years old, officially.
So I guess the code base already had several iterations.
Can you comment on the similarities to Mage regarding client/server? What kind of model do you recommend?
For player versus player this is the way to go. I do not know the details about Mage, but it is open source.
We thought about a scripting language approach
From my own experience you need to use scripting as much as possible if you want to support large numbers of cards and want to make it easy for the community to help.
But it is not feasible to put everything in script, for instance single card mechanics. Forge is a nice example of this approach.
As of this reply, our repository trunk supports exactly 3000 cards, so we're always adding new ones.
Nice! :)
Your exception is not something we've ever seen before.
I will try it out on another pc. Could be related to how the network adapters are configured.
User avatar
ubeefx
DEVELOPER
 
Posts: 748
Joined: 23 Nov 2010, 19:16
Has thanked: 34 times
Been thanked: 249 times

Re: jMagic 0.7.1

Postby jmagicdev » 13 Jul 2011, 11:42

ubeefx wrote:So I guess the code base already had several iterations.
Sections of the code base have had several iterations, but much of it has surprisingly remained intact through most of jMagic's history. We've never completely rewritten the code from scratch. We have a few things we might to differently if we were to do that, but for the most part we are extremely happy with the way the rules engine has turned out. As a point of reference, Magic 2012 is completely written (but we are still checking it for mistakes through playtesting), and only two cards required engine updates; no cards required any hackery or engine limitation workarounds. (Not even Scrambleverse!)

I will try it out on another pc. Could be related to how the network adapters are configured.
Definitely let us know how that goes. We'd still be interested to see the log from that first machine though.
jmagicdev
DEVELOPER
 
Posts: 22
Joined: 11 Jul 2011, 23:39
Has thanked: 0 time
Been thanked: 6 times


Return to jMagic

Who is online

Users browsing this forum: No registered users and 9 guests


Who is online

In total there are 9 users online :: 0 registered, 0 hidden and 9 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 9 guests

Login Form