Ah nice, it is for VR right?
Can you please post vid and few words description in this thread too, so there is more content than just a link to asset store? You can just edit your post.
Yeah Dots and VR is still some Mystery for me too
yes, updated the post.
Superb, appreciated.
At that time it was ājust workingā, didnāt have any major problems. We used LWRP , no idea how it would work with Hybrid renderer right now. Our VR code to handle interactions and headset input were classic prefabs that acted as input to the simulation, so the VR part was done in a classical way. The ECS battle simulation didnāt care about the player in VR and what he was doing, so for example using a turret with your hands would just trigger a Command to the battle system to simulate bullets firing etc. Also grabbing a unit and throwing it into the battle would produce a command that you threw this unit here with this force and only then it would actually produce an entity that would join the battle. So there was a clear separation between the battle and vr interactions.
Aha makes perfect sense, so the VR part was classic mono, makes a lot of sense for your game type.
I am a student from Breda University Of Applied Sciences and together with my team we have released our game,
Vedelem: The Golden Horde for free on steam:
It is a real time strategy and survival game where you build up your fortress to defend against the massive Mongolian invasion.
It is using DOTS for all gameplay logic and supports big battles (10k units).
We have been working on it for 8 months and recently done a interview with TurboMakesGames about our process developing this game.
Check it out here:
We have developed vertex animations tools to efficiently animate a lot of units.
These tools are open source and you can check them out here:
https://github.com/maxartz15/VertexAnimation
If you are interested feel free to check it out!
Iām working on a game called Power Of Slide. All the logic is done with ECS (except UI). I am using Havok Physics to simulate physics. The project was started as a training project to learn Unity DOTS. Here is the gameplay:
This is a quick intro to our utility AI system. NoOpArmy.AI DOTS Utility AI introduction - YouTube We will share more videos and hopefully the project later on as well.
NoOpArmy.AI DOTS Utility AI introduction - YouTube
This uses codegen and is all bursted and parallel and jobified.
Cool stuff guys. Keep it comming. It shows how DOTS tech can be used successfully in various projects
@Ashkan_gc would you mind me ask you, to update post, so people can see video in the post as well.
Adding link from youtube vid should embed it automatically.
You can keep your links too, if you like. Thx.
@Antypodish Did so. It was my first time doing this so thanks for the tip.
I would love to hear more about how itās made. Still canāt wrap my head around some cases in DOTS.
We create scriptable objects based on parameters, considerations and actions defined in the AI Editor UI.
Then we generate code for calculating AI based on those actions and their considerations.
We also generate a MonoBehavior called AIAgent which is attached to entities and contains all entity parameters which should be attached to the entity.
There is a conversion script which converts the scriptable objects to blob assets so we can run the generated AI code which is a single system which uses burst and is parallel.
Then user code sets entity paramters and the AISystem calcualtes the current action and it can be read from the AIAgent component by the users and users can execute the chosen action.
Each parameter at the moment is an IComponentData but later on we will make a single component which is a pack of floats because that will lead to less cache misses.
Also for now the AI runs every x seconds but we want to divide the work between multiple frames so one frame will not have a big time lost due to the AI.
Iāve stalled on my project a bit due to the main thread overhead of scheduling jobs & the dependency chain with small numbers of entities. Iām curious - if youāve had similar issues. i.e. can I ask how much main thread time your systems take end-to-end for e.g. <10 agents? In my case I struggle to get cpu overhead to <0.5ms for a single entity and < 1ms for a single gameobject (in a build, fully bursted & using Run() or Schedule() where possible).
Do you have any materials on code generating?
Ultimately one should use Roslyn or some templating language but we here just did string concatenation and manipulation and stored the results in .cs files in the project folder.
@xoofx Had a github repo for a good templating language which unityās own AI planner is using but I forgot the name of it (reason of the mention)
Hey,
just wanted to share our released Early Access game āIndoorlandsā. It uses Unity ECS for economy system and park visitor simulation. It is a heavily hybrid approach, but I think this is one of the great strengths that devs need to know about ā it is not either ECS OR GameObjects. It can easily be both. But surely weāll want to port as much of the hybrid stuff to ECS as possbile (if helpful in terms of performance or code structure).
Here is a early prototype GIF where we tested ECS simulated visitor pathfinding + movement. I think it was something about 20k Units.
EDIT: Somehow it doesnāt want to embedā¦ here is the link: https://cdn.discordapp.com/attachments/646457470255890443/703698371499524237/wusel.gif
For the pathfinding we use the A* pathfinding project with a system which translates the paths to ECS. This is probably one of the main points to improve on (custom pathfinding instead of Recast Graph etc.).
I think in general we just used half of the features and could optimize way more, but it was such a blast using ECS. When we started understanding the data-based thinking in context of our game + how the API works it made click. Really looking forward to using this in other projects too. Unity, donāt abandon this, please
Our STEAM page: Indoorlands on Steam
Best regards
Bennet from Pixelsplit
Very cool! Thanks for sharing, and congrats on the early access Steam release!
I agree about using a mix of standard Unity in combination with entities, utilizing each where they make the most sense. Thatās what Iām doing with my weekend project. The player characters, visual effects, and UI are mostly standard GameObjects, while all the enemies/foliage/projectiles are entities. Granted, itās just my side project, so itās nice to see a game actually released on Steam which make use of entities. Best of luck as you develop toward final release!
Earlier this year I decided to do a 100% server authoritative multiplayer game using DOTS, making my own networking solution. Iāve learned most from the Overwatch Networking GDC video and reading up on prediction models.
Iāve managed to leave the DOTS Physics System almost untouched right in the middle of my simulation group which allows me to re-use it for rollbacks.
I could never have done this with GameObjects. The performance increase of Jobs & Burst is easily 1000x with this many entities.
Hereās a video of my prototype. 50 bots atm but Iāve tested it with 500 and it works, though the game lasts for too long so 100 is where Iāll set the limit I think.
Not mine but dev says theyāre using DOTS.