Skip to content

Latest commit

 

History

99 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PTCG Professor

A Rust-based Pokémon Trading Card Game (TCG) engine and toolkit for simulation and AI development.

The eventual goal of this project is to create a machine learning model that can interact with the simulator and learn to play the Pokémon Trading Card Game.


Overview

Professor is a Rust workspace containing four crates that work together to provide a complete Pokémon TCG simulation environment:

  • professor-core - Core data structures and types
  • professor-data - Data processing utilities and CLI tools
  • professor-engine - Game engine and simulation
  • professor-client-gui - GUI client for playing and testing the game

Crates

professor-core

Core data structures for cards, attacks, effects, and status conditions. Provides Card, Pokemon, Energy, Trainer types, CardDB for card database management, and StatusFlags for efficient status tracking.

professor-data

Data processing utilities for converting JSON card data to optimized binary format. Includes a CLI tool (professor-data-cli) for data management, validation, and testing.

professor-engine

Game engine that simulates Pokémon TCG matches. Features step-based game loop, PlayerAgent trait for AI integration, observable game state, action validation, mulligan handling, and efficient state differentials.

professor-client-gui

GUI client built with egui/eframe for playing and testing Pokémon TCG matches. Provides visual interface for interacting with the game engine, including setup windows, game board rendering, and card interactions.


Requirements

  • Rust toolchain: 1.85.0 or later (required for Rust edition 2024)
  • Operating System: Windows, macOS, or Linux

Quick Start

  1. Clone the repository:
git clone <repository-url>
cd professor
  1. Initialize submodules:
git submodule update --init --recursive
  1. Build all crates:
cargo build --workspace

Building the Project

Build All Crates

cargo build --workspace

Run Client GUI

cargo run --package professor-client-gui

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages