Каковы лучшие ресурсы по проектированию и разработке многопоточных игр или игровых движков?

44

Каковы лучшие ресурсы по проектированию и разработке многопоточных игр или игровых движков? Поскольку это, очевидно, то, куда направляются компьютеры, я собираюсь изучить эту тему, и я хотел бы знать, какие ресурсы и примеры там.

Ricket
источник
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что мы не поддерживаем вопросы, требующие ресурсов.
Гнемлок
@ Гнемлок Рад, что вы поймали его вовремя. Не хотел бы, чтобы вопрос не по теме оставался здесь.
Ricket

Ответы:

24

Серия Don't Dread Threads от Intel довольно хороша. Он состоит из 3 частей, основы рассматриваются в первых 1,5 из них.

Резюме того, что было рассмотрено в первых 1.5:

Избегайте функциональной декомпозиции

введите описание изображения здесь

Прежде всего, они не рекомендуют использовать функциональную декомпозицию. Функциональная декомпозиция - это просто «поместите ИИ в один поток, поместите аудио в другой поток, поместите графику в 3-й поток»

Так вот как это выглядит

введите описание изображения здесь

Так что это плохо ™. Вместо этого вы хотите использовать декомпозицию данных .

Использовать декомпозицию данных

Разложение данных означает, что вы разбиваете все в своей игре на небольшие достижимые задачи. Вы создаете x потоков, скажем, 4, а затем для каждого из этих 4 потоков они постоянно отбирают задание из кучи заданий и работают над ним, пока не будут выполнены.

введите описание изображения здесь

Это как группа людей, которые едят пиццу. Каждый берет кусочек, пока пицца не готова.

введите описание изображения здесь

Конечно, теперь я голоден.

bobobobo
источник
1

Я думаю, что вы должны изучить подход на основе задач или работы.

Game Engine Gems имеет 2 или 3 статьи на эту тему.

Было несколько презентаций на эту тему на разных конференциях и т. Д.

Например, «Параллельное будущее игрового движка» Йохана Андерссона

Также взгляните на GDC Vault. В бесплатном разделе вы найдете множество презентаций и полных видеороликов на эту тему. http://www.gdcvault.com/

пс. Не удалось опубликовать больше прямых ссылок из-за того, что вы новый пользователь. Ds.

Andreas
источник
0

В книге Game Engine Architecture также есть некоторая информация о том, как создать игровой движок с поддержкой многопоточности.

Quonux
источник