Awesome
BovineLabs Core
BovineLabs Core is a library that provides numerous extensions, new containers, and tools for building games with DOTS (Data-Oriented Technology Stack).
For support and discussions, join Discord.
Installation
Stick to the version that matches your entities version. The incremental versions do not have to match. For example, users on Entities 1.0.X stick with Core 1.0.Y.
The latest version of the library is available on GitLab. The project is actively worked on daily in various branches.
Every month or so, a new stable version is pushed to GitHub and OpenUPM.
Once the library is installed, it grants you access to various utilities, custom containers, and high-performance extensions that should not cause any changes to your workflow.
Features
Features I have documented are listed below. This is but a tiny fraction of the features however I'm going to try to start documenting more so this list should hopefully grow.
Feature | Description |
---|---|
Change Filter Tracking | Allows you to track how frequently a component triggers a change filter and warns you if it is happening too frequently.. |
DynamicHashMap | Adds HashMap support to entities. |
EntityCommands | Provides a shared interface between EntityManager, EntityCommandBuffer, EntityCommandBuffer.ParallelWriter and IBaker. |
Entropy | Entropy provides an easy way to manage generating Random values in jobs. |
Jobs | Custom jobs (IJobParallelForDeferBatch, IJobHashMapVisitKeyValue). |
Functions | Functions provide an easy way to add support for extending jobs to other developers or modders. |
K | K is an Enum or LayerMask alternative that allows you to define your key-value pairs in setting files. |
Object Management | Automatic ID, category and group management. |
Singleton Collection | Easily set up a Many-To-One container singleton with minimal boilerplate and syncless job support. |
Spatial | Spatial provides a very fast to generate spatial hashmap. |
States | Provides states on entities by mapping a bit field to components automatically. |
SubScenes | Provides convenient features for SubScene loading. |
Sample
A default project is setup with all features enabled via the package manager samples.
Toggle Features
The Core library strives to maintain the status quo in your project by default. However, there is a collection of powerful features that can be manually enabled, which may require changes to your workflow. To enable these features, navigate to the BovineLabs -> Toggle Features
menu.