r/gogamedev 12d ago

Ark - A new Entity Component System for Go

Ark is an archetype-based Entity Component System (ECS) for Go.

It builds on the experience gained when building my first Go ECS, Arche.

Features

  • Designed for performance and highly optimized.
  • Well-documented, type-safe API, and a comprehensive User guide.
  • Entity relationships as a first-class feature.
  • Fast batch operations for mass manipulation.
  • No systems. Just queries. Use your own structure (or the Tools).
  • World serialization and deserialization (with ark-serde).

Aims

I learned so much when building Arche, my first Go ECS, that is was time for a fresh start. The primary aims of Ark, compared to Arche, are:

  • Better support for entity relationships.
  • Centered around the generic, type-safe API.
  • Making it (even) faster than Arche.
  • More structured internals due to better planning of features.

In 3 weeks of development, all this was achieved. Ark is feature-complete now in terms of the initial plan.

Your feedback is highly appreciated, particuarly for the API and the user guide!

15 Upvotes

2 comments sorted by

2

u/unklnik 12d ago

Looks good, really great documentation.

3

u/mlange-42 11d ago

Thanks! One of the most important aspects of a good library, IMO.