XMage allows you to play Magic against one or more online players or computer opponents. It includes full rules enforcement for over 28 000 unique cards and more than 73 000 reprints from different editions. You can also find custom sets like Star Wars. All regular sets have nearly all implemented cards.
It supports single matches and tournaments with dozens of game modes like duel, multiplayer, standard, modern, commander, pauper, oathbreaker, historic, freeform, richman and much more.
Local server supports a special test mode for testing combos and other game situations with pre-defined conditions.
There are public servers where you can play XMage against other players. You can also host your own server to play against the AI and/or your friends.
XMage community and resources:
- Official XMage support and feature request on github;
- Official XMage forum (outdated);
- Reddit XMage group;
- Reddit XMage discord channel;
- Latest changes;
- Latest news;
- Latest releases;
- Project documentation.
Servers status:
- http://xmage.today/servers/ (temporarily out of service)
Beta server with un-released or under development features:
- http://xmage.today/ (release version)
- Multiplatform app: Windows, Linux, MacOS;
- Deck editor (support multiple deck formats and deck sources);
- Two player duel or a multiplayer free-for-all game with up to 10 players;
- Computer AI opponents;
- Players rating system (Glicko);
- Supports special formats like Commander (up to 10 players), Oathbreaker, Cube, Tiny Leaders, Super Standard, Historic Standard and more;
- Single matches or tournaments supported (elimination or swiss type handling), which can be played with up to 16 players:
- Booster (also Cube) draft tournaments (4-16)
- Sealed (also from Cube) tournaments (2-16)
The best way to report bug or feature request is github's issues page.
- Download latest XMage launcher and app files and un-pack it to any folder like
D:\games\xmage
; - You need to have Java version 8 or later to run launcher.
Wiki page contains detail information about private or public server setup.
The XMage server locates by default the configuration file from the current working directory to the relative path config/config.xml
(config\config.xml
in Windows). To change this location, start the server with the property xmage.config.path
set
to the desired location, for example -Dxmage.config.path=config/otherconfig.xml
. The option can be set from the
XMageLauncher in Settings > Java > Server java options
.
Github issues page contain popular problems and fixes:
- Any: program freezes on startup (white/blue/black screen);
- Any: can't download images or it stops after some time;
- Any: can't run client, could not open ...jvm.cfg;
- Any: no texts or small buttons in launcher;
- Windows: ugly cards, buttons or other GUI drawing artifacts;
- Windows: pixilated images, icons and texts;
- MacOS: can't run on M1/M2;
- MacOS: can't open launcher;
- MacOS: client freezes in GUI (on connect dialog, on new match);
- Linux: run on non-standard OS or hardware like Raspberry Pi;
- Linux: ugly GUI and drawing artifacts;
If you have a good GPU, it's very likely you'll be able to increase performance by a lot through extra Java flags.
XMage runs on JRE 8, so this link should give you the available flags.
- Launch XMage
- In the menu bar from the launcher, click on "Settings", which will open up the Settings Window
- Go to the "Java" tab
- You can pass extra flags by editing the "Client java options" text field
More info about OpenGL:
-Dsun.java2d.opengl=true
Possible problems:
- Caveat: There's a bug with the file chooser when OpenGL is enabled (you use the file chooser when you, for instance, try to load a deck from disk). The suggested workaround will make the game crash, so it's not an option.
- Workaround: When using i3, you're able to work around the bug by toggling the "floating" capabilities of the window and forcing it to re-render.
More info about XRender:
-Dsun.java2d.xrender=true
This is not guaranteed to yield improvements, but it depends on your use-case. If you have a lot of RAM to spare, you can increase the initial heap size for good measure. More details about memory settings:
-Xmx2G
Full project documentation and instructions for developers can be found in wiki pages.
First steps for Xmage's developers: