Home » Rival – DOTS Character Controller

Rival – DOTS Character Controller

by [email protected]

This is a paid asset, but now you can download Rival – DOTS Character Controller Free.

Detail this asset from Unity Store: Original Link

Rival – DOTS Character Controller v0.1

Download Now

Rival is a DOTS character controller built for extensibility & performance, and made with networking in mind. It comes with a samples project that includes a 3D platformer and an online FPS.




This asset will only work with DOTS projects built with the Entities package. It cannot work with regular Unity projects built without DOTS and ECS.
You must use Unity 2020.3 for DOTS development (not older or newer versions).
DOTS is heavily under construction, and many of the tools & features that one might expect in a game engine are not there yet.
This asset will be in preview for as long as DOTS itself is in preview. Until Rival reaches v1.0, its APIs could change in order to keep up with DOTS advancements.
Support does not cover how to work with DOTS in general, or how to create online games in general.


What is ‘Rival’?


Rival is a DOTS character controller solution built for extensibility & performance. It is not tied to any specific game genre, and can be modified or extended to support almost any character movement feature you could imagine. At its core, it does not deal with input, animation, or cameras, but it does come with samples to demonstrate ways of implementing these. It focuses on solving the difficult character physics & code structure problems, and leaves all the rest in your hands.

It is also made with networking in mind (holds minimal state data, and puts you in full control of the character update loop), but it does not force you to use any particular networking solution.

Rival is compatible with both DOTS physics solutions: unity.physics and havok.physics

[Documentation Website]


[Forum Thread]


Who is it for?


This asset is targeted at experienced programmers who are willing to work with DOTS, and willing to work with a tech stack that is still incomplete & under construction. Before you buy, you must familiarize yourself with what DOTS is, and how ECS programming works. It is completely different from regular Monobehaviour programming in Unity.

It is meant for users who wish to have the full freedom of implementing their own character controller through code, but want to have a strong foundation to start with.

[ECS Manual]


How is it used?


Rival comes with a “StandardCharacters” package that contains plug-n-play FirstPerson and ThirdPerson characters & cameras. You can simply extract those into your project, and start customizing them to your needs.

Alternatively, Rival also has a special editor window that lets you generate all the components & systems required for a completely new custom character controller.

When implementing a character controller, you are essentially in control of telling the character what its velocity and rotation should be at all times. Rival comes with all sorts of pre-made utility functions to help you out with this.





Rival comes with a Samples project that can be installed optionally. The samples include a 3D Platformer game, an Online FPS game, a Stress Test scene, and a Basic playground with vehicles and various physics interactions. An overview of these samples is available on the documentation website.

Some of the features demonstrated in the Samples project were implemented specifically for those samples; they are not necessarily built-into the core Rival systems, but the documentation explains how to implement most of them.

[Samples Overview]


Character Features


Here are some of the core features that Rival supports:

Continuous collision detection
Projection of the character velocity against hits
Snap to the ground (or not)
Support any gravity or character orientation
Support any convex collider shape for the character (Capsule, Box, Cylinder, etc…)
Prevent walking on steep slopes
Receive external forces
Filter out collisions through code
Prevent grounding on certain entities through code
Customize how the velocity gets projected
Step handling
Prevent grounding based on slope change angles
Stand on and be pushed by kinematic rigidbodies (moving platforms)
Stand on, push, and be pushed by dynamic rigidbodies

See the “How-To” page of the documentation, as well as the various samples, for more examples of features that can be implemented in a Rival character

ONLY compatible with DOTS projects built with the Entities package
Compatible with both DOTS physics solutions: unity.physics and havok.physics
This asset is only verified for Unity 2020.3 and you should use that version specifically (this is the recommended Unity version for DOTS development)
Uses Unity.Entities 0.17.0-preview.41
Uses Unity.Physics 0.6.0-preview.3

Related Videos