Сооснователя id Джона Ромеро (John Romero) вечно относят к разработчикам, оказавшим наибольшее влияние на игровую индустрию. На минувшей в Кёльне GDC Europe он поделился ключевыми принципами программирования, каких создатели Doom придерживались в 90-х годах.
Предупреждаем: Ромеро уточнил, что отдельный из них могут показаться безумными по современным меркам. Это директивы другого времени, но в 90-х они прекрасно подходили для id. Имея в составе меньше десятка разработчиков, студия за пять с половиной лет сотворила 28 игр, среди каких были и те, что положили начало культовым сериям: Commander Keen, Doom, Quake и иные.
Никаких прототипов – всегда поддерживайте код в готовом состоянии. Полируйте его на ходу.
Ныне по всеобщему мнению прототипировать нужно как можно больше. Мастерите игру работоспособной, а потом думаете, как сделать её интересной. Ромеро поясняет, что у id не было поре на прототипы. Их игры были небольшими и команда без труда воображала, как они должны выглядеть, так что идея сразу превращалась в готовый продукт. «Сейчас же в любом большом проекте без прототипирования вам не обойтись», – сообщает он.
Продолжая, Ромеро упоминает, что единственной свёрнутой игрой студии была Quake: The Fight for Justice. Труд над ней велась две недели (это была RPG), после чего решено было отбросить эту идею и подвигаться дальше. С тех пор ко вселенной Quake id вернулась только спустя четыре года.
Критически значительно, чтобы ваша команда всегда могла запустить игру. Сделайте движок пуленепробиваемым, чтобы при несчастливой загрузке срабатывали установки по умолчанию.
Ромеро неоднократно подчёркивал, как важно искать способы повышения эффективности, в том числе гарантируя запуск игры командой разработчиков.
Ваш код должен быть максимально несложным. Смотрите на свои функции, и думайте, где ещё их можно упростить.
Простота, опять же, значительна всегда. Не только в программном коде, но и в процессах разработки и дизайне.
Неплохие игры удобнее делать хорошими инструментами. Уделите как можно вяще времени средствам разработки.
«Мы сами – лучшая команда тестировщиков, и мы не должны позволять следить ошибки и вылеты кому-то ещё», – говорит Ромеро. – «Не расходуйте чужое время. Перед тем, как сдавать код, тщательно всё проверьте».
Он добавляет: «Как лишь нашли ошибку, исправляйте её. Не продолжайте работу, иначе новоиспеченный код будет строиться на нестабильной основе».
Разрабатывайте игру в системе, превосходящей ту, в какой она будет работать.
Doom разрабатывалась для MS-DOS, но Ромеро сообщает, что работа над игрой велась в более продвинутой операционной системе NextStep, предшественнице OS X.
Строчите код только для текущей игры, а не для последующих. Для новой игры вы напишите уже иной код, потому что станете умнее.
Повторное использование кода не имело резона для команды, фокусировавшейся на оптимизации текущего проекта (и, разумеется, тогда не было никаких Unity и Unreal Engine).
Инкапсулируйте функциональность для обеспечения согласованности дизайна. Это позволит минимизировать недочёты и сэкономит пора, отведённое на дизайн.
Поступая таким образом, вы получаете немало эффективный код и повышенную гибкость в плане дизайнерских решений.
Усердствуйте, чтобы ваш код был прозрачным. Доступно объясняйте коллегам и руководителю, как вы решаете конкретную задачу.
На заре становления id в ней трудилось четыре человека: Ромеро, Джон Кармак (John Carmack), Том Холл (Tom Hall) и Адриан Кармак (Adrian Carmack). Они все сидели в одной горнице, программируя и слушая хеви-метал. Все знали, кто чем занимается, и это сыграло на длань студии.
Программирование – это форма искусства, основанная на логике. Любой программист особенный.
Добавить нечего! Этот принцип трудится и по сей день. Один из многообещающих разработчиков спросил Ромеро, выдыхался ли он когда-либо из-за бешеного темпа разработки. Тот ответил, что относится к программистам, какие настолько любят своё дело, что никогда не выдыхаются. И добавил, что необходимо учитывать ещё один момент: до выхода самой известной игры id – Doom – было проделано весьма много работы; Wolfenstein была его 87-й игрой, а Doom образцово 90-й.