Skip to content

csprance/gecs

Repository files navigation

GECS

Entity Component System for Godot 4.x

Build scalable, maintainable games with clean separation of data and logic. GECS integrates seamlessly with Godot's node system while providing powerful query-based entity filtering.

# Create entities with components
var player = Entity.new()
player.add_component(C_Health.new(100))
player.add_component(C_Velocity.new(Vector2(5, 0)))

# Systems process entities with specific components
class_name MovementSystem extends System

func query(): 
    return q.with_all([C_Velocity, C_Transform])

func process(entity: Entity, delta: float):
    var velocity = entity.get_component(C_Velocity)
    var transform = entity.get_component(C_Transform)
    transform.position += velocity.direction * delta

⚡ Quick Start

  1. Install: Download to addons/gecs/ and enable in Project Settings
  2. Follow Guide: Get your first ECS project running in 5 minutes →
  3. Learn More: Understand core ECS concepts →

✨ Key Features

  • 🎯 Godot Integration - Works with nodes, scenes, and editor
  • 🚀 High Performance - Optimized queries with automatic caching
  • 🔧 Flexible Queries - Find entities by components, relationships, or properties
  • 📦 Editor Support - Visual component editing and scene integration
  • 🎮 Battle Tested - Used in games being actively developed

📚 Complete Documentation

All documentation is located in the addon folder:

Complete Documentation Index

Quick Navigation

Advanced Features

🎮 Example Games

🌟 Community

📄 License

MIT - See LICENSE for details.


GECS is provided as-is. If it breaks, you get to keep both pieces. 😄

Star History Chart

About

Godot Entity Component System - GECS

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •