A single-player real-time strategy game built with Three.js featuring a techno-magical post-apocalyptic setting where you lead a specialized expedition team through the dangerous wasteland to discover ancient artifacts.
Note on sound at http://ieve.me/manifest ... it actually works in the game, although I should compress these WAV files into something not so huge. But I lost the battle against nginx, who just... will not serve the dang wav files.
In Manifest, you command a small squad of specialized units including a precision Neon Assassin sniper and a resilient Scrap Golem as they navigate through a desolate techno-arcane wasteland. Your mission is to reach and secure ancient beacons while avoiding or confronting hostile forces that guard this forgotten realm.
The game code was 99+% generated by LLM AI's in Mar 2025, mostly Claude 3.7 Sonnet, Claude Code, Gemini Thinking 2.0, and Manus (which I think is just using Claude underneath?) I, the human, integrated the generated code in, complained about bugs, and felt very helpless while I let Claude Code chooch on a 'vibe-specification' (that is, a specification that was also 'vibe coded').
Game was written for the 2025 Vibe Game Jam
- Tactical Combat: Command specialized units with unique abilities like the Neon Assassin's precision sniping
- Dynamic Fog of War: Explore and reveal the mysterious wasteland as you progress
- One single semi-janky but technically working mission: Alright I gotta go to work now...
The game is built with a modern, component-based architecture:
- Entities are just IDs in the game world
- Components are pure data structures attached to entities (position, health, faction, etc.)
- Systems contain game logic that operates on entities with specific components
/src
/core # Core game infrastructure
GameController.js # Central game orchestration
GameLoop.js # Main game loop
GameState.js # State management
SaveSystem.js # Persistence with IndexedDB
SceneManager.js # Three.js scene management
EntityManager.js # Entity management for ECS
ObjectiveSystem.js # Mission objectives tracking
ProductionSystem.js # Unit production
ResourceSystem.js # Resource gathering
AudioSystem.js # Sound and music
/entities # Game entities and ECS implementation
/components # Data components (Position, Health, Faction, etc.)
/systems # Logic systems (Movement, Combat, AI, Animation, etc.)
/definitions # Entity blueprints
/ui # User interface elements
HUD.js # In-game heads-up display
MenuSystem.js # Game menus and UI
/scenarios # Mission scenarios
BaseScenario.js # Base scenario class
TutorialScenario.js # Tutorial mission
ExplorationScenario.js # Main exploration scenario
/utils # Utility functions and helpers
InputManager.js # Player input handling with Command Pattern
pathfinding.js # A* pathfinding implementation
TerrainFactory.js # Procedural terrain generation
MapGenerator.js # Procedural map generation
/loaders # Asset loading utilities
ModelLoader.js # 3D model and texture loading
- Modern web browser with WebGL support
- Node.js (v14+) for development
- npm or yarn for package management
# Clone the repository
git clone <repository-url>
cd manifest-game
# Install dependencies
npm install
# Start development server
npm run dev
- Left-click: Select units
- Right-click: Move selected units
- Right-click on enemy: Attack target
- Shift + Left-click: Add to selection
- 1-4 keys: Use unit abilities
- S key: Stop selected units
- Arrow keys: Move camera
- Mouse wheel: Zoom camera
- Middle mouse & drag: Pan camera
- ESC: Clear selection