]> git.lizzy.rs Git - nothing.git/blob - docs/opaque.md
Merge pull request #1255 from tsoding/1253
[nothing.git] / docs / opaque.md
1 # Opaque Entities
2
3 See [Opaque data type](https://en.wikipedia.org/wiki/Opaque_data_type) first.
4
5 ## Examples
6
7 - [level](../src/game/level.h)
8 - [player](../src/game/level/player.h)
9 - ...
10
11 ## Conventions
12
13 - One translation unit per entity
14 - Entity stores its state in an opaque forward declared struct
15 - Constructors are `create_<entity-name>` or `create_<entity-name>_from_<resource-name>` (for example `create_level_from_file`)
16 - Single destructor with name `destroy_<entity-name>`
17 - Regular methods are `<entity-name>_<method-suffix>` (for example `player_render`)