Skip to content

csprance/gecs

Repository files navigation

GECS

Lightning-fast 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 production games

📚 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