Find a file
2026-01-06 17:25:34 -05:00
.forgejo fix: replace secret with var 2026-01-06 15:03:39 -05:00
src feat: Move player stats and skill progress display from active HUD to the paused menu, removing minor HUD elements and consolidating evolution details into the stats display. 2026-01-06 17:25:34 -05:00
.gitignore feat: Implement pixel-art rendering with new level loading, tile maps, palettes, and pixel fonts, alongside a game over screen. 2026-01-06 17:21:15 -05:00
docker-compose.yml feat: add poc 2026-01-06 14:02:09 -05:00
Dockerfile feat: add poc 2026-01-06 14:02:09 -05:00
eslint.config.js feat: add poc 2026-01-06 14:02:09 -05:00
index.html feat: Implement pixel-art rendering with new level loading, tile maps, palettes, and pixel fonts, alongside a game over screen. 2026-01-06 17:21:15 -05:00
package-lock.json feat: add poc 2026-01-06 14:02:09 -05:00
package.json feat: add poc 2026-01-06 14:02:09 -05:00
portainer.yml chore: update version to 0.1.1 [skip ci] 2026-01-06 20:09:05 +00:00
README.md feat: add poc 2026-01-06 14:02:09 -05:00
Slime.md feat: initial commit 2026-01-06 13:55:21 -05:00
VERSION chore: update version to 0.1.1 [skip ci] 2026-01-06 20:09:05 +00:00
vite.config.js feat: add poc 2026-01-06 14:02:09 -05:00

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:

    npm install
    
  2. Run the development server:

    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.