Зальцман М.
Компьютерные игры: как это делается
стр. 179

космические корабли в Wing Commander: Prophecy в основном создавались как элементы данных. Программисты определяют общие свойства кораблей: двигатель, пушки, ракеты, щиты и максимальное ускорение. Затем дизайнеры собирают файл данных корабля, который описывает его внешний вид, свойства и статистику. Этот файл будет позже прочитан с жесткого диска и проинтерпретирован программой. Лишь иногда программа ищет конкретный корабль для применения специальных эффектов, но в идеале и эти случаи следует убрать из кода, чтобы все корабли могли обладать теми или иными свойствами.

Еще один способ представить движок на основе данных - это система триггеров, привязанных к карте. Главный герой Crusader: No Remorse - десантник далекого будущего, бегающий по изометрической карте и расстреливающий врагов. Карта заполнена объектами, с которыми наш морпех может взаимодействовать, -телепортерами, дверями, выключателями и мониторами. Система позволяет дизайнеру выбрать определенный триггер (например переключатель) и присоединить к нему команду, например «открыть дверь №21». Эта связь сохраняется в файле карты и интерпретируется программой во время выполнения. Если система триггеров создана правильно, она позволит активизировать множество действий, в том числе и те, которые не были изначально запланированы.

Миссии тоже, по возможности, должны управляться данными. Программа не должна знать, какие конкретно миссии используются в сюжете, ей достаточно иметь каркас, позволяющий дизайнеру создавать сценарии кампаний и отдельных миссий, - то, с чем имеет дело конечный пользователь, игрок. Проектировщик миссий и сюжета Wing Commander: Prophecy позволяет дизайнерам создавать файлы «сериалов», которые содержат указатели общего сюжета, наборы миссий и древовидную структуру, связывающую все миссии воедино. Такая система чрезвычайно гибка и надежна, она позволяет создавать разные типы ветвей дерева и условий, что приводит к многообразию сюжетов.

Экспериментируйте с существующими движками

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

В Интернете существует множество прекрасных графических движков, готовых к употреблению. Загрузите любой и попытайтесь создать с его помощью простое приложение. Затем постарайтесь разобраться, какая архитектура заложена в движок. К примеру, существует множество вариантов прорисовки сцен.


Новости
Слух: На E3 2018 покажут Cyberpunk 2077
Крупное польское видеоигровое издание GRYOnline сообщило о том, что, согласно их собственным источникам в компании, CD Projekt Red готовит к E3 2018 новый трейлер Cyberpunk 2077.
Авторы Max Payne раскритиковали крупные игры
Глава по коммуникации студии Remedy Томас Пуха заявил, что в нынешних реалиях игрового рынка его команде пришлось реорганизовать производство.