Documentation ¶
Overview ¶
Package arche is an archetype-based Entity Component System for Go.
See the sub-packages:
- Core API -- github.com/mlange-42/arche/ecs
- Generic queries -- github.com/mlange-42/arche/generic
- Advanced filters -- github.com/mlange-42/arche/filter
- Event listeners -- github.com/mlange-42/arche/listener
- Usage examples -- github.com/mlange-42/arche/_examples
🕮 Also read Arche's User Guide!
Directories ¶
Path | Synopsis |
---|---|
Package examples contains examples for Arche.
|
Package examples contains examples for Arche. |
base
Demonstrates the core API that uses component IDs for access.
|
Demonstrates the core API that uses component IDs for access. |
batch_ops
Demonstrates batch-creation, manipulation and removal of entities.
|
Demonstrates batch-creation, manipulation and removal of entities. |
events
Demonstrates the use of a EntityEvent through listeners.
|
Demonstrates the use of a EntityEvent through listeners. |
filter
Demonstrates the logic filter API, which provides additional query flexibility on top of the core API.
|
Demonstrates the logic filter API, which provides additional query flexibility on top of the core API. |
generic
Demonstrates the generic API, which provides type-safety and convenience over the ID-based core API.
|
Demonstrates the generic API, which provides type-safety and convenience over the ID-based core API. |
locked_world
Demonstrates how to create, remove or alter entities, despite the World is locked during query iteration.
|
Demonstrates how to create, remove or alter entities, despite the World is locked during query iteration. |
no_ecs
Demonstrates that ECS can be mixed with non-ECS data structures, as long as they store entities.
|
Demonstrates that ECS can be mixed with non-ECS data structures, as long as they store entities. |
no_ecs_generic
Demonstrates that ECS can be mixed with non-ECS data structures, as long as they store entities.
|
Demonstrates that ECS can be mixed with non-ECS data structures, as long as they store entities. |
parallel
Demonstrates outer parallelism by running multiple simulations concurrently.
|
Demonstrates outer parallelism by running multiple simulations concurrently. |
random_access
Demonstrates generic access to arbitrary/random entities.
|
Demonstrates generic access to arbitrary/random entities. |
random_sampling
Demonstrates random sampling of a fixed number of entities from a query using Query.EntityAt().
|
Demonstrates random sampling of a fixed number of entities from a query using Query.EntityAt(). |
readme
The minimal example from the README using generic access.
|
The minimal example from the README using generic access. |
relations
Demonstrates entity relations
|
Demonstrates entity relations |
resources
Demonstrates the use of "Resources".
|
Demonstrates the use of "Resources". |
systems
Demonstrates how to implement systems.
|
Demonstrates how to implement systems. |
world_stats
Demonstrates using world and archetype statistics.
|
Demonstrates using world and archetype statistics. |
benchmark
module
|
|
Package ecs contains Arche's core API.
|
Package ecs contains Arche's core API. |
event
Package event contains a mask type and bit switches for listener subscriptions.
|
Package event contains a mask type and bit switches for listener subscriptions. |
stats
Package stats provides the structs returned by ecs.World.Stats().
|
Package stats provides the structs returned by ecs.World.Stats(). |
Package filter contains Arche's advanced logic filtering API.
|
Package filter contains Arche's advanced logic filtering API. |
Package generic contains Arche's generic API.
|
Package generic contains Arche's generic API. |
_generate
Package generate is for generating the boilerplate code required for the generic API.
|
Package generate is for generating the boilerplate code required for the generic API. |
Package listener provides ecs.Listener implementations (see github.com/mlange-42/arche/ecs.Listener).
|
Package listener provides ecs.Listener implementations (see github.com/mlange-42/arche/ecs.Listener). |
Click to show internal directories.
Click to hide internal directories.