Каковы лучшие ресурсы по проектированию и разработке многопоточных игр или игровых движков? Поскольку это, очевидно, то, куда направляются компьютеры, я собираюсь изучить эту тему, и я хотел бы знать, какие ресурсы и примеры там.
Каковы лучшие ресурсы по проектированию и разработке многопоточных игр или игровых движков? Поскольку это, очевидно, то, куда направляются компьютеры, я собираюсь изучить эту тему, и я хотел бы знать, какие ресурсы и примеры там.
Ответы:
Серия Don't Dread Threads от Intel довольно хороша. Он состоит из 3 частей, основы рассматриваются в первых 1,5 из них.
Резюме того, что было рассмотрено в первых 1.5:
Прежде всего, они не рекомендуют использовать функциональную декомпозицию. Функциональная декомпозиция - это просто «поместите ИИ в один поток, поместите аудио в другой поток, поместите графику в 3-й поток»
Так вот как это выглядит
Так что это плохо ™. Вместо этого вы хотите использовать декомпозицию данных .
Разложение данных означает, что вы разбиваете все в своей игре на небольшие достижимые задачи. Вы создаете x потоков, скажем, 4, а затем для каждого из этих 4 потоков они постоянно отбирают задание из кучи заданий и работают над ним, пока не будут выполнены.
Это как группа людей, которые едят пиццу. Каждый берет кусочек, пока пицца не готова.
Конечно, теперь я голоден.
Краткий обзор подходов многопоточных двигателей. Гамасутра на помощь.
Вот запись в блоге, которая дает практический пример в управлении задачами . Он предполагает некоторые знания о параллельном проектировании движка с вашей стороны, но вы все равно можете найти его полезным как «расширенное чтение».
Я думаю, что вы должны изучить подход на основе задач или работы.
Game Engine Gems имеет 2 или 3 статьи на эту тему.
Было несколько презентаций на эту тему на разных конференциях и т. Д.
Например, «Параллельное будущее игрового движка» Йохана Андерссона
Также взгляните на GDC Vault. В бесплатном разделе вы найдете множество презентаций и полных видеороликов на эту тему. http://www.gdcvault.com/
пс. Не удалось опубликовать больше прямых ссылок из-за того, что вы новый пользователь. Ds.
В книге Game Engine Architecture также есть некоторая информация о том, как создать игровой движок с поддержкой многопоточности.