Skip to content

Tutorials

Welcome to the MAID tutorials section. These hands-on guides walk you through building complete systems and games with MAID.

Getting Started

If you are new to MAID, start with these resources first:

Tutorial Series

Combat System Tutorial

Build a complete combat system from scratch in 5 parts:

Part Topic Description
Part 1: Setup Project Setup Create the project structure and configure dependencies
Part 2: Components Combat Components Build AttackComponent and DefenseComponent
Part 3: System Combat System Create the event-driven combat processor
Part 4: Commands Player Commands Add attack and consider commands
Part 5: Testing Testing Write comprehensive tests for the combat system

What you'll learn:

  • Creating custom components with validation
  • Building event-driven systems
  • Implementing player commands
  • Testing content packs thoroughly

Magic System Tutorial

Learn to build a magic system with spells, mana, and effects:

Tutorial Description
Magic System Complete magic system with spells, mana management, and effects

What you'll learn:

  • Mana resource management
  • Spell definitions and registries
  • Spell targeting and effects
  • Integration with the combat system

Complete Game Tutorial

Understand how to combine multiple systems into a complete game:

Tutorial Description
Complete Game Architecture overview and integration patterns

What you'll learn:

  • Layering content packs
  • System communication patterns
  • Loading world data
  • Best practices for game design

Components

Systems

Commands

Testing

  1. Beginners: Start with the Combat System Tutorial from Part 1
  2. Intermediate: After combat, try the Magic System Tutorial
  3. Advanced: Review the Complete Game Tutorial for architecture patterns

Prerequisites

Before starting these tutorials, ensure you have:

  • Python 3.12 or higher installed
  • Basic familiarity with Python async/await
  • Understanding of object-oriented programming
  • A code editor (VS Code, PyCharm, etc.)

Getting Help

If you get stuck: