In a logistics game I have been working on there are trucks picking up goods and delivering then. The game needs to calculate their paths in order to simulate their motions. On normal roads the trucks simply follow a determined path as defined by the road lanes, but I needed a different approach when the trucks are driving across an open space such as a big parking lot or when trying to manoeuvre towards a free terminal.
During the development of my game I have created an entity-component-system (ECS). I decided to extract the functionality into a generic library as it might be useful for other (game) developers as well. The library is named ECSOS and is now available on GitHub. ECSOS is a small header-only C++14 library that provides a data-oriented entity-component-system (ECS) based on ordered sets. By default it uses the boost flat_set container, which stores set elements (components) in a cache-friendly contiguous array, although other (custom) containers might be used.