Оставьте в покое движок

Коротко попробую рассказать, почему говорить «старый движок Fallout 76» — некорректно.

О движке

Движок - это набор инструментов для разработки (редактор кода, инструменты импорта и экспорта, визуальные редакторы свойств, упрощённый рендерер игровой сцены и т.д.), плюс рантайм (runtime) - всё то, что будет работать, когда сама игра запущена. Примерное представление может дать архитектура движка Tombstone (бывшего C4):

Сам движок Creation Engine пережил уже три поколения (два первых Bethesda лицензировала, а третье - уже собственная разработка):

  • NetImmerse (первое поколение): Morrowind
  • GameBryo (второе поколение): Oblivion, Fallout 3, Fallout: New Vegas
  • Creation Engine (третье поколение): Skyrim, Fallout 4, Skyrim Special Edition

О старом коде

Тот факт, что в движке остался код из TES III: Morrowind - неудивительно, и, более того, закономерно: незачем переписывать участки кода, если они работают хорошо. Другое дело, что точно не известно, какие именно компоненты сохранились.

Например, математические функции (вектора, матрицы, цвета), менеджер памяти и менеджер ввода с клавиатуры, мыши, геймпада можно было и не переписывать: от того, что появился DirectX 12, функция быстрого расчёта косинуса не изменилась - как не менялась многие годы.

Есть впечатление, что не особенно были изменены подсистемы упаковки ресурсов (esp/esm), анимации, и, судя по проблемам с зависимостью скорости персонажей от FPS, работа в многопоточном режиме - но это на уровне догадок.

Об изменениях в движке

Обычно процесс поставлен так: геймдизайнер или другой, скажем так, артист, хочет иметь какую-то функцию в движке. Начинается этап согласований: что могут сделать разработчики движка, сколько это займёт времени, как в точности это будет работать. После этого разработчик меняет именно эту функцию - и больше ничего. Поэтому работающие участки кода никто не не меняет - это и не нужно.

Очевидно, что изменения в движок вносились: как минимум, новый рендеринг был и в Oblivion, и в Skyrim, и в Fallout 4, появился Radiant AI (если это движковая фича), добавлен сетевой код Fallout 76.

О багах и "ленивых разработчиках"

Почему появляются баги? Не от лени, нет.

У разработчика всегда есть дедлайн (deadline) - дата, когда определённый набор функций должен быть готов для использования другими людьми. Некоторые задачи решаются быстрее плана, некоторые медленнее, но в целом, есть тенденция к затягиванию сроков разработки, даже если вся команда будет работать по 10 часов 7 дней в неделю.

Когда дейдлайн уже близко, а всю работу в срок не выполнить, начинается фичакат (feature cut) - часть задач просто волевым решением исключается из списка того, что нужно сделать ("это мы уже не успеем, это маловажно, а вот это точно нужно доделать"). Альтернатива - перенести дату релиза, но для этого нужны дополнительные финансы сверх бюджета (на з/п персонала студии, на маркетинг в течение этого периода и т.д.) - издатель может на это согласиться, а может и нет.

Отсюда и все недоработки - студии стараются выпускать интересные в определённых аспектах игры в сжатые сроки и с ограничением по бюджету, поэтому наибольший приоритет имеют именно ключевые механики и совсем уж грубые недоработки, всё остальное правится в патче первого дня, в DLC, или не правится вовсе. Можно проиллюстрировать цитатой из четвёртого издания Game Coding Complete:

There’s nothing like having the rug pulled out from underneath you because a bug that you intended to fix is marked “won’t fix” by the team leadership. You might even have the code fixed on your machine, ready to check in for the next build. Instead, you get to undo the change. The final straw is when some critic on the Internet bashes the programmers for writing buggy code and even points out the very bug that you intended to fix. Most programmers I know are perfectionists and take a lot of pride in their work, and because of that they lose sleep over bugs. As evil as this seems, making those decisions is as tough as knowing your code has a bug that you aren’t allowed to fix. Believe me, I’ve done that a few thousand times.

Mike McShaffry, Founder, Principal Engineer at ArtCraft Entertainment (ex. dev at Ultima Series)

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

Проблема в том, что принимать такие решения так же сложно, как и осознавать, что в твоём коде есть ошибки, которые тебе не разрешено исправлять. Со мной такое случалось тысячи раз.

Майк Макшаффри, Основатель и ведущий инженер ArtCraft Entertainment, один из разработчиков серии Ultima

Резюмируем

  • Любые вносимые изменения в движок стоят денег и должны быть оправданы. Пока движок морально не устарел и проще его модернизировать, чем переписывать (благо, что зачастую требуется именно обновление рендеринга) - он будет использоваться.
  • Не все проблемы решаются на техническом уровне.
130130
281 комментарий

Но ведь он действительно именно что морально устарел
Очевидно, что все используют один и тот же движок и развивают его, но достаточно посмотреть, как это делает R* и студии Activision, чтобы понять, что в беседке именно что болт положили на все это дело. Если они и новый движок напишут, то он наверняка будет таким же ленивым, как и то, что есть сейчас. Непонятно только, когда они поймут, что их игры выглядят хуже и играются хуже любой, блин, ААА игры. Либо понимают, но им плевать, потому что и так схавают.

73

Облажались они с ф76, но берега то не путайте.
Какая игра бесезды играется хуже ААА? Ф4?(чекай метакритик) Или может Скайрим?

17

А что им мешает купить современный движок вроде анрил4 и дать задачу разработчикам подогнать его под свои нужды?

Против нового движка для Беседки есть один реально существующий и важный аргумент: время и деньги. Чтобы написать свой движок,даже взять архитектуру какого-либо существующего за основу (не факт,что он будет работать так же),потребуется 2-3 года и неплохую такую команду на содержании. После этого необходимо будет впихать туда гигантское количество плагинов для работы всех департаментов,отладить их и научить ими пользоваться. Потом будет адское месиво из тестирования работы на этом движке,куча времени уйдет на отладку корректного экспорта,работы шейдеров,рендера и прочего. И только тогда можно будет начать комфортно(читай "в нормальном темпе") работать. Хотите TES 6 через 10 лет? Да пожалуйста.

5

Ах да,мне сейчас навалят минусов,возможно,но: чертовы фанатики,как вы быстро переобуваетесь. Я понимаю,от любви до ненависти один шаг,но вы шагаете семимильными,ребят. Тут такое дело,что я никогда не покупал игры Bethesda для графона,красивых анимаций или полного отсутствия багов в опен-ворлд игре. Игры Bethesda всегда были хороши нарративом,эксплорингом и интересными ситуациями,в которых оказывается игрок. Я понимаю,картинка сделает всё более приятным,анимации более правдоподобным,но неужели у вас так слабо развито "отложенное неверие"? Или вы сидите и до*бываетесь до ног/крыльев Алдуина,которые периодически проходят через ландшафт? Хватит херней страдать и просто посмотрите что могут выжать из себя разработчики,а потом уже судите. Как бабки на лавке: один п*здеж,никакого толку.

13

Слишком много оправданий, вместо того,чтобы взять и сделать новый двиг/игру за 4-5 лет, как это делают другие нормальные разрабы и редактор не составит труда прикрутить.

2

Оставьте в покое тех кто не может оставить в покое движок!

28