Home

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.

FeatureDescription
Change Filter TrackingAllows you to track how frequently a component triggers a change filter and warns you if it is happening too frequently..
DynamicHashMapAdds HashMap support to entities.
EntityCommandsProvides a shared interface between EntityManager, EntityCommandBuffer, EntityCommandBuffer.ParallelWriter and IBaker.
EntropyEntropy provides an easy way to manage generating Random values in jobs.
JobsCustom jobs (IJobParallelForDeferBatch, IJobHashMapVisitKeyValue).
FunctionsFunctions provide an easy way to add support for extending jobs to other developers or modders.
KK is an Enum or LayerMask alternative that allows you to define your key-value pairs in setting files.
Object ManagementAutomatic ID, category and group management.
Singleton CollectionEasily set up a Many-To-One container singleton with minimal boilerplate and syncless job support.
SpatialSpatial provides a very fast to generate spatial hashmap.
StatesProvides states on entities by mapping a bit field to components automatically.
SubScenesProvides 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.

Toggle Features