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

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

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

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

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

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

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


Новости
В GTA Online появились локации, мгновенно убивающие игроков
В GTA Online всегда были забагованные локации, попав в которые вы могли моментально умереть, но появившиеся недавно в игре «точки смерти» - не случайная ошибка, а специально созданные разработчиками игры смертельно опасные зоны.
Утечка: Diablo 3 выйдет на Nintendo Switch уже в этом году
Diablo 3 должна выйти на Nintendo Switch уже в этом году, но точной даты релиза пока что нет.