XMage — Magic, Another Game Engine

Build Status Latest release Commits since latest release

XMage is a full rules-enforcement engine for playing Magic against other players or computer AI, online or on your own server. It supports over 32 000 unique cards and more than 91 000 reprints across official sets, plus custom sets like Star Wars.

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 — including fully offline, with no internet connection required.

XMage community and resources: * Official XMage support and feature request on github; * Reddit XMage group; * Reddit XMage discord channel; * Latest news; * Latest releases; * Project documentation.

Official public server with released version: * https://xmage.today/

Other servers and status: * https://xmage.today/servers/ (temporarily out of service)

Features

Bug report / feature request

The best way to report bug or feature request is github's issues page.

Installation / running

Wiki page contains detailed information about private or public server setup, developer onboarding and other useful things

Troubleshooting / FAQ

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 open launcher; * MacOS: can't run on M1/M2; * 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;

Performance tweaks

The main way to increase performance or fix micro-freezes -- increase max memory usage by special java flag: 1. Run launcher -> Settings -> Java tab -> Client java options text field; 2. Add or change existing flag to -Xmx3000m or another value based on your free memory stats (recommended settings: 2000m for 1080p desktop, 3000m for 4k desktop). It's useless to give 5+ GB memory; 3. If you play many AI games then it's recommended to change Server java options with same value too;

Development

Full project documentation and instructions for developers can be found in wiki pages.

First steps for XMage's developers: * Setting up your Development Environment * Development Testing Tools * Development Workflow * Development HOWTO Guides

Torch icons created by Freepik - Flaticon