MCPcopy Index your code
hub / github.com/Card-Forge/forge

github.com/Card-Forge/forge @forge-2.0.13

Chat with this repo
repository ↗ · DeepWiki ↗ · release forge-2.0.13 ↗ · + Follow
31,612 symbols 159,075 edges 2,568 files 4,296 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

⚔️ Forge: The Magic: The Gathering Rules Engine

Join the Forge community on Discord!

Test build


✨ Introduction

Forge is a dynamic and open-source Rules Engine tailored for Magic: The Gathering enthusiasts. Developed by a community of passionate programmers, Forge allows players to explore the rich universe of MTG through a flexible, engaging platform.

Note: Forge operates independently and is not affiliated with Wizards of the Coast.


🌟 Key Features

  • 🌐 Cross-Platform Support: Play on Windows, Mac, Linux, and Android.
  • 🔧 Extensible Architecture: Built in Java, Forge encourages developers to contribute by adding features and cards.
  • 🎮 Versatile Gameplay: Dive into single-player modes or challenge opponents online!

🛠️ Installation Guide

📥 Desktop Installation

  1. Latest Releases: Download the latest version here.
  2. Snapshot Build: For the latest development version, grab the forge-gui-desktop tarball from our Snapshot Build.
  3. Tip: Extract to a new folder to prevent version conflicts.
  4. User Data Management: Previous players’ data is preserved during upgrades.
  5. Java Requirement: Ensure you have Java 17 or later installed.

📱 Android Installation

  • (Note: Android 11 is the minimum requirement with at least 6GB RAM to run smoothly. You need to enable "Install unknown apps" for Forge to initialize and update itself)
  • Download the APK from the Snapshot Build. On the first launch, Forge will automatically download all necessary assets.

🎮 Modes of Play

Forge offers various exciting gameplay options:

🌍 Adventure Mode

Embark on a thrilling single-player journey where you can: - Explore an overworld map. - Challenge diverse AI opponents. - Collect cards and items to boost your abilities.

Shandalar World

🔍 Quest Modes

Engage in focused gameplay without the overworld exploration—perfect for quick sessions!

Quest Duels

🤖 AI Formats

Test your skills against AI in multiple formats: - Sealed - Draft - Commander - Cube

For comprehensive gameplay instructions, visit our User Guide.

Sealed


💬 Support & Community

Need help? Join our vibrant Discord community! - 📜 Read the #rules and explore the FAQ. - ❓ Ask your questions in the #help channel for assistance.


🤝 Contributing to Forge

We love community contributions! Interested in helping? Check out our Contributing Guidelines for details on how to get started.


ℹ️ About Forge

Forge aims to deliver an immersive and customizable Magic: The Gathering experience for fans around the world.

📊 Repository Statistics

Metric Count
⭐ Stars: GitHub stars
🍴 Forks: GitHub forks
👥 Contributors: GitHub contributors

📄 License: GPL-3.0

    <a href="#top">
        <img src="https://img.shields.io/badge/Back%20to%20Top-000000?style=for-the-badge&logo=github&logoColor=white" alt="Back to Top">
    </a>

Extension points exported contracts — how you extend this code

GameCommand (Interface)
Command interface. @author Forge @version $Id$ [79 implementers]
forge-game/src/main/java/forge/GameCommand.java
SaveFileContent (Interface)
Interface to save the content of the save game file [37 implementers]
forge-gui-mobile/src/forge/adventure/util/SaveFileContent.java
InventoryItemFromSet (Interface)
Interface to define a player's inventory may hold. Should include CardPrinted, Booster, Pets, Plants... etc [14 implementers]
forge-core/src/main/java/forge/item/InventoryItemFromSet.java
ModelBinder (Interface)
Binds any GUI component to a Forge preference key [26 implementers]
forge-gui/src/main/java/forge/model/ModelBinder.java
CardPanelMouseListener (Interface)
CardPanelMouseListener interface. @author Forge @version $Id: CardPanelMouseListener.java 24769 2014-02-09 13:56 [7 implementers]
forge-gui-desktop/src/main/java/forge/view/arcane/util/CardPanelMouseListener.java
Inference (Interface)
(no doc) [2 implementers]
forge-lda/src/forge/lda/lda/inference/Inference.java
IHasSVars (Interface)
(no doc) [7 implementers]
forge-game/src/main/java/forge/game/IHasSVars.java
IAfterMatch (Interface)
(no doc) [12 implementers]
forge-gui-mobile/src/forge/adventure/stage/IAfterMatch.java

Core symbols most depended-on inside this repo

add
called by 7361
forge-core/src/main/java/forge/util/storage/IStorage.java
get
called by 5488
forge-core/src/main/java/forge/util/storage/IStorage.java
append
called by 5207
forge-core/src/main/java/forge/util/DebugTrace.java
getMessage
called by 3229
forge-gui-mobile/src/forge/screens/match/views/VPrompt.java
isEmpty
called by 3125
forge-core/src/main/java/forge/card/CardTypeView.java
size
called by 2676
forge-core/src/main/java/forge/util/storage/IStorage.java
contains
called by 2013
forge-core/src/main/java/forge/util/storage/IStorage.java
hasParam
called by 1843
forge-game/src/main/java/forge/game/trigger/WrappedAbility.java

Shape

Method 28,120
Class 2,939
Enum 294
Interface 135
Function 124

Languages

Java100%
Python1%
TypeScript1%

Modules by API surface

forge-game/src/main/java/forge/game/card/Card.java910 symbols
forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java445 symbols
forge-game/src/main/java/forge/game/player/Player.java406 symbols
forge-game/src/main/java/forge/game/spellability/SpellAbility.java311 symbols
forge-game/src/main/java/forge/game/card/CardView.java278 symbols
forge-gui-mobile/src/forge/deck/FDeckEditor.java242 symbols
forge-gui/src/main/java/forge/player/PlayerControllerHuman.java211 symbols
forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java142 symbols
forge-game/src/main/java/forge/game/Game.java141 symbols
forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java130 symbols
forge-game/src/main/java/forge/game/player/PlayerController.java126 symbols
forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java121 symbols

For agents

$ claude mcp add forge \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact