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: https://discord.gg/RTsw6Cxvw3

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.

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