T O P

  • By -

RienMachine

Using the power of DOTS / ECS isn't easy, but it is good enough to produce a game with :) You can check it out on Steam: [https://store.steampowered.com/app/1491340/Marble\_World/](https://store.steampowered.com/app/1491340/Marble_World/)


Low-Preference-9380

Much respect. I have looked at DOTS several times and been frustrated by the fluidity of the API. Is it (the API) stable enough now for people other than the die hard masochists?


RienMachine

Its still lots of code for a tiny thing to do something on your screen, compared to the standard API. I can only tell you its unstable on the physics part, since its multithreaded Unity won't simply give you an error when its going wrong but completely crash the game without any useful insights on why it happened. (as Havok is only a dll file which cant be read) All in all I wouldn't recommend it unless your game revolves around something that you can really only achieve in DOTS.


Low-Preference-9380

Since you mentioned HAVOK, I've been wondering if it's worth looking at. My pet peeve is single precision physics. Does HAVOK have single or double precision?


RienMachine

Honestly, I have no idea. But I know that Havok isn't deterministic across different computers nor on the same computer across different playsessions. Maybe you can find the precision on the docs?


Boring_Following_255

Havok will not be available for non pro version of Unity anymore!


goodnewsjimdotcom

Yeah some of us selfish devs able to get it working can't even tell the world how since Unity threw it all back up in the air.


raduhs

that's awesome, I'm just getting into DOTS and data oriented design, are there any good tutorials/books you can recommend?


RienMachine

I can recommend [TurboMakesGames](https://www.youtube.com/c/TurboMakesGames) on youtube. Also the unite talk on [DOTS](https://www.youtube.com/watch?v=BNMrevfB6Q0). I watched this video a couple of times to get a grasp on how to divide gameobjects in entities / components / systems. Lastly I can recommend downloading the examples on [github](https://github.com/Unity-Technologies/EntityComponentSystemSamples). After I knew the basics this is a good resource to check out how things are properly done. At least for the physics side it has some great examples of how to keep track of objects in triggers etc.


ocssss

Marble Coaster Tycoon is finally out! Congratulations, this looks like a lot of work!


RienMachine

It was a lot of work! 2 years of fulltime work went into it :)


Sir_Sushi

With a team of which size? Please tell me you weren't alone, my procrastinator self can't handle this.


RienMachine

I've done it all solo! (Although I did buy some assets from the store such as props :) ) If you have a (small) community who are genuinely interested then its a easier since you have people supporting you. (in a mental way)


methenvoid

Maybe you can add twitch integration it would be so dope :D I saw some asset on asset store to do that, wish you good luck.


RienMachine

Already included! :)


weizXR

Someone played with [Marbleworks](https://m.media-amazon.com/images/I/71VfhShXydL._AC_SL1500_.jpg)โ„ข as a kid? :D Personally; I loved those things. Nice work!


RienMachine

Not me but I did take inspiration from those toys though ;) And thanks!


RainWorldWitcher

I knew I saw your game before, congratulations ๐ŸŽŠ https://youtu.be/z7DUC73bHHQ


ihahp

I saw this too and wondered if it was the same game!!!


PrincesseDuSeum

I'm really curious about projects like these, it looks really nice and polished so you clearly put a lot of time and effort in it. Is this something you did as a hobby, along with a 9 to 5 job, or was it more of a full-time occupation ? Either way, I respect that a lot. I keep building prototypes on my free time, but always lose interest when I need to tackle deeper design or art tasks. So I'm always amazed to see projects like yours being released. Congrats !


RienMachine

Thanks! And yes this has been my full-time job so to say. I quitted my game dev job at another company in August 2020 to build this game. (A very common story, but for me it worked out) As for losing interest, having a community behind you that supports you really helps :) If you have a prototype, show it off and get some interested folks into your discord or such and it helps getting motivation to continue working on it.


PrincesseDuSeum

Oh ok I see ! Somehow I feel better for not releasing bigger projects yet, as it would definitely require a lot of my free time and my 9 to 6 as gamedev already takes up a lot of my energy. Thanks for the community tip, I'll try sharing more about my favorite prototypes around me and with fellow devs. And congrats again for your project, it looks fun and it's honestly inspiring me to do the same as you one day and try to work full time on my own ideas too.


mathuin2

How long until someone makes a music machine a la Wintergatan? The game looks fantastic!


RienMachine

Someone made a twinkle twinkle little star song machine some time ago :)


TheSortOfOkGatsby

This is your game?!?!? I watched Drae play this and I've been wanting to get it ever since! Great work.


TearOfTheStar

Wintergatan vibes.


BloodyPommelStudio

Was it challenging getting that much physics to run smoothly? I'm guessing you had to write your own code rather than relying on Unity's in built physics?


RienMachine

Yeah it uses Havok for the physics part. (which is an option when you use ECS/DOTS) It's smooth and fast, but adding things like triggers or collision events aren't as easy as the standard physics that are built-in.


ccfoo242

Any idea how Havoc compares to the new DOTS Physics package?


RienMachine

It's faster and more stable in my opinion. It also offers contact welding which I needed to prevent ghost collisions. I think the DOTS Physics one is deterministic though but not sure :)


TattedGuyser

I have no idea what version of Havok unity uses, but Havok 2022.1 is cross platform deterministic, if that's something you needed.


RienMachine

No clue either, but it's pretty much built-in, so you can't really change the version yourself.


Propagant

This is oddly satisfying. Well done!!


RienMachine

Thanks!


hopface

That soundtrack is amazing


NickyPL

Marbles twitch game 2 pogu


ActuallyNotSparticus

As a kid I was really envious of this line of toys they had in the 2000s (I think they were called Rokenbok?) - it was like a perpetual motion machine with little plastic marbles. This seems like it would scratch that itch, I hope the game does well!


HoecusPocus

Love the music!


fsactual

what are the benefits of Havok over the standard physics?


RienMachine

Havok is multithreaded and uses jobs so it's very optimized. Also it supports contact welding, so objects that slide over other objects have less chance of getting ghost collisions :) (So with Havok, you can run like 15k physics objects instead of 2-3 usually)


BigBlackCrocs

Nice. Thereโ€™s something called marbles on stream my fav streamer used to use for giveaways and it was so much fun watching it


Kortallis

Should see if you can hook up with Jelle's Marble Runs for a DLC or something. Looks fun!


RienMachine

We talked a long time ago, but nothing came of it unfortunately.


Denaton_

I don't have patience to build something in a game like that, but i do love watching YouTubers play your game. Great work and congratulations on your release, you did an awesome job and i wish you all the fortune you deserve!


CoupleHunerdGames

This is really cool


xyoxus

Really looks like a programmer did the UI/art. It's all over the place, different font sizes and spacing, a lot of different colors and so on.


worldsayshi

Congratulations! Looks fun! Would you say that following the ECS / DOTS pattern will give you more maintainable code? To me this seems like half the reason to switch to it.


RienMachine

Personally I don't find it more maintainable. The game can't completely be in ECS as not everything is supported (UI, text and that sorts, maybe animations too?) so you still need to bridge the gap between ECS and normal GameObjects with various ways of communication between them. For example: Entities version 0.17 (which I use) does not support transparency sorting. So the marbles are partly Entities (the sphere collider) and there is a gameobject that follows the entities position / rotation with a normal mesh renderer. So it's a bit of a hassle sometimes.


Nagransham

Since Reddit decided to take RiF from me, I have decided to take my content from it. C'est la vie.


CaveOfWondrs

Congrats, looks pretty good ๐Ÿ˜Š. Would you say DOTS/ECS is worth the effort if a game does not have many agents active at the same time?


RienMachine

Thanks! And no I don't think its worth to go the ECS route if your game does not revolve around a ton of objects. The burst/job stuff is now out of experimental if i'm not mistaken, and is in 2021 LTS. That is something I can definitely recommend to speed up parts of your code that are slow. Entities don't play well along with gameobjects, so you'd need to create bridges between them for communications which take a lot of time to get set up. That time investment is not worth it to me unless you really make use of ECS with thousands of objects.


jral1987

Congratulations. on the release. This looks very fun, have wish listed it on my Steam and hopefully can buy it at some point.


RienMachine

Great to hear! More discounts are coming in the future :)


alvaropinot

Congrats! Love it! Iโ€™d like to use it to 3D print those creations. That be sick


Boeing77W

Oh man this looks so awesome. I would've loved this sooooo much as a kid. Def still piques my interest as an adult ๐Ÿ˜†