https://github.com/tnze/go-ecs
An archetype-based ECS framework implement in Golang
https://github.com/tnze/go-ecs
ecs entity-component-system flecs
Last synced: 5 months ago
JSON representation
An archetype-based ECS framework implement in Golang
- Host: GitHub
- URL: https://github.com/tnze/go-ecs
- Owner: Tnze
- License: mit
- Created: 2023-04-08T06:02:09.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-23T10:09:02.000Z (over 1 year ago)
- Last Synced: 2025-08-09T21:39:39.706Z (11 months ago)
- Topics: ecs, entity-component-system, flecs
- Language: Go
- Homepage:
- Size: 83 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-ecs
This is an archetype-based ECS framework implement in Golang.
Highly inspired by [flex](https://github.com/SanderMertens/flecs).
## Performance
The goal is to maximize performance, no `reflect` everywhere, but also using a little to make life better.
## Project Status
We are waiting Golang support "Generic Methods".
See:
> 一些个人看法:当前Golang语言的开发谷歌是众所周知的双标,社区提案基本很少通过,内部提的proposal却可以一路绿灯(甚至是那些社区提出过无数遍被否决过的)。
> 所以我认为Go短期内不可能支持泛型方法,除非某个谷歌内部员工写代码时需要用到这个特性,我们可以拭目以待。😁😁😁
## Project Structure
The ecs implement is in `/internal/core`, exports its api on `/api.go`.
It's because I want to keep private fields private, but allow `/reflect` package can access them.