Разработка игр: FPS-проблемы Dota 2

 
В последние недели Dota 2 испытывает трудности с FPS (frames per seconds — кадры за секунду). С тех пор как игра переехала на новый движок, постоянно возникают баги и лаги. 
 
На сайте reddit было высказано предположение, что игра не использует весь потенциал аппаратного обеспечения компьютера. В частности подразумевалось, что, скорее всего, Dota 2 запрограммирована таким образом, чтобы задействовать больше CPU (центральный процессор) вместо GPU (графический процессор). Подобное решение кажется нецелесообразным, поскольку большинство геймеров имеют высококачественный GPU.­ Данный пост повлек за собой горячее обсуждение среди фанатов игры. 
 
Один геймдевелопер решил поделиться своими мыслями по данному вопросу, детально рассмотрев проблемы, с которыми может сталкиваться Valve. В серии длинных сообщений пользователь под ником palish пояснил ситуацию с его точки зрения, пытаясь успокоить разбушевавшихся спорщиков. Он начал свой рассказ с описания задач, которые необходимо проработать с GPU: «Или вы создаете движок с нуля, чтобы сделать его (каким-то) образом основанным на GPU... Полностью логику игры, тестирование на конфликты, абсолютно все... Или же вы используете CPU». При этом не имеет значения, что из этого вы выберете, процесс оптимизации в любом случае может принести вам неприятные сюрпризы. Далее, чтобы объяснить ситуацию, palish говорит о профилирующей программе, которая помогает отыскивать в коде те фрагменты, которые выполняют свою задачу слишком долго. Их необходимо переделывать, чтобы улучшить работу игры. Однако случается и так, что, несмотря на быструю работу каждой отдельной части, компонентов игры так много, что продукт работает медленно. 
 
Он также приводит пример, говоря о  вычислительной мощности, необходимой для Anti-Mage Anti-Mage: «Сложность в том, что... Подумайте об Anti-Mage. (…) это набор анимаций, использование collision box, голосовое сопровождение, игровая логика (набор навыков) и т. д. Dota 2 — это громадная старая симуляция с тонной движущихся частей. А теперь подумайте о каждом крипе. О каждом крипе, который суть маленький Anti-Mage: все, что я сказал об Антимаге, можно применить и к этим крипам. И каждый кадр каждой этой части нужно "обновить" — программе нужно проверить, что каждая часть должна делать дальше. Должна ли она снять с Anti-Mage ХП, потому что крип его только что ударил?».
 
 
А во время тимфайта необходима еще большая вычислительная мощность
 
С точки зрения этого геймдевелопера, GPU нельзя использовать для всего, поскольку информация, посланная ему, уже вызывает задержки в системе: «Очень сложно взять определенную часть и кинуть ее на GPU, поскольку это вызовет отставание в движке. Графические процессоры мощны, однако у них высокая задержка, примерно в один кадр, если не в 2–3, что равняется примерно 40 мс. Это проблема для Anti-Mage, поскольку когда сервер говорит, что крип его ударил, его здоровье должно немедленно уменьшиться!».
 
Другие пользователи reddit тогда присоединились к разговору и спросили, как мог в таком случае старый движок Warcraft III обеспечивать бесперебойную работу игры. Ответ: «Простой пример: как WC3, так и Dota 2 имеют систему риплея, однако система Dota 2 более продвинутая. Пока вы играете, ваши друзья загружают апдейты, функционирует магазин и остальная часть UI (пользовательского интерфейса). (…) Все эти функции  собираются в критическую массу очень быстро. Несложно убить быстродействие вашей игры, делая слишком много. (…) В современном игровом движке существует огромное количество компонентов, большая часть которых просто не видна обычному юзеру, и он легко о них забывает».
 
Пользователь palish также поразмышлял о распределении задач в компании, когда его спросили о тех функциях, которых до сих пор нет в движке Source 2: «Настоящая опасность состоит в том, что вы поручаете вашим программистам сделать определенную задачу, а таких задач может быть тысяча. Если вы дали им не ту задачу, какую следовало бы, в один прекрасный момент вы найдете свою команду полностью парализованной. Они не могут ничего, поскольку каждый старается выполнить сразу много крупных задач. (…) Стратегия важна. Они не стали делать промо на Хеллоуин, поскольку сложно сделать так много всего сразу».
 
Поскольку нет того сегмента программы, с которого можно было бы начать, проблема усложняется, превращаясь в «чертовски сложную проблему», по словам разработчиков компьютерных игр (в оригинале — goddamn hard problem). Разработчик игр palish, однако, призвал всех набраться терпения: «Все это решаемо. И Valve, несомненно, работает над этим. Прошу вас дать им время, поскольку все это займет месяцы. Я знаю, какая перед ними стоит задача, и веселого в ней мало: оптимизировать один маленький сегмент игры за раз. День за днем. И так на протяжении месяцев. И GPU тут не поможет».
 
Источник: Reddit

 

АвторEloveana Дата12 Январь 2016, 19:08 Просмотров653 Комментарии0
Комментарии (0)
Только авторизованые пользователи могут оставлять комментарии. Логин