Инструменты и редакторы

Создание игры включает три основных задачи: проектирование, программирование и художественное оформление. Частенько каждому из участников проекта приходится заниматься понемногу всеми этими вопросами, причем это особенно верно для малочисленной либо ведущей группы разработчиков.

Во всех трех задачах огромную роль играет набор инструментальных средств, применяемых для разработки игры. Программистам необходимо решить, какой компилятор и системный инструментарий они будут использовать (под системным инструментарием понимаются диспетчеры памяти, средства экспорта и библиотеки программ для разработки игры). К примеру, если игра разрабатывается под Windows 95, программист должен быть хорошо знаком с интерфейсом Microsoft DirectX.

В идеале 70% игры должны создавать разработчики. Они формируют данные, которые обрабатываются игровым движком и выводятся игрокам в процессе игры. Все крупные игры должны быть основаны на наборе данных, причем большая часть работы над игрой должна сводиться к использованию стандартного набора редакторов, инструментария и программ экспорта, настроенных на конкретный игровой движок. Самой программе совершенно не обязательно знать что-либо о конкретной игре, она обрабатывает информацию в общем виде, что позволяет игре стать расширяемой и «долгоиграющей».

Следует помнить, что разработчику потребуется определенней алгоритмический язык для создания базовой системы искусственного интеллекта, различных сценариев и меню. Существует множество таких языков, включая Python и JavaScript. Когда разработчики описывают сцену, они используют игровые объекты в последовательности диалогов, которые поясняют какой-нибудь из элементов сюжета на одном из алгоритмических языков. Затем программист претворяет сценарий в жизнь с помощью языка программирования, и игра начинает функционировать. Таким образом программный код может быть изолирован от создания собственно игры.

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

В настоящее время существует не так уж много приличных приложений для создания игр, поскольку игры очень разнообразны и никому не хочется выпускать похожие продукты. Так как идея игры должна быть как можно более оригинальной, приходится каждый раз заново разрабатывать технологию ее создания. К примеру, если вы вдруг захотите клонировать Quake, то сможете воспользоваться рядом 3D-движков, которые предоставят набор инструментов, предназначенных для создания динамичных шутеров вроде самого Quake. С другой стороны, если вы решите сделать компьютерный футбол, используя тот же движок, программистам придется заново написать инструментарий для этого проекта. Далее, основное программное ядро игры тоже придется несколько переделать, чтобы оно подходило для того жанра, в рамках которого создается новая игра.

Никогда не следует недооценивать художественное оформление игры. Даже для простейшей 2D-игрушки необходим приличный генератор двухмерных спрайтов. Словом, и здесь первостепенную роль играет художественный инструментарий. Было бы весьма удобно, если б такие инструменты предоставляли возможность использовать метки, указывающие на различные оформительские элементы - анимационные кадры, активные точки и команды сценария. К примеру, если художник работает над анимацией ходьбы и хочет поместить в кадр команду «проиграть звук шагов», то возможность сохранить эту команду внутри графического файла значительно ускорила бы разработку и программирование игры. Графический инструментарий должен также обеспечивать возможность создания временных эскизов. Конечно, на фоне общего комплекса задач эта проблема не столь серьезна, но программисту было бы весьма удобно ускорить работу над программой за счет импорта различных графических объектов непосредственно в игру.

При разработке инструментария для игры важно создать промежуточный формат файлов, который позволит в будущем выполнять модернизацию игры и вносить в нее новые элементы. В дальнейшем игровой инструментарий может использовать временные файлы для формирования специальных оптимизированных игровых файлов. К примеру, текущий трехмерный игровой движок, которым пользуются разработчики, позволяет наносить только одну текстуру на многоугольник, но в будущем возможности движка расширятся до нескольких текстур на многоугольник. Труд художников и программистов серьезно облегчится, если графику можно будет экспортировать в промежуточный файл, включающий в себя все текстуры для каждой ячейки. Тогда по мере совершенствования 3D-движка не потребуется переделывать трехмерную графику для реализации дополнительных возможностей.