Share Our DOTS Showcases

Just for fun, I wanted to see what kind of completely ridiculous weapons DOTS & VFXGraph would allow us to have in games with their powers combined, so I made this little test.

The weapon in this video spews out 10k bullets per second. Each bullet is a regular instantiated Entity with a meshRenderer; no pooling and no special optimizations of any sort. And each one of them does raycasts for hit detection + calculations for “stretching” the bullet mesh relatively to its velocity on every frame. In short; it’s a very straightforward implementation that doesn’t do any clever tricks

Bullet hit VFX & bullet hole decals are handled with VFXGraph, using only one graph instance to handle all hit VFX instances (each new VFX is a “spawn new particles here” event sent to one single VFXGraph instance in the scene). This technique is a bit complex to work with at the moment, but the VFXGraph devs are working on implementing something called “VFX instancing”, which should make this technique much more accessible

The scene below never drops under 70fps on my old PC from 2013 (intel Core i5 4690k, 4 cores/threads), and there are roughly 50k simultaneous bullets in-flight at the peak

39 Likes

Scoured from reddit:

13 Likes

I’m making a brand-new game in the JellyCar series, this new project is based on an updated version of my 2D soft-body physics library, which I’ve ported to DOTS/ECS to make the new game in Unity.

All of the physics and gameplay are ECS, Visuals are GameObject meshes, with the (constantly changing) vert positions and triangulation calculated in an ECS system.

17 Likes

Recently I decided to recreate Conway’s Game of Life using Unity DOTS and document my development process along the way. I want to use this project as a way to experiment with different types of performance optimizations and implementing data oriented concepts.

Of course I am open to suggestions on things I can improve on, add in, or experiment with. To avoid cluttering up this thread too much, I’ll make a dedicated forum post for this in the coming weeks where I go into some more written detail about what I’ve done so far, plan to do, and use as a place for people to post feedback about the project.

If you do have any suggestions or feedback for now, feel free to comment on the video or post in my Discord community - Turbo Makes Games

Anyways here is the first iteration of “Turbo’s Game of Life” enjoy!

Code on GitHub: GitHub - JohnnyTurbo/TurbosGameOfLife: Turbo's Game of Life, based off Conway's Game of life. Developed using Unity's Entity Component System (ECS).
Build files to play around with: Turbo's Game of Life by Turbo Makes Games

Update: I’ve created a dedicated forum thread for this project and will be posting further, in-depth written updates on there!

13 Likes

How the hell did we forgot Hardspace: Shipbreaker!?

5 Likes

Did you try using an array instead of an entity per cell? It should be much much faster. And your solution for material changing can be faster than this but instead of changing materials you can add material override to your entity and change that.

1 Like

Hey, just saw this post and wanted to a plug in a tool I have been working on!

I’ve been working on NimGui, a 1 Draw Call Immediate Mode GUI for Unity. This utilizes Burst and the C# Job System to build a 1 draw call UI. The static API an be called from MonoBehaviour Update() or SystemBase OnUpdate() methods and was mainly built so I can easily display some statistics in MonoBehaviours and SystemBase.

Here’s a video of the 1 draw call UI that’s currently in progress:

1 Draw Call UI

https://vimeo.com/620826371

Similarly, I have my own forum post here which I’ll mainly be updating as I build up the tool: [Released] NimGui, a 1 Draw Call Immediate Mode GUI for Unity

Update

Update! I’ve released NimGui to the Asset Store and Itch.

15 Likes

How we can verify, if it used DOTS?

Unity had a success story of them which mentions they are using DOTS for some mesh baking in editor or something like that which uses the new mesh API which works with NativeArray and burst so it is not that they are using ECS/Entities in their game but they are using DOTS.
It is in DOTS - Unity’s Data-Oriented Technology Stack page

A behind the scenes look at Hardspace: Shipbreaker | Video game development | Unite Now | Unity

4 Likes

Found this video on yt - author says it’s DOTS based project

5 Likes

This project uses i think jobs and burst but not entities so not sure should i add it here in this thread - anyways result is amazing( i will delete my post if this is for entities projects only thread) :

13 Likes

DOTS is more than just entities. Burst & Jobs are two powerful components within the ecosystem and rightly deserve to get praise as well.

4 Likes

New version of the targeting system. 2.0.2 Multipurpose targeting tool that work with both game objects and entities.

If you are curious or want to chat about the tool, then below is a channel for it.

Asset store page

5 Likes

Hey all! We also wanted to share our game called Histera which we are developing using Unity DOTS!

Histera is a rapid fire multiplayer first person shooter featuring dynamic deathmatch arenas that transform as you fight using our unique ‘Glitch’ mechanic, causing players to change their strategies on the fly.

We are aiming for an early access in 2022.

We are also using most of the latest DOTS packages including (but not limited to):

  • NetCode
  • Animation
  • Hybrid Renderer V2
  • Physics
28 Likes

Well, is on the verge, since you got already posted same thing two posts above few days ago. You could just simply update. We don’t want to turn this thread into personal dev log.

1 Like

Yea true. Was trying to find out if there are people interested in the plugin, but looks like nobody needs it. I’ll test few places, but going to focus on my game now. Sry for the trouble

1 Like

Shoal game

13 Likes

I am working on a pinball game called The Pinball Mansion using DOTS.
I created several videos how I am making this game. If you are interested to watch them you can check out the Making of The Pinball Mansion YouTube playlist.
I created a thread in the Projects in Progress section for this project too:

You can check out that thread for more detailed information and updates on the project.

5 Likes

Hey guys, wanted to share this asset I’ve worked on for a while - 3D pathfinding. There’s already extensive solutions for 3D navigation like this (Mercuna middleware) that are likely more efficient, but I thought it was an interesting topic and wanted to do it myself.

Both the generation of the search space graph and the pathfinding is done using jobs (Burst is possible). The generation requires a voxelization of the environment, so technically it’s also a project that could be used for voxelization of standard Unity built in colliders shapes or something like that. It seems to work fine up-to ~2million nodes, more than that and it starts taking a few seconds to generate the graph, and pathfinding becomes a bit problematic too… only tested it on my old pc with Intel i3-4130 CPU @ 3.40GHz though.

Example of pathfinding in a randomly generated 6x6 maze:

3D Pathfinding in a randomly generated maze - YouTube

Link with a description, and a few more images:
https://pk1234.net/pathfinding/

Example of a voxelization (editor starts lagging a bit too much if I show all the gizmo cubes, so only nearby ones shown), this sort of precision is possible in ~1.5 seconds or so:

5 Likes

I published an asset on the asset store that performs physics simulations on an Entities bones using DOTS

7 Likes