Unity DOTS 对普通游戏有多大好处?

How benefitial is Unity DOTS for normal games?

我知道,当游戏包含许多保存相同数据的对象时,可以看到 DOTS 和 ECS 的巨大好处,这样它们就可以放在内存块中并轻松迭代。

我的问题是:我正在玩一款普通游戏,它不包含数千个保存相同数据的对象,恰恰相反:有很多对象包含不同的数据和行为。使用 DOTS 仍然有益吗?

我知道就记忆而言,它是有益的,因为只有有用的东西才会发挥作用,但是在不存在 DOTS(数千个相似对象)的巨大好处的情况下,如何我应该决定使用还是不使用它?

Unity 的 DOTS intro tutorial 关于此时使用 DOTS 的好处是这样说的:

Unless you are immediately seeking performance improvements in the short or medium term, it can be hard to determine if or when to move to DOTS.

DOTS is highly likely to provide some level of performance improvement in almost every application. Areas include performance, battery life, iterating, and project scalability. You won’t see any performance degradation by moving to DOTS, but assessing the cost of moving to DOTS is crucial, especially for projects when only small improvements are gained. For all applications, DOTS is suitable for working with large amounts of data, such as open world environments or complex structures that use large amounts of the same materials. DOTS is also suitable for repetitive elements by sharing common data across instances to reduce memory accesses.

It’s important to consider that DOTS is going to help you develop high-quality content in the future that a Unity without DOTS might struggle to deliver. For example, the standard games and Unity projects of today were the AAA games of the past. You will need to adopt DOTS to stay competitive in the future.

For different verticals, DOTS is can be suitable for different solutions:

For AEC applications:

  • DOTS is suitable for working with large data sets and for ensuring scalability of content.

    • DOTS is ideal for large interactive maps and environments with lots of models and repetitive content such as buildings and roads.

    • DOTS is suitable for complex engineering visualisations that emulate real word environments on a large-scale. For example, factory and infrastructure design on a granular scale are ideal for DOTS.

For automotive applications:

  • Simulations and Visualizations for Autonomous Driving

    • DOTS is perfect for large traffic and pedestrian simulations which require thousands of donation agents moving and interacting in realistic ways.

For game indie devs and freelancers:

  • DOTS can help you offload some expensive operations in your game and help improve performance, especially for repetitive processes.

  • Many lightweight games, such as for mobile, do not come close to maximizing hardware performance. Even for those that do, this may not be a primary concern. However, as games continue to evolve and increase the demands of hardware, it is sensible to prepare for using DOTS in the future. Again, Project Tiny provides a solution for developing smaller apps and games using DOTS.

  • In cases where you may not have an immediate need to start working with DOTS, it’s a great idea to get ahead of the curve and upskill yourself in DOTS so that you are ready for when DOTS is standard practice in Unity development.

For games studios:

  • DOTS in its current format can help you start to reach scale and performance you couldn’t achieve before, in Unity or otherwise. In particular, extended battery life time and thermal control alongside the nature of code reusability afforded by DOTS are key benefits. Extended performance in these areas also allows you to develop for more low-end devices, especially outside Western markets, that have otherwise restrictive hardware limitations.

  • Having R&D groups begin to work in DOTS will help you begin to understand the best approaches you can take going forward, and will inform you of the current features and areas that will give the most performance benefits and development impact. DOTS does not aim to replace the role of engine teams, but frees up engineers to innovate in their own areas of expertise, such as shadows or shaders.

所以基本上,Unity 声称现在采用 DOTS 的这些事情:

  • 在性能方面您不会有任何损失(尽管有些东西可能需要比其他东西更多的努力在 DOTS 中实现)

  • 即使您没有控制“许多”对象,DOTS 在您进行重复操作时也会更有效率,这在考虑低端硬件或资源时可能会产生有意义的差异,例如作为电池使用。

  • 除了现在采用 DOTS 的 material 好处之外,它还为人们或组织提供了一种教育经验,可以在 material 好处会出现时在以后的项目中使用它更大。