09 августа 2018

Принципы программирования ранних id Software

Когда речь заходит об игровых разработчиках, одним из самых влиятельных представителей называют сооснователя id Джона Ромеро (John Romero). Во время выступления на GDC Europe в Кёльне, Германия, Ромеро перечислил некоторые ключевые принципы программирования, которых создатели Doom придерживались в 90-х.




Предупреждаем: Ромеро заявил, что некоторые из них звучат безумно с точки зрения современных стандартов. Эти правила являются продуктом своего времени, в 90-х они отлично работали для id. Они смогли выдать ни много ни мало 28 игр за пять с половиной лет с командой менее десяти разработчиков, в том числе и такие эпохальные игры как Commander Keen, Doom, Quake и др.

Никаких прототипов, всегда поддерживайте код в готовом состоянии. Совершенствуйте его в процессе работы.

Сегодня самый распространённый совет – прототипируем, прототипируем, прототипируем… Достаточно слепить что-то мало-мальски играбельное и играться с этим. Но у id, по словам Ромеро, не было времени делать прототипы. Игры, производимые студией, были небольшими по размаху, и команде было несложно представить  всё умозрительно. Поэтому id от начальной идеи переходили сразу к разработке конечного продукта. Ромеро говорил: «Сегодня, при работе над любым крупным проектом, понадобится множество прототипов».

По его словам, Quake: The Fight for Justice была единственной игрой, от которой команде пришлось отказаться. Они работали над ней 2 недели (предполагалось, что это будет ролевая игра), после чего прекратили разработку и взялись за другие проекты. id вернулись к вселенной Quake лишь четыре года спустя.

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

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

Пишите код максимально просто. Изучайте функции и думайте, как можно упростить его ещё больше.

Опять же, упрощение процессов очень важно. Не только в коде, но и в игровом дизайне, и рабочих процессах.

Отличный инструментарий помогает создать отличные игры. Уделяйте инструментарию максимально возможное время.

«Мы сами – лучшая команда тестеров, поэтому мы не должны допускать, чтобы другие натыкались на баги или падения игры, - сказал Ромеро, - Не тратьте время других людей. Как следует всё тестируйте, перед тем как проверить код».

Затем он добавил: «Как только видите баг – устраняйте его. Не откладывайте. Если не решить проблему на месте, свежий код будет написан поверх забагованного, что обеспечит шаткость всей конструкции».

Используйте для разработки игры более совершенную систему, чем целевая.

Целевой платформой Doom была MS-DOS, однако, по словам Ромеро, её разрабатывали под более продвинутой ОС NextStep, предшественницей OS X.

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

Повторное использование одного и того же кода в разных играх не имело смысла для команды, которая ставила целью оптимизацию для текущей ситуации (И, конечно, нельзя было лицензировать Unity или Unreal Engine).

Всегда исходите из принципа функциональности, чтобы обеспечить цельность дизайна. Это минимизирует количество ошибок и экономит время.

Последовав этому совету, разработчик получит более эффективный код и больше гибкости в вопросах  дизайнерского выбора и изменений.

Старайтесь программировать прозрачно. Объясняйте руководителю и коллегам, как именно вы будете решать текущую задачу.

Раньше в id сидело всего четверо парней: Ромеро, Джон Кармак, Том Холл и Эдриан Кармак – все в одной комнате и кодили под аккомпанемент хэви-металла. Каждый знал, что делают остальные, и тогда это шло на пользу id.

Программирование – это форма художественного искусства, которая основывается на логике. Каждый программист уникален.

Это говорит само за себя (И актуально по сей день)! Во время сессии вопросов и ответов, начинающий разработчик спросил, не «выгорал» ли Ромеро от дикого темпа разработки. Ромеро объяснил, что он такой программист, который настолько любит своё дело, что не выгорает никогда. И ещё кое-что следует учитывать: перед появлением Doom, самой известной игрой id, было проделано много работы. Wolfenstein был 87-й игрой Ромеро, а Doom – где-то 90-й.


Programming principles from the early days of id Software
Kris Graft
16 августа 2016 года

Оригинал статьи: ссылка

Комментариев нет:

Отправить комментарий