Каковы лучшие ресурсы по проектированию и разработке многопоточных игр или игровых движков? Поскольку это, очевидно, то, куда направляются компьютеры, я собираюсь изучить эту тему, и я хотел бы знать, какие ресурсы и примеры там.
44
Ответы:
Некоторые информационные ресурсы.
http://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine/
http://software.intel.com/en-us/videos/dont-dread-threads-part-1/
источник
Серия 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 также есть некоторая информация о том, как создать игровой движок с поддержкой многопоточности.
источник