Equilibrium Protocol is a top-down shooter game built with Phaser 3 and React. Players use a unified weapon system and must survive as long as possible against increasingly difficult waves of enemies.
- Game Engine: Phaser 3.88.2
- UI Framework: React 18.3.1
- Build Tool: Vite 5.3.1
This documentation is organized into modular sections for easier navigation and maintenance:
- Architecture - System architecture and project structure
- Game Entities - Player, enemies, and other game objects
- Game Mechanics - Core gameplay systems and interactions
- Scene Transitions - Scene flow and transition screens
- UI Components - User interface elements and their functionality
- Sound System - Audio management and implementation
- XP System - Experience points and leveling mechanics
- Cash System - In-game currency and economy
- Wave Game Mode - Wave-based gameplay implementation
- Mapping System - Map creation and management
- Enemy System - Enemy types, behavior, and spawning
- Chaos System - Chaos meter and related mechanics
- Weapon System - Unified weapon mechanics and upgrades
- Development Guidelines - Coding standards and practices
- Asset Management - Asset handling and requirements
- Troubleshooting - Common issues and solutions
For new developers joining the project, we recommend starting with:
- Architecture to understand the project structure
- Development Guidelines for coding standards
- The specific system documentation relevant to your assigned tasks
- Clone the repository
- Install dependencies:
npm install- Start the development server:
npm run devBuild the game for production:
npm run buildThe production build will be in the dist folder.
This project is configured with GitHub Actions for automatic deployment to itch.io when changes are pushed to the main branch.
- Create an itch.io account at https://itch.io
- Create a new game page on itch.io with project name:
gjg2 - Generate a Butler API key at https://itch.io/user/settings/api-keys
- Add the API key as a GitHub secret named
BUTLER_API_KEYin your repository settings
- When changes are pushed to the
mainbranch, GitHub Actions will:- Build the project
- Deploy to itch.io using Butler
- Channel will be set to
webfor browser-based play - The game will be published to https://fluffymcchicken.itch.io/gjg2
You can also deploy manually using npm scripts:
# Deploy to web channel
npm run deploy
# Deploy to windows-web channel
npm run deploy:win
# Deploy to all channels
npm run deploy:all- Install Butler: https://itch.io/docs/butler/installing.html
- Or use the included
install-butler.batscript on Windows
- Or use the included
- Log in to Butler:
butler loginWhen updating documentation:
- Keep each file focused on a single topic
- Use consistent formatting (headings, code blocks, lists)
- Include practical examples where helpful
- Update the documentation when making code changes
This documentation is maintained by the Fluffy-Swizz Interactive development team.