什么是multithreading游戏或游戏引擎devise和开发的最佳资源?

什么是multithreading游戏或游戏引擎devise和开发的最佳资源? 由于这显然是计算机的领导,我打算研究这个主题,我想知道哪些资源和例子。

英特尔公司的Do not Dread Threads系列相当不错。 它有3个部分,其中的基础是在前1.5。

  • 不要怕线程1
  • 不要怕线程2
  • 不要怕线程3

总结第一个1.5中涵盖的内容:

避免function分解

在这里输入图像描述

首先,他们不鼓励使用function分解。 function分解就是“把AI放在一个线程上,把audio放在另一个线程上,把graphics放在第三个线程上”

所以看起来像这样

在这里输入图像描述

所以这是不好的 。 相反,你想使用数据分解

使用数据分解

数据分解意味着你将游戏中的每一件事都分解成小的可实现的任务。 你产生了x个线程,比如说4个,然后对于这4个线程中的每一个线程,他们不断从任务堆中获取一个任务,并在其上完成任务。

在这里输入图像描述

这有点像一群吃披萨的人。 每个人都需要一个切片,直到比萨完成。

在这里输入图像描述

当然,现在我饿了。

multithreading引擎方法的简要概述。 Gamasutra来救援。

  • multithreading游戏引擎架构
  • 线程化3D游戏引擎基础

这里有一个博客文章,提供了一个在任务管理中的实际例子 。 它假定您有一些关于并行引擎devise的知识,但是您仍然可以将其用作“高级阅读”。

我认为你应该考虑一个基于任务或工作的方法。

游戏引擎gem有2或3篇文章的主题。

在不同的会议上已经有了一些关于这个主题的介绍。

例如Johan Andersson的“游戏引擎的并行期货”

另外看看GDC Vault有免费部分的主题演示文稿和完整的video。 http://www.gdcvault.com/

PS。 由于是新用户,无法发布更多的直接链接。 DS。

本书的游戏引擎架构也有一些关于如何devise一个multithreading支持游戏引擎的信息。