GithubHelp home page GithubHelp logo

philsa / trove Goto Github PK

View Code? Open in Web Editor NEW
246.0 13.0 16.0 3.58 MB

Collection of tools for Unity DOTS. Including Utility AI, Tweens, attributes and buffs/modifiers, etc...

License: MIT License

ShaderLab 12.04% HLSL 2.09% C# 85.87%
ai attributes dots ecs tweens unity utility iaus

trove's Introduction

Trove is a collection of packages for Unity DOTS.

All of these packages care about:

  • Performance
  • Customizability
  • Netcode compatibility
  • Keeping things as simple and not over-engineered as possible
  • Having as little impact on your architecture as possible
  • Making you do things manually so you are fully aware of everything that happens

Installing the packages

These packages can be installed into your Unity project through the package manager:

  • In the Unity package manager window, click the + button in the top right.
  • Choose Add package from git URL.
  • Enter the URL(s) of the package(s) below and press Add. This should import the package(s). For example, enter https://github.com/PhilSA/Trove.git?path=/com.trove.attributes there to import the Attributes package.

Targeting a specific version

Versions are released as branches on the repository. For example, the v0.1.0 branch represent the 0.1.0 version of the package. In order to import a specific version of the packages, add the version branch (for example: #v0.1.0) at the end of the git url.

So for importing the 0.1.0 version of the Attributes package, you'd enter https://github.com/PhilSA/Trove.git?path=/com.trove.attributes#v0.1.0 as the git url.

Dependencies

Some of the packages require you to install the dependencies manually. When this is the case, the "Install URLs" section of the table below will let you know.

User Content

Moreover, be sure to check the "Samples" tab of each package's page in the Package Manager. Several of them come with "User Content" that must be installed in your project before you can use the package.


Package list

Package statuses:

  • ✅: Slightly experimental
  • ⚠️: Experimental
  • ⛔: Too experimental
Name Install URLs Description Status
Common https://github.com/PhilSA/Trove.git?path=/com.trove.common Trove Common provides various tools and utilities that may be used by other packages or projects.
(Documentation)
Attributes https://github.com/PhilSA/Trove.git?path=/com.trove.attributes Trove Attributes allows you to define identifiable "numbers" (attributes) on entities, and add/remove "rules" (modifiers) that affect the evaluation of these numbers' values. This tool can be used to effortlessly setup gameplay mechanics such as RPG character/equipment attributes, buffs, effects, roguelike-style stackable powerups and synergies, etc...
(Documentation)
⚠️
Utility AI First, install:
https://github.com/PhilSA/Trove.git?path=/com.trove.common

Then, install:
https://github.com/PhilSA/Trove.git?path=/com.trove.utilityai
Trove Utility AI provides a flexible and efficient decision-making system for ECS.
(Documentation)
⚠️
Tweens First, install:
https://github.com/PhilSA/Trove.git?path=/com.trove.common

Then, install:
https://github.com/PhilSA/Trove.git?path=/com.trove.tweens
Trove Tweens is a simple tweening tool that allows you to create your own highly-efficient custom tweens.
(Documentation)
⚠️
Polymorphic Structs https://github.com/PhilSA/Trove.git?path=/com.trove.polymorphicstructs Trove Polymorphic Structs provides a codegen tool for polymorphic behaviour in burstable unmanaged code. They can be used to solve a variety of problems that aren't so obvious to solve in ECS, such as: ordered events where order can't be determined by type, state machines without structural changes or large jobs overhead, etc...
(Documentation)
⚠️

trove's People

Contributors

dnorambu avatar philsa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trove's Issues

UtilityAi Restaurant Example Has Issues

Hello, thanks for the great work, im trying to run the example, but seemed to be getting errors, could you help out

InvalidOperationException: The previously scheduled job RestaurantSystem:RestaurantSystemJob writes to the ComponentTypeHandle RestaurantSystemJob.JobData.__TypeHandle.__RestaurantState_RW_ComponentTypeHandle. You must call JobHandle.Complete() on the job RestaurantSystem:RestaurantSystemJob, before you can read from the ComponentTypeHandle safely.
Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckReadAndThrowNoEarlyOut (Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle) (at <347e9cb990044b19a415d80dc9c7be25>:0)
Unity.Entities.ComponentSafetyHandles.CompleteWriteDependency (Unity.Entities.TypeIndex typeIndex) (at ./Library/PackageCache/com.unity.entities/Unity.Entities/ComponentSafetyHandles.cs:285)
Unity.Entities.EntityQueryImpl.GetSingleton[T] () (at ./Library/PackageCache/com.unity.entities/Unity.Entities/Iterators/EntityQuery.cs:1439)
Unity.Entities.EntityQuery.GetSingleton[T] () (at ./Library/PackageCache/com.unity.entities/Unity.Entities/Iterators/EntityQuery.cs:2737)
RestaurantGameUISystem.OnUpdate () (at Assets/Standard Assets/_Restaurant/Scripts/RestaurantGameUISystem.cs:19)
Unity.Entities.SystemBase.Update () (at ./Library/PackageCache/com.unity.entities/Unity.Entities/SystemBase.cs:418)
Unity.Entities.ComponentSystemGroup.UpdateAllSystems () (at ./Library/PackageCache/com.unity.entities/Unity.Entities/ComponentSystemGroup.cs:723)
UnityEngine.Debug:LogException(Exception)
Unity.Debug:LogException(Exception) (at ./Library/PackageCache/com.unity.entities/Unity.Entities/Stubs/Unity/Debug.cs:17)
Unity.Entities.ComponentSystemGroup:UpdateAllSystems() (at ./Library/PackageCache/com.unity.entities/Unity.Entities/ComponentSystemGroup.cs:728)
Unity.Entities.ComponentSystemGroup:OnUpdate() (at ./Library/PackageCache/com.unity.entities/Unity.Entities/ComponentSystemGroup.cs:681)
Unity.Entities.SystemBase:Update() (at ./Library/PackageCache/com.unity.entities/Unity.Entities/SystemBase.cs:418)
Unity.Entities.DummyDelegateWrapper:TriggerUpdate() (at ./Library/PackageCache/com.unity.entities/Unity.Entities/ScriptBehaviourUpdateOrder.cs:523)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.