132 lines
4.4 KiB
Markdown
132 lines
4.4 KiB
Markdown
# Slime Genesis - ECS RPG PoC
|
|
|
|
A complete proof of concept for **Slime Genesis: The Awakening of the Entity** built with vanilla JavaScript using an Entity Component System (ECS) architecture.
|
|
|
|
## Quick Start
|
|
|
|
1. **Install dependencies:**
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. **Run the development server:**
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
3. **Open your browser** to the URL shown (usually `http://localhost:5173`)
|
|
|
|
## Controls
|
|
|
|
- **WASD** or **Arrow Keys**: Move your slime
|
|
- **Mouse**: Aim/face direction
|
|
- **Left Click** or **Space**: Attack
|
|
- **Shift**: Toggle stealth mode
|
|
- **1-9**: Activate skills (when you have them)
|
|
|
|
## Features
|
|
|
|
### Core Systems
|
|
- ✅ **ECS Architecture**: Entity Component System for flexible game design
|
|
- ✅ **Real-time Combat**: Fast-paced action combat with form-specific styles
|
|
- ✅ **Evolution System**: Three paths (Human, Beast, Slime) that change based on absorption
|
|
- ✅ **Skill Absorption**: Defeat creatures to gain their abilities
|
|
- ✅ **Stealth System**: Form-specific stealth mechanics (Social, Hunting, Structural)
|
|
- ✅ **RPG Systems**: Stats, leveling, XP, inventory, equipment
|
|
- ✅ **AI System**: Intelligent creature behaviors (wander, chase, combat, flee)
|
|
- ✅ **Projectile System**: Skills can create projectiles (Water Gun, etc.)
|
|
|
|
### Graphics & Polish
|
|
- ✅ **Animated Slime**: Smooth morphing blob with jiggle physics
|
|
- ✅ **Combat Effects**: Damage numbers, attack indicators, particle effects
|
|
- ✅ **Absorption Visuals**: Swirling particles and color transitions
|
|
- ✅ **Stealth Indicators**: Visibility meters and detection warnings
|
|
- ✅ **Polished UI**: Health bars, XP bars, skill hotbar, stat displays
|
|
|
|
### Skills
|
|
- **Water Gun**: Shoot a jet of water at enemies
|
|
- **Fire Breath**: Breathe fire in a cone
|
|
- **Pounce**: Leap forward and damage enemies
|
|
- **Stealth Mode**: Enter stealth mode (form-specific)
|
|
|
|
## Architecture
|
|
|
|
This game uses a pure ECS (Entity Component System) architecture:
|
|
|
|
- **Entities**: Game objects (player, creatures, projectiles)
|
|
- **Components**: Data containers (Position, Health, Stats, Evolution, etc.)
|
|
- **Systems**: Logic processors (RenderSystem, CombatSystem, AbsorptionSystem, etc.)
|
|
|
|
This architecture makes it easy to:
|
|
- Add new skills and abilities
|
|
- Create mutations and combinations
|
|
- Extend creature behaviors
|
|
- Add new game mechanics
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/
|
|
├── core/ # ECS framework
|
|
│ ├── Engine.js # Main game loop
|
|
│ ├── Entity.js # Entity manager
|
|
│ ├── Component.js # Base component
|
|
│ └── System.js # Base system
|
|
├── components/ # All game components
|
|
│ ├── Position.js
|
|
│ ├── Health.js
|
|
│ ├── Stats.js
|
|
│ ├── Evolution.js
|
|
│ └── ...
|
|
├── systems/ # All game systems
|
|
│ ├── RenderSystem.js
|
|
│ ├── CombatSystem.js
|
|
│ ├── AbsorptionSystem.js
|
|
│ └── ...
|
|
├── skills/ # Skill system
|
|
│ ├── Skill.js
|
|
│ ├── SkillRegistry.js
|
|
│ └── skills/ # Individual skills
|
|
├── items/ # Item system
|
|
│ ├── Item.js
|
|
│ └── ItemRegistry.js
|
|
├── world/ # World management
|
|
│ └── World.js
|
|
└── main.js # Entry point
|
|
```
|
|
|
|
## Gameplay Loop
|
|
|
|
1. **Explore**: Move around the cave, discover creatures
|
|
2. **Fight**: Engage in real-time combat with creatures
|
|
3. **Absorb**: Defeat creatures to gain evolution points and skills
|
|
4. **Evolve**: Your form changes based on what you absorb
|
|
5. **Level Up**: Gain XP, increase stats, unlock new possibilities
|
|
6. **Stealth**: Use form-specific stealth to avoid or ambush enemies
|
|
|
|
## Evolution Paths
|
|
|
|
- **Human Path**: Absorb humanoids to gain human traits, access to social areas
|
|
- **Beast Path**: Absorb beasts to become a predator, gain physical power
|
|
- **Slime Path**: Maintain your original form, gain unique abilities
|
|
|
|
## Technical Details
|
|
|
|
- **No External Dependencies**: Pure vanilla JavaScript (except Vite for dev server)
|
|
- **Canvas 2D**: High-performance rendering with Canvas API
|
|
- **Modular Design**: Easy to extend and modify
|
|
- **ECS Pattern**: Scalable architecture for complex game mechanics
|
|
|
|
## Future Enhancements
|
|
|
|
- More skills and mutations
|
|
- Multiple areas/zones
|
|
- NPCs with dialogue
|
|
- Quest system
|
|
- Equipment system expansion
|
|
- Save/load functionality
|
|
- More creature types and behaviors
|
|
|
|
## License
|
|
|
|
This is a proof of concept. Use as you see fit for your game development.
|