This is an experimental Entity Component System. The goal is to use as much built in Golang features as possible.
An Entity is just a regular struct with some anonymous fields (Components).
A System is a function with pointers to Components as arguments.
The Universe is a container of Systems and Entities. Universe allows Systems and Entities to be added. Universe makes sure that each System works only with Entities that contain the Components defined in System's arguments.
The performance of a Universe depends directly on the number of connections from a System to Entity.
This repo contains a simple example in example directory.
example/runner/main.go is the starting point.