Search Unity

Impossible game designs... DOTS solution?

Discussion in 'Entity Component System' started by Radu392, Dec 9, 2019.

  1. Radu392

    Radu392

    Joined:
    Jan 6, 2016
    Posts:
    210
    In this thread, I want to explore previously impossible game designs that might not be so impossible anymore from a purely technical point of view. It's going to be a little long, so make sure you're all comfy first. I'm hoping this thread is in the right forum as I expect some design related talk linked to the DOTS approach and maybe even some technical talk.

    Traditionally, games dealing with extreme computations were reserved by mostly AAA companies. Examples include Total War series, Stellaris, Civilization 5, Far Cry 5. There have been some indie games who followed the multithreaded approach, but there were very few. Example: They Are Billions (TAB).

    Now, before I continue, I know that Data Oriented Design (DOD) is nothing new. I know multithreading is nothing new. However I, as a graduate with a bachelor degree in computer science in Montreal, one of the leading cities in video gaming, have never heard of DOD before Unity introduced it. I did learn some multithreading, but it was all theoretical and did very little practice in school. See where I'm going with this? Unity is democratizing this approach, as well as multithreading, in the same way it did with its good old, beginner friendly gameobject engine back in the day when a whole new world opened up for casual devs, in the same way with Steam opening the floodgates to indies. It makes writing highly performant code a breeze. Up until now, this knowledge was reserved for advanced and experienced developers and AAA companies. I, as an average Joe who made only one serious game with Unity, have managed to make a pretty darn good copy of TAB in just 3 months, with even more advanced features than TAB. I would've never been able to do this without consecrating lots of time in learning multithreading, good memory layout and whatever else is required to imitate whatever Burst is doing behind the scenes. (All that 'SIMD' talk means absolutely nothing to me, yet it didn't stop me from making such a game)

    Now that indies can easily (keyword: easily) write performant code with DOTS, the question arises: What type of games will we see next? More importantly, what type of game ideas do indies have that they could not previously implement due to hardware and knowledge limitations?

    I know most of us here are all game devs, and therefore in competition with each other to come up with 'the best game ever' and that this thread may seem a bit pointless. I mean, why would you share your awesome cool game idea right?

    Well I don't have a good answer to that. Maybe you're no longer in the business or have never been, or maybe you just feel like talking about it too. But I'll start with my own ideas below. Feel free to contribute! I'm really curious to hear your crazy ideas.

    First of all, we got the obvious TAB new world RTS genre. TAB claims to have ~20k zombies on the map doing their thing at the same time (although it's not the first RTS game to do so, it is the most recent in an extremely small pool). @eizenhorn, the guy working on this project, claims that his project can handle 30-40k units at the same time. Up until I learned about DOTS, I would've never believed any of this. However, my own personal project also handles 20k-25k units, complete with all the RTS goodies that comes along, such as individual pathfinding, fight, targeting, commands and resource systems etc while holding 80+ fps at its worst. My TAB copy also contains an additional 100k entities that cover resources, tiles, decorations, buildings and more.

    So already, it looks like DOTS is going to flood the market with RTS games involving an ungodly amount of units. This genre, which I'll call BRTS, short for Big Real Time Strategy games, seems like a natural product of the DOTS routine. But what other genres might DOTS actually produce? And yes I do strongly believe that this tech, in the hands of indies, has a huge probability of creating and defining whole new game genres, in the same with that Minecraft defined the Voxel genre. AAA companies have had this opportunity for a longer time than us indies, but they rarely innovate as that's inherently risky business wise.

    BRTS games involve lots of units but 'basic AI intelligence'. Realistically, most game genres can and probably will, in time, benefit from the DOTS approach. You want a tower defense game involving thousands of units/towers(/bases?!)? DOTS. You want a survival game like Gaia involving thousands of AI ships/wildlife? DOTS. Therefore, almost every game genre can transition from its basic core to a sort of 'massive' version of itself, kind of like the 'Massive' in the 'MMORPG', which at it's base is a MORPG, which broken down even further is an RPG.

    I'm already thinking about a Big Rimworld, Big survival games, BRPG, BTD, Big city builders etc, but all these 'new' genres involve adding an extra level of 'wow' and 'awe', among other things. They're not actually new genres per se. A new genre has to be completely different, yet somehow familiar, from/to your other genres. For example, Minecraft has survival elements and sand box elements, but in popular culture, it's referred to as *the* voxel game, which was for all intents and purposes, a new genre at the time.

    So what do you guys think? What is currently thought as impossible to make that would be solved by Unity's DOTS approach?
     
    konsic and MNNoxMortem like this.
  2. MNNoxMortem

    MNNoxMortem

    Joined:
    Sep 11, 2016
    Posts:
    723
    DOD, in particular ECS based implementations in games date back as far as Dragon Siege (2002).

    As the link states, similar (or maybe even the same?) design as been used even before that (the page refers to Thief from 1998 - but I have not read that article yet). Many dev teams from that time weren't the AAA huge dev teams that we have nowadays (Star Citizen, anyone?).

    So I would say: There is nothing that could not have been done before. However, Unity will make it much more approachable and having it implemented as a feature in one of the world leading game engines will of course have a big impact.

    I would expect the biggest change in the indie sector, where people will be able to do some stuff they could not have before as they will not have to start from zero anymore. Also many game designs simply do not need a DOD approach and they will not necessarily benefit by having those tools available.

    Still: I am personally looking forward to those games. I like those, both from a technical view, as well as from game view. Let's think of all those simulation games, that are based around performance requirements, as the simulation scales with the available performance..
     
    Radu392 likes this.
  3. Radu392

    Radu392

    Joined:
    Jan 6, 2016
    Posts:
    210
    Exactly, this is why I'm so excited about this. This tech in the hands of indies is going to produce some very interesting results.

    So I've been thinking about it a bit more since I posted this thread. How about a game that's all about physics, kind of like Garry's mod, but on a huge scale? I haven't tried out the new physics package yet, so I can't tell how well it scales, though I imagine it must scale pretty nicely. I'm not talking about simply having a bunch of static geometry, which when interacted with by the player, becomes dynamic giving the impression that everything is dynamic. No, I'm talking about a game where you can literally play God, creating avalanches of rocks, which can then smash into multiple pieces, damaging the environment even further for example. At the same time, these rocks wouldn't need to despawn as every simulation game does with stuff that's spawned in great numbers. They would persist and the player would have to deal with them in some way. Maybe involving an army of autonomous little robots cleaning up the place.

    Or maybe DOTS will bring us a game like PUBG... but instead of being a 100 player 'battle royale' FPS, it would be a 100 player RTS. Granted, at that point, the problem will be networking and transferring amounts of data around, but I've seen a thread managing 5'000 networked players (though not with 5'000 unique computers sadly, which would actually indicate real life issues), so maybe it would indeed be possible.
     
    MNNoxMortem likes this.
  4. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,926
    I think games that are very based on "quantity" are something people could potentially get tired of really quickly, especially if there's a new wave of poorly-made mass-simulation indie games that hit steam once DOTS gets released. Much like the flood of indie survival/crafting games we had a while ago

    But the two things that excite me the most about DOTS are:
    • Extremely easy to make robust and scalable code with it. I expect game quality to improve a lot with DOTS. Devs can spend all their time actually iterating/designing their games instead of battling scalability problems, performance issues, and bugs caused by poor architecture. DOTS is often described as "more difficult" by people who have barely even used it, but my personal experience with it has been the complete opposite of that. Sure you have more code to write, but you know how many game projects were limited by the time required to actually physically type out the code on your keyboard? Zero.
    • We can finally say goodbye to the era in video game history where 30fps was considered acceptable. I hope to see 60fps become the new minimum, and 120fps to become the new ideal
    Overall I think DOTS will not necessarily bring that many new design possibilities, but it will drastically improve the quality of all the games being made
     
    Last edited: Dec 18, 2019
    florianhanke, optimise and Radu392 like this.
  5. Joachim_Ante

    Joachim_Ante

    Unity Technologies

    Joined:
    Mar 16, 2005
    Posts:
    5,203
    Agree with whats been said so far.

    One more thing to say is just the whole area of "making game worlds feel alive". Most games are made of mostly big static geometry. Making worlds out of smaller pieces, where each piece actually has behaviour on it could really make game worlds come more alive than what we seen in most games today. This is really about two things
    1) Streaming or alternatively Procedurally generating content on the fly without any hitching at high throughput
    2) simulating massive amounts of individual pieces with individual behaviours

    Both DOTS excels at. So I am looking forward to what we are gonna see in that space.

    But mostly it's really about opening Doors that were previously closed or simply too hard to get to.

    From Big scale simulations, better framerate, lower battery consumption on mobile, game worlds that feel more alive, multiplayer games with lots of players on a single server. There is many places where it creates value, ultimately it's really up to the vision of each game developer to take it to interesting places and show things that really haven't been done in games before at all.
     
  6. DreamingImLatios

    DreamingImLatios

    Joined:
    Jun 3, 2017
    Posts:
    4,269
    Hey! Don't share all the secrets! :D

    But to further expand on that, I can't tell you how many games do a really good job of building up an immersive world only to rip the player out of the experience again due to some popping artifact or crappy shadows or a nonrealistic motion. One game in particular that released in the last two months suffered from this and got a lot of weird confused reactions from players that couldn't come to a collective agreement on whether the game was good or bad.

    Some studios do this because of bad management, but many do this because of technical issues. DOTS makes working through those technical issues way easier.
     
    MNNoxMortem likes this.
  7. Guedez

    Guedez

    Joined:
    Jun 1, 2012
    Posts:
    827
    Maybe games will finally start simulating economies, this is the holy grail of realism and the base of society as we know today. The furthest games go is fake some supply demand and be done with it, and no matter how high the demand for ship manufacturing components, the AI factions still make just as many space ships for you to kill regardless