Wintermute Engine Development Kit

advertisement
Введение в 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
Скроллинг многослойной сцены с учетом параллакса (близкорасположенные объекты двигаются
быстрее, а далекие медленно).
Подсистема графического рендеринга использует 3D-акселерацию. Это обеспечивает быструю
отрисовку и дополнительные графические эффекты - полупрозрачность, альфа-блендинг и
антиалиасинг. WME так же поддерживает программный (неакселерированный) рендеринг - для
совместимости со старыми видеоадаптерами (при этом дополнительные эффекты
заблокированы).
Поддерживается любое разрешение экрана, игрок может выбирать глубину цветности (16bit или
32bit), при этом движок автоматически конвертирует изображение в нужный режим.
Движок поддерживает до 8 направлений перемещения актера.
Гибкий объектно-ориентированный скриптовый язык.
Возможность создания в игре произвольного пользовательского интерфейса.
Поддержка видео в формате AVI.
GUI-инструментарий поможет вам быстро создать игровой контент. Проект-менеджер содержит
множество заготовок для объектов и прочих элементов игры.
Масштабируемое наполнение игры путем использования системы пакетов (package system)
Возможность поддержки национальных языков (локализация игры)
И многое другое.
Графическое разрешение и цветность
Движок поддерживает любое виртуальное разрешение. Ваша игра может быть растянута из
разрешения в ретро-стиле 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 способна сама проверять наличие
обновлений через интернет, и в случае обнаружения обновлений, сама предложит скачать и
установить новую версию.
И много еще чего вкусного
Возможность через скрипт контролировать кадры анимации при наступлении определенных
событий
Механизм сохранения состояния игры
Бесплатная версия движка не содержит никаких ограничений
Никаких ограничений на количество объектов в игре
Поддерживается возможность запуска игры с компакт-диска. При этом диалог Save Games будет
сохранять файлы в каталог «Мои документы».
Реализована поддержка внешних DLL-плагинов
… и многое другое …
Системные требования
DirectX 8.0, Internet Explorer 4.0 или более старшие версии.
Поддерживаются следующие операционные системы:
Microsoft Windows 98/98SE/Me
Microsoft Windows 2000/XP or later
Поддерживаемые форматы файлов
Для картинок - 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.
Для примера возьмем описание объекта «окно».
{
NAME = "test_window"
TITLE = "Test window"
X = 100
Y = 100
WIDTH = 210
WINDOW
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
Download