Search Unity

Showcase Share Our DOTS Showcases

Discussion in 'Entity Component System' started by Antypodish, Nov 22, 2020.

  1. bb8_1

    bb8_1

    Joined:
    Jan 20, 2019
    Posts:
    100
    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) :
     
    mischa2k, lclemens, Wattosan and 10 others like this.
  2. LazyGameDevZA

    LazyGameDevZA

    Joined:
    Nov 10, 2016
    Posts:
    143
    DOTS is more than just entities. Burst & Jobs are two powerful components within the ecosystem and rightly deserve to get praise as well.
     
  3. mikaelK

    mikaelK

    Joined:
    Oct 2, 2013
    Posts:
    284
    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
     
    Last edited: Mar 25, 2022
  4. StickyMitchel

    StickyMitchel

    Joined:
    Sep 2, 2019
    Posts:
    19
    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
     
    Last edited: Nov 25, 2021
  5. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    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.
     
    hippocoder likes this.
  6. mikaelK

    mikaelK

    Joined:
    Oct 2, 2013
    Posts:
    284
    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
     
    Antypodish likes this.
  7. bog-imp

    bog-imp

    Joined:
    Jul 25, 2012
    Posts:
    43
    Shoal game

     
  8. DevViktoria

    DevViktoria

    Joined:
    Apr 6, 2021
    Posts:
    94
    lclemens, Krajca, davenirline and 2 others like this.
  9. pk1234dva

    pk1234dva

    Joined:
    May 27, 2019
    Posts:
    84
    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:
     

    Attached Files:

  10. NT_Ninetails

    NT_Ninetails

    Joined:
    Jan 21, 2018
    Posts:
    196
    rdjadu, hugokostic, lclemens and 4 others like this.
  11. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,765
  12. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Eye opening perf gains are becoming the norm as DOTS matures. Really lovely to see new additions here!
     
    desertGhost_ and bb8_1 like this.
  13. bb8_1

    bb8_1

    Joined:
    Jan 20, 2019
    Posts:
    100
    Just learned about this(Hostile Mars) unity ecs game(you can find more videos on the same youtube channel and additional information on Steam) :
     
    Last edited: Mar 4, 2022
    rdjadu, hippocoder, mikaelK and 5 others like this.
  14. BigRookGames

    BigRookGames

    Joined:
    Nov 24, 2014
    Posts:
    330
    Can confirm, tries hard to use DOTS.
    Here is an up to date video explaining what the game is:
     
  15. pcg

    pcg

    Joined:
    Nov 7, 2010
    Posts:
    292
    Damn you beat me to it :)
    I had something similar in mind for my next project. It looks great, looking forward to seeing it progress. Good luck!
     
    mikaelK, BigRookGames and bb8_1 like this.
  16. mikaelK

    mikaelK

    Joined:
    Oct 2, 2013
    Posts:
    284
    Yea, I think the amount of rts games made with unity will sky rocket.
    That game reminds me little bit about Rift breaker. That game was really good
     
    yanivavrahami, mariandev and bb8_1 like this.
  17. nijnstein

    nijnstein

    Joined:
    Feb 6, 2021
    Posts:
    78
    cool to see someone post my video here :) its fully made in dots and everything except the base models is generated on the fly with enemys somewhat controlled by blast script and it runs on a 5 year old setup
     
    Last edited: Apr 2, 2022
    mikaelK, bb8_1 and Antypodish like this.
  18. mk1987

    mk1987

    Joined:
    Mar 18, 2019
    Posts:
    53


    This is my game ive been working on the last couple of years. Got it to a "marketable state" I think and will be looking to take it forward soon assuming i can fund it in someway.

    In terms of DOTS implementation it has got all the main Gameplay running in DOTS with 99% of the code (edit: Just added clarity since I use Space Graphics toolkit by Carlos Wilkes, ModernUI by Michsky in the builder and also the asteroid models are one of the free assets on here!) derived by myself (this forum and youtube has been really useful in helping me work stuff out). This is using entities 0.50 which for me wasnt a huge deal to update to (fingers crossed its the same for 1.0!).

    *Turret Tracking, taking into account bullet speed, target speed, own speed. Aim accounts for accleration, velocity and rotation to derive target aim point. Got it so turrets can shoot down fast moving and accelerating missiles by simulation.

    *Voxel based thermal damage model. Interlinked system of cubes exist where overlap with ship mesh occurs. Cubes of 5x5x5m for a 100-200m long ship (maybe 5000,10000 cubes per ship as only overlapping cubes count). Impact point on ship mesh will inform voxel model of impact, imparting mechanical and thermal damage. Thermal increase is then transferred to adjacent cells and in produces a realistic behaviour of heat transfer. Ship components also generate temperature and heat sinks needed to keep ship from overheating. Higher temperatures result in missiles and bullets dealing greater mechanical damage and this informs a change in vertex colour which shaders interpret as damage on the ship mesh.

    *Active Flight Model. Using Triangulation and Tetrahedral interpolation, required linear and rotational acceleration vectors are calculated from the ship engine orientations. This is done actively per frame with the idea that engine efficiency's will change based on temperature and/or damage. This also means it will support movable or rotating thrusters when i get round to it. Being newtonian based thrust and counter thrust is calculated so that ships stop at the target position (ie. zero linear or rotational drag).

    *Obstacle Avoiding missiles. Missiles will avoid obstacles that are not the targets. Linear weapons also controlled by DOTS.

    *Ship systems. Reactor power will be dependent on available crew, current temperature etc. Idea being without enough cooling you would have run your reactors at lower power or risk overheating.

    *All VFX handled with marker components using a concept that someone on this forum developed and i have a similar system (i'll edit this post to reference his work).

    *Fixed Simulation Slow Operations - Made a system that runs at 1/10 of the fixed simulation rate that handles more complex systems such as mesh updates, not sure if its working as i envisage but anything that runs over a few ms that doesnt need to run every frame is put here. This was literally a copy paste of fixed simulation with timestep and name altered.

    For the Voxel damage system, missiles, turrets and weapons it works really well and can handle a large quantity of entities without great issue. For the flight model and ship systems its certainly no slower and hopefully means i can scale up the number of ships with out issue. The flight model for example is quite a big process as its doing a lot of stuff to work out optimum vector, works fine but I know DOTS works best with lots of simple jobs so im not sure how it will scale.

    Let me know what you think and also if its something that looks like any of you would play! :)

    EDIT: Project in progress thread below for specific comments.
    https://forum.unity.com/threads/parabellum-galaxia-vr-space-strategy-game-alpha-state.1272722/

    EDIT2: Parabellum Galaxia on Steam (steampowered.com)
     
    Last edited: May 27, 2022
  19. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Definitely worth it's own thread in another part of the forum too, for proper feedback! Excellent.
     
    Antypodish likes this.
  20. mk1987

    mk1987

    Joined:
    Mar 18, 2019
    Posts:
    53
    Thanks! Do you mean within the DOTS specific area or elsewhere?
     
  21. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Where the game itself would need to be showcased for investment/interest etc. The DOTS forum is pretty tech-focused. You aren't restricted, it's just general advice.
     
    bb8_1 and mk1987 like this.
  22. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    Unity has two suitable sub forums, for sharing works.
    Made With Unity
    And
    Work In Progress

    Checkout Unity forum General section.

    I agree, you want open own thread dedicated for this project, to collect feedback and discuss the development.
    This sharing in DOTS forum is good indeed, but as already mentioned, it is DOTS oriented.

    If you creatededicated thread, please edit your post and add the link to the thread.
    This way people can discuss it there.

    I would say, this can apply to any project shared here.:)
     
    hippocoder, mk1987 and bb8_1 like this.
  23. Bas-Smit

    Bas-Smit

    Joined:
    Dec 23, 2012
    Posts:
    274
    Hi all, some great stuff on this thread. Let me take a second to plug my navmesh :)

    DotsNav is a fully dynamic and robust planar navmesh built entirely on DOTS
    DotsNav supports agents of any size and includes local avoidance
    DotsNav is open source and available on github
    For questions and suggestions visit the discord channel

    The tutorial part of this video is outdated with the introduction of multiple planes, but the general idea is the same


     
    Last edited: Apr 29, 2022
  24. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    You don't mind me attaching link to your Unity thread too?
    https://forum.unity.com/threads/open-source-planar-navmesh-built-on-dots.1060805/

    Hey. Links are broken to me.
    Is is possible to fixe them?
    Or at least replace with screenshots, would be nice.
     
    bb8_1 likes this.
  25. bb8_1

    bb8_1

    Joined:
    Jan 20, 2019
    Posts:
    100
    Sorry it's fixed now
     
    Antypodish likes this.
  26. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    Hey guys.

    I would love to share some other of my project involvement, which of course is utilizing DOTS and HDRP. :rolleyes:
    Our team is heavily invested in Sanctuary. Yet still long way to go for us.









    We want to add tons of features, fix any issues and improve performance.
    I have created thread as well, where anyone can comment on the project, if wishes to :cool:

    https://forum.unity.com/threads/wip...lation-supcom-zero-k-games-dots-hdrp.1277594/

    For anyone interested with more details, we have website with dev logs, youtube channel and discord as well, where people actively participate. :)
     
    Last edited: May 9, 2022
  27. Kamyker

    Kamyker

    Joined:
    May 14, 2013
    Posts:
    1,091
    https://store.steampowered.com/app/1604030/V_Rising/
    https://blog.stunlock.com/v-rising-dev-update-4-v-rising-engine-and-cutting-edge-technology/

    It has 40 players multiplayer. 40k ccu few hours after early access release.
     
  28. JoNax97

    JoNax97

    Joined:
    Feb 4, 2016
    Posts:
    611
    Holy sh*t that game is made with Unity??

    But that's impossible, it looks good :eek:
     
    lclemens likes this.
  29. koirat

    koirat

    Joined:
    Jul 7, 2012
    Posts:
    2,073
    HDRP can look good, it's the performance that is the problem.

    Btw. I got trouble understanding what is happening at about 1:14 first video , the candle holders are casting shadows as if character was the source of light.
     
    JoNax97 likes this.
  30. lclemens

    lclemens

    Joined:
    Feb 15, 2020
    Posts:
    761
    @Antipodish - Sanctuary looks badass!

    Does anyone know if the guy making Automation Station ( https://store.steampowered.com/app/1991250/Automation_Station/ ) is in these forums (I think his name is Scott Daley)? I was looking for an ECS/DOTS/HRV2/URP compatible outline shader and found his solution on github so I'm pretty sure he made that game at least partially with DOTS. I'm just curious because most DOTS devs tend to make an appearance in these forums at some point or another. Looks like a pretty sweet game.
     
    Antypodish and bb8_1 like this.
  31. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    Thx mate :)

    Yes it is. Is showing on his website.
    However, what are your indication, this project is using DOTS?
    I couldn't find anything, even if he is using Unity. Or maybe I missed out something?
    Doe he has some public repos?
     
    bb8_1 and hippocoder like this.
  32. lclemens

    lclemens

    Joined:
    Feb 15, 2020
    Posts:
    761
    bb8_1 likes this.
  33. scottjdaley

    scottjdaley

    Joined:
    Aug 1, 2013
    Posts:
    163
    Hello! Yeah, I frequent these forums, but mostly as a lurker. Same goes for the #dots channel in the unity discord server (I go by "GravitonPunch" on discord). I've actually been planning to post about my game in this thread, but I wanted to get a steam page up first. But now I've done that so I have no excuse :p

    Automation Station is an automation and crafting game. Collect resources, craft a bunch of stuff, automate everything with conveyor belts and other contraptions, profit.



    The game is made with Unity and uses DOTS/ECS. It is a mostly pure ECS game, but I use mecanim for animating the main character and use game objects for the UI. There are probably a few other hybrid/gameobject solutions I'm forgetting about as well.

    I'm using DOTS Physics, but that is mainly for controlling the character and doing some raycasts for item interactions. Although, I recently added physics to the conveyor belt for fun:



    But just to be clear, while the items in that gif are being moved around with physics, typically items are placed (not dropped) on conveyors and are moved around without physics (just setting translation/rotation in a system). Planning to do more with physics, but I only have a surface level understanding of DOTS Physics at the moment.

    The game has absolutely no audio at the moment, but I plan to start adding sound effects soon. Currently planning to use Myri Audio by @DreamingImLatios for that.

    For rendering, I'm using URP and hybrid renderer. Lots of shader graph stuff for both mesh materials and full screen post processing types of stuff. A few handwritten shaders for things like the outline effect as well as the "cavity" effect and modified SSAO.

    I just started messing around with VFX graph and absolutely love it. Pretty proud of this laser effect I made last week:



    Automation Station is still pretty early in development but my next milestone is a public demo some time this year hopefully. I'll be sure to post about it here when it is ready.

    Here are some links to learn more about the game:

    Steam page
    Discord server
    Website
    My Twitter

    Let me know if you have any specific questions about how I'm doing something. I've learned a lot from this community so I'd love to return the favor.
     
    Last edited: May 23, 2022
    Kryptonite94, rdjadu, Enzi and 21 others like this.
  34. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    This is so much ridiculous fun! Addictive to watch the detail and shenanigans going on. I see this as being a bit of a hit.

    Do you find DOTS making things harder or easier for you? In my case, it's easier but only because I started properly in 0.50, so had the benefit of standing on shoulders.

    What did DOTS do for you and ultimately, pros and cons?
     
    lclemens, Antypodish and bb8_1 like this.
  35. scottjdaley

    scottjdaley

    Joined:
    Aug 1, 2013
    Posts:
    163
    I think DOTS works really well for the kind of game I'm making. Everything in the game operates according to a global tick rate (every 1 second). This is the time it takes items to move across one conveyor belt and all the other machines operate at this rate as well. An important part of the game is that the order that things happen is well defined. For example, if I design a splitter like so:



    It is important that the behavior is consistent to split items evenly. With ECS, I can have separate systems for updating conveyors, pushers, orbiters, etc. and then simply order them within a system group. I even made a special system group that updates every second because I only need to update these objects every tick. I think doing the same kind of thing with monobehaviors would have been quite a bit more difficult.

    However, it did take me a long time to get in the data-oriented mindset. Honestly, I still struggle with that sometimes. It seems to take me a lot longer to design a solution I'm happy with that also plays nicely with DOTS. Also, there is still a lot of friction with working with ECS in the editor, but it has gotten a lot better and I'm hopeful for the 1.0 release.

    While the forums and discord channel are filled with valuable information, it is still much harder to find specific solutions to a problem you're facing. And when you do find an answer, it is usually out of date and no longer applicable. I've been especially annoyed when I get random crashes in builds from somewhere in burst-compiled code. I find it almost impossible to pinpoint the actual problem and I never know if it is my fault or some weird corner case bug in DOTS.

    But overall, I'm happy with DOTS and excited about its future.
     
  36. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    987
    lclemens and bb8_1 like this.
  37. LudiKha

    LudiKha

    Joined:
    Feb 15, 2014
    Posts:
    140
    For my physics based medieval combat game, I'm building a hand-rolled character physics system using a hybrid DOTS approach based on PhysX and ECS. The reference is animated using a fairly intricate mecanim animation jobs pipeline and motion matching for locomotion.

    I'm reading animation data from a job and storing it in native array, this is later memcopied into a Dynamic Buffer which can be done in parallel (by storing its IntPtr into a component). All computations (physics, balance, procedural steps) are done on ECS, and are essentially "free" at this scale.

    It scales very well all things considered with the workarounds I'm doing. Currently one of the bottlenecks appears to be reading Physx data into a native format (dynamic buffers).

    I think we may be able to achieve 250 - 500 characters at 60fps using Unity Physics, hopefully we'll have an opportunity to port it in future once DOTS animation matures.

     
    Last edited: Jun 21, 2022
    rdjadu, Timboc, IsaacsUnity and 13 others like this.
  38. officialfonee

    officialfonee

    Joined:
    May 22, 2018
    Posts:
    44
    Hello my fellow DOTS. I have been working on a small prototype to explore just how far I can push jobs and burst. This is the results from one of my recent tests -- 2 million units updating at 40 ticks / second. Each unit is not an entity, but simply defined as data in native arrays!

     
  39. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    That is super cool to see 1mln of things on the screen. It looks absolutely crazy, when you zoom out the camera. :eek::cool:

    It is like watching bacteria :D
     
    Last edited: Jun 29, 2022
  40. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    rdjadu, RaL, bb8_1 and 2 others like this.
  41. lclemens

    lclemens

    Joined:
    Feb 15, 2020
    Posts:
    761
  42. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    I was checking the steam page, but unable to find anything on DOTS. How can we validate that? It was released in 2019 May.
    It also isn't Robocraft(X) , but Gamecraft, to avoid confusion.

    Edit:
    See reply few post down from @sebas77
     
    Last edited: Jul 13, 2022
  43. lclemens

    lclemens

    Joined:
    Feb 15, 2020
    Posts:
    761
    Hmmm... I was reading in the forums and sebas77 posted some things that were DOTS related in this thread https://forum.unity.com/threads/load-a-subscene-to-a-specific-world.751265/ so I connected the game to DOTS, but apparently he's using SveltoECS, which looks like an ECS engine (written by sebas77) that takes advantage of some of the aspects of DOTS like Burst and Jobs. So maybe we could say that Robocraft/Gamecraft partially uses DOTS?

    I think maybe Gamecraft and Robocraft are the same game but it got renamed at one point? The link sebas77 put in that unity forum thread points to https://store.steampowered.com/app/1078000/RobocraftX/ but when you go there it forwards to https://store.steampowered.com/app/1078000/Gamecraft/ . Also in sebas77's unity profile he links to http://robocraftgame.com . Not sure if Robocraft is different from RobcraftX - I can't really make heads or tails of what's what.
     
    Last edited: Jul 3, 2022
    Antypodish and bb8_1 like this.
  44. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,776
    Thank you @lclemens for the research.

    Yeah, I have noticed earlier the links redirection. Atm it is just too iffy, what and how much of the game is using DOTS. It just feels, game we're released in initial state, before DOTS. Maybe it was converted later. Or maybe it is for a different project, what it feels more for me, seeing long stagnation in game updates.

    Let @sebas77 to confirm, if and how much gamecraft is using DOTS. And if Robocraft is somehow related to Gamecraft at all. To me these are completely different games, of different developers.

    As far I recognise robocraftX link was used, to grab attention and miss drive users, to think about gamecraft as robocraft. And game name had to be changed from RobocraftX to Gamecraft for a legal reasons.

    Edit: Looks like both games Robocraft (2017) and RobocraftX/Gamecraft (2019) are made by the same publisher/developer FreeJam.

    Edit2: See reply few post down from @sebas77
     
    Last edited: Jul 13, 2022
    lclemens and bb8_1 like this.
  45. Arnold_2013

    Arnold_2013

    Joined:
    Nov 24, 2013
    Posts:
    286
    Seeing all these amazing projects, its time to bring the bar down a little :).

    Unoffensible is a casual VR Action-RTS. With a great focus on VR interactions, and less on precise tactics.
    https://forum.unity.com/threads/unoffensible-action-rts-dots-urp-pcvr-openxr.1305555/

    Targeting PCVR with ~1.5k per eye at 120Hz (8ms per frame) on medium hardware. DOTS seemed like a good fit. Since all interactions are handled by the Unity Physics System there is a lot of smart stuff I did not have to program myself. Currently the game allows for ~500 units with individual AI, which is enough for showing off the games features. Losing the animations when leaving 0.17 saved some frame time :).

     
  46. bb8_1

    bb8_1

    Joined:
    Jan 20, 2019
    Posts:
    100
  47. sebas77

    sebas77

    Joined:
    Nov 4, 2011
    Posts:
    1,643
    Hello,

    Gamecraft has been pivoted to techblox (techblox.com). Both games always used Havok DOTS ECS but that's it the rest is made with Svelto.ECS. DOTS ECS is therefore used more as a physic library than a game framework.

    Jobs and burst are instead used thorough the whole codebase
     
  48. tassarho

    tassarho

    Joined:
    Aug 25, 2019
    Posts:
    75
    WAIT! we can render something that is not an Entity?! what's the sorcery behind this? i search in all the documentation (both hybrid renderer and Entites) and i couldn't find anything that allow to "command" a rendering, is that a plugin you made?
     
    officialfonee likes this.
  49. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    987
    Take a look at the Graphics class.
     
  50. mmankt

    mmankt

    Joined:
    Apr 29, 2015
    Posts:
    49
    Love it man, super jelly!
     
    officialfonee and Antypodish like this.