Введение в Wintermute Engine Development Kit

 

Предисловие

Wintermute Engine Development Kit - это набор инструментов для создания и запуска графических приключенческих игр (квестов). Набор включает в себя интерпретатор реального времени (Wintermute Engine, или WME) и визуальный редактор для администрирования и создания игрового контента (WME tools). WME tools содержит подробную документацию и демонстрационные примеры.

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

С чего начать

Документация WME разделена на несколько секций. Первая - это глава «Игра изнутри», в которой описываются игровые объекты, основные принципы и понятия. Глава так же включает раздел «Обучение работе со сценой», где описывается создание игровой сцены шаг за шагом. Изучение WME целесообразно начать именно с этой главы.

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

Если вы что-либо не сможете найти в этом руководстве, вы всегда можете написать в WME-форум.

[Version 1.3.2, Dec 27 2004]


Архитектура WME

В основе WME лежит объектно-ориентированная архитектура. Создание игры заключается в создании разных типов «объектов» и соединении их, реализуя логику создаваемого приложения. Вы можете управлять и редактировать ваши игровые объекты, используя ProjectManTool.

Чаще всего используются следующие понятия

Сцены (Scenes) – Ваша игра состоит из различных сцен, которые условно называются «комнатами», миром или окружением, в котором находится пространство игры. Вы можете создавать сцены с помощью инструмента SceneEditTool.

Актеры (Actors) – это действующие герои, присутствующие в вашей игре. Чаще всего имеется один главный герой - главный персонаж, контролируемый игроком, и, возможно, несколько других актеров - неуправляемых игроком персонажей (NPC’s – non-player characters).

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

Объекты пользовательского интерфейса (GUI objects) – WME позволяет вам создать простые элементы графического пользовательского интерфейса, такие как окна, кнопки и поля ввода. Так же, в вашем распоряжении есть такие элементы пользовательского интерфейса, как Load/Save-окна, элементы настройки игры, произвольные меню, и т.д.

Шрифты (Fonts) – WME использует графические (bitmap) шрифты для отображения на экране надписей, субтитров, элементов GUI и т.д. Вы можете создать нужные вам шрифты, подходящие к графическому оформлению вашей игры.

Спрайты (Sprites) – «Спрайт» - это основной графический элемент, используемый в WME. Спрайт может содержать либо статичное изображение, либо являться анимацией. Спрайты используются для создания других составных объектов, таких как «актер» или «предмет». Вы можете создавать спрайты, используя инструмент SpriteEditTool.

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


Основные особенности WME

Wintermute Engine (WME) разрабатывался как гибкий, понятный и простой в использовании инструмент. Он содержит множество предустановленных элементов и обеспечивает поддержку скриптов, что позволяет опытным пользователям, при необходимости, реализовать любую функциональность.


Главные особенности WME


Графическое разрешение и цветность

Движок поддерживает любое виртуальное разрешение. Ваша игра может быть растянута из разрешения в ретро-стиле 320x200 на разрешение 1024x768, и игра будет выглядеть так же как и раньше. Поддерживается глубина цветности как в 16bit (hicolor), так и в 32bit (true color). Игрок может выбрать глубину цветности, подходящую для его компьютера, и движок автоматически будет конвертировать экранную картинку в нужный режим.

Подсистема рендеринга

Кратко – для вывода изображение (даже для 2D) используется 3D-акселерация. Если компьютер не имеет видеокарточки с поддержкой 3D, используется программный рендеринг, с отключением некоторых специфических эффектов.

Средства разработки

Развитый GUI для создания контента игры. Настоящий визуальный WYSIWYG стиль интерфейса.

Поддержка форматов файлов

Поддерживаются форматы:

Картинки - BMP, TGA, PNG and JPG, в PNG и TGA есть поддержка альфа-канала.

Звук - Ogg Vorbis (OGG) и WAV. MP3 не поддерживается из-за лицензионных ограничений.

Видео – AVI, возможно включение автоматических субтитров в SUB-формате.

Скриптовый язык

WME имеет собственный объектно-ориентированный скриптовый язык, синтаксисом напоминающим JavaScript (C, C++, Java, PHP). Все объекты в игре имеют поддержку методов и обеспечивается простой доступ к атрибутам объектов. При необходимости, можно создавать произвольные объекты, минуя стандартные методы создания объектов через интерфейс.

Поддержка пакетов

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

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

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

Пользовательский интерфейс

Используя различные доступные элементы управления (такие как окна, кнопки…), вы можете создать любой интерфейс, необходимый в вашей игре. В вашем распоряжении так же игровые диалоги Load/Save, окно настроек игры, окно предметов, находящихся в данный момент у игрока (окно инвентаря) и.т.д. Все элементы управления поддерживают скины, и вы можете настроить форму и внешний вид элементов управления в игре так, как вам требуется.

Поддержка локализации

WME позволяет переводить вашу игру на любые языки. Локализация никоим образом не ограничивает текстовые ресурсы, вы можете создавать локализированные пакеты, содержащие таблицы строк, шрифты, графику и звуки.

Community

Вы всегда можете найти поддержку со стороны дружественной общественности на страницах WME-форума.

Постоянное развитие движка

Разработка движка WME не стоит на месте. Обновления до новых возможностей и исправления (патчи) доступны на WME-форуме. Утилита Project Manager способна сама проверять наличие обновлений через интернет, и в случае обнаружения обновлений, сама предложит скачать и установить новую версию.

И много еще чего вкусного


Системные требования

DirectX 8.0, Internet Explorer 4.0 или более старшие версии.

Поддерживаются следующие операционные системы:


Поддерживаемые форматы файлов

Для картинок - BMP (8 bit, 16 bit, 24 bit and 32 bit), TGA (8 bit, 16 bit, 24 bit and 32 bit color), поддерживается альфа-канал, PNG (8 bit, 16 bit, 24 bit and 32 bit color), поддерживается альфа-канал, JPG.

Для звука – WAV, OGG (Ogg Vorbis). MP3 не поддерживается.

Для видео – AVI, звук должен быть в некомпрессованном виде (PCM). Поддерживаются субтитры в формате SUB. 

Поддержка 3D – начиная с версии 1.3 WME поддерживает 3D-персонажей. Единственный поддерживаемый на данный момент 3D-формат - это бинарный формат MilkShape 3D (Chumbalum Soft).


Внутренний формат файлов WME

Кроме стандартных форматов файлов, WME использует несколько собственных форматов файлов, в которых определяются внутренние объекты – актеры, сцены и т.д. Это обычные текстовые файлы, которые можно отредактировать в любом текстовом редакторе. Из-за того, что некоторые объекты WME имеют развернутую и очень сложную структуру, чтобы быть отредактированными вручную, WME Development Kit содержит развитые инструменты для редактирования определенных типов объектов. В настоящее время WME содержит инструменты для редактирования сцен (SceneEdit) и спрайтов (SpriteEdit). Другие инструменты планируется создать в будущем, например, инструмент для комплексного редактирования актеров.

WME-файл может быть отредактирован в любом текстовом редакторе (например, в Блокноте Windows). Кратко опишем правила синтаксиса, которые применяются во всех файлах внутреннего формата WME.

Для примера возьмем описание объекта «окно».

  WINDOW
 {
  NAME = "test_window"
  TITLE = "Test window"
  X = 100
  Y = 100
  WIDTH = 210
  HEIGHT = 160
  FONT = "fonts\outline_white.font"
  
  BUTTON
    {
     NAME = "button1"
     TEXT = "Test button"
     X = 80
     Y = 60
     WIDTH = 50
     HEIGHT = 30
     ; this line is commented out
    }
 }

Это определение описывает объект «окно». Окно расположено, начиная с позиции x=100, y=100 и имеет размер 210x160 пикселей. Заголовок окна - “Test window”, а его внутрисистемное имя - “test_window”. Окно содержит кнопку с координатами x=80, y=60, размер кнопки 50x30 пикселей. Как можно заметить, определение объектов очень простое и без труда доступно пониманию. Определение объекта состоит из блоков, ограниченных фигурными скобками (например WINDOW { … }), , и каждый блок содержит установку свойств объекта ( например, X=100). Кроме того, объектный блок может содержать внутри себя описание другого объектного блока (как описание объекта BUTTON в вышеприведенном примере).

Все объекты, используемые в WME, имеют однотипные правила описания. Более детально формат объектов описан далее по тексту. Рекомендуется посмотреть демонстрационный проект, который идет с дистрибутивом WME. В этом проекте вы найдете множество примеров описания объектов.

Запомните основные правила:


WME ProjectMan: центр управления

Утилита ProjectMan поможет сохранить ваше драгоценное время, расходуемое на создание игры. Кратко расскажем об этой программе. Запустите ProjectMan, кликнув по иконке в меню Windows, или дважды кликнув по иконке “WME ProjectMan” на рабочем столе.

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

Нажмите “File->Open…” и откройте файл “wme_demo.wpr”, который находится в каталоге, куда был установлен WME Development Kit, в подкаталоге “wme_demo”.

Окно разделится на четыре части. Левая часть содержит глобальные свойства открытого проекта.

Следующая часть окна содержит дерево проекта. Дерево содержит логические слои в вашем проекте, все файлы и директории. Вы можете перемещаться по дереву проекта подобно тому, как это делается в обычном проводнике Windows. Большинство функций доступно через контекстное меню (щелчок по правой кнопке мышки на узлах дерева проекта вызывает появление контекстного меню).

Правая часть является областью предпросмотра (preview pane). Она показывает объект который в данный момент выбран в дереве проекта. Предпросмотр помогает осуществлять навигацию и перемещение в проекте.

И последняя рабочая область, которая расположена внизу справа, содержит две закладки – помощь (Help) и журнал сообщений (Log). Они отображают либо короткое описание выбранных свойств объектов, либо журнал операций, которые были осуществлены с помощью ProjectMan.

Note

ProjectMan не использует никакой базы данных для сохранения объектов; все что вы видите в дереве проекта – это текущее состояние файлов и каталогов проекта на вашем жестком диске.

Вы можете использовать ProjectMan для решения широкого круга различных задач, чаще всего таких как:


Создание новых объектов

В дереве проекта можно видеть папки, в которых вы можете создавать те или иные объекты. Например, если вам нужно добавить новую сцену, выберите папку “scenes”. Сделайте правый клик на этой папке, и появится контекстное меню. Выберите пункт “Add” (Добавить). Появится дополнительное меню, которое будет содержать список объектов, доступных для добавления. Как только вы выберите, какой новый объект нужно создать, появится окно выбора шаблона “Template selection”. В окне нужно выбрать шаблон, который станет отправной точкой для вашего нового объекта. Вам нужно сразу заполнить необходимые свойства и назначить имя объекту. После этого вы можете нажать кнопку “OK”, и новый объект будет создан.

Кроме того, вы можете создавать объекты, импортируя в проект существующие файлы или каталоги. Для этого используется команда “Import” в контекстном меню. Команда импорта обычно используется для импорта графики и файлов звука, что удобнее, чем обычное создание объекта в WME, происходящее с использованием шаблонов.


Редактирование существующих объектов

Редактировать уже существующие объекты очень просто. Достаточно сделать правый клик мышкой в дереве проекта на нужном объекте, и выбрать команду редактирования «Edit…». Другой способ – просто сделать двойной клик на нужном объекте. ProjectMan сразу вызовет редактор, соответствующий тому или иному типу файлов. Какое приложение-редактор будет вызвано, зависит от стандартной ассоциации файлов в Windows. Это позволяет переопределить вызываемые приложения так, как вам это необходимо. Например, скрипты (файлы *.script) по умолчанию будут открываться в Блокноте Windows. Но вы так же можете открывать скрипт-файлы в другом текстовом редакторе по вашему выбору.

Note

ProjectMan не работает как полная замена проводника Windows, и многие файловые операции в нем недоступны. Но в вашем распоряжении есть команда «Explore» в контекстном меню. Если щелкнуть правой кнопкой мышки на нужной папке в дереве проекта, а потом выбрать команду «Explore», ProjectMan откроет эту папку в отдельном окне проводника Windows.


Запуск игры

Если вы хотите протестировать вашу игру на выполнение во время разработки, то это можно сделать прямо из ProjectMan. Выберите команды “Project->Run game” или просто щелкните на иконке “Run game” на панели инструментов.

Запомните, вам ничего не нужно компилировать для того, чтобы запустить игру. Движок способен оперировать файлами, просто размещенными на вашем жестком диске. Единственное, когда имеет смысл компилировать игру – это когда вы подготавливаете игру для издания (делаете финальный релиз). Однако имеет смысл время от времени компилировать игру, так как процесс компиляции способен выявить многие синтаксические ошибки в скриптах.

Перевод Сергея Степанова AKA Xintrea
http://xi.net.ru