Alawar Engine. Частина третя. Створюємо гру на демо-версії движка

Всім привіт. Ось і настала черга нашої чергової статті. В першій ми познайомили вас з робочими процесами нашої студії і побіжно згадали тулзи, якими ми користуємося при створенні ігор. друга стаття була присвячена платформ движка Alawar Engine і призначалася багато в чому для тих, хто вже стикався з подібними питаннями в своїй роботі. До слова про платформ - 13 березня вийшла наша гра для PlayStation 3 , Яку ми вперше створили на движку Alawar Engine. Крім платформ движок підтримує і Мультижанровий, так уже були випущені гри в таких жанрах як: арканоид Hyperballoid 2 , Match-3 The Treasures of Montezuma 2 , аркада Space Op (iOS) , Готується до випуску тайм менеджер із серії «Весела ферма».

У третій статті ми докладніше зупинимося на процесі створення гри. Вашій увазі пропонується демо-версія движка Alawar Engine , А дана стаття буде служити свого роду інструкцією по роботі з ним.

Гру можна створити, використовуючи тільки мови програмування, без якихось додаткових програм та інструментів. Однак багато моментів при створенні ігрових проектів, що містять велику кількість ресурсів (зображень, відео, звуків і текстів), вимагають істотної оптимізації. Додавати і змінювати властивості цих ресурсів набагато простіше через візуальний редактор, ніж в коді гри або конфігураційних файлах, а набір фреймворків істотно полегшує процес створення гри. Саме тому представлений движок - це не тільки набір бібліотек, написаних на C ++, але і потужний інструментарій, за допомогою якого процес створення ігор істотно спрощується.

Центральним додатком, навколо якого крутиться створення ігрового процесу квестів жанру «пошук предметів», є Quest Editor. З його допомогою ми створюємо нові сцени (інтерфейс гри), розміщуємо на них об'єкти (зображення, відео, анімацію), прописуємо сценарну логіку гри і взаємозв'язок подій і сцен. Інтерфейс Quest Editor являє собою три області, які містять:

  • список сцен і рівнів, наявних в грі, а також ресурсів (зображення, відео, кліпів) доступних для додавання на сцену (вкладка Resource);
  • екран попереднього перегляду сцени, на нього можна швидко додати новий об'єкт, створити ігрову область;
  • вікно зі списком об'єктів і настройками їх властивостей.
Всім привіт

У демо-версії вже є набір ресурсів, розташованих на ігрових сценах: при роботі з демо-версією движка ви можете самостійно додавати в гру нові зображення, звуки, тексти або відео (і сюжетне відео між сценами, і відео, що запускається при натисканні на об'єкт ). А так же в проект додані дві міні-ігри і наведені приклади функціонування блоків скріптованія, з яких складається невеликий геймплей. Будьте уважні, в демо-версії введено обмеження на кількість додаються об'єктів - 500 зображень, 50 звуків, 70 кліпів, 100 рядків.

Для того щоб нові зображення стали доступні в ігрових ресурсах їх необхідно помістити в папку 1.0-demogame-templatelivegameimages. Зверніть увагу, що всередині цієї директорії знаходяться папки, кожна з яких пов'язана з певною складовою гри. Так, наприклад, в папці font лежать ігрові шрифти, а в папку scenes потрібно додавати зображення, які згодом будуть додані на відповідні ігрові сцени.

Після того, як зображення додані в папку, необхідно запустити додаток Image Resource Editor (1.0-demogame-templatelivegamerun-image-resource-editor.bat). Воно оновлює файл resource.xml, в якому зберігається інформація про всі зображеннях. Крім того в ньому можна встановлювати параметри зображень і анімації.

Щоб додати до гру нових відео-файлів досить помістити їх в папку 1.0-demogame-templatelivegamevideo. У грі існує поділ на відео - це повноцінний, закодований відео потік в форматах webm або ogg; і кліпи - це анімація, «жваві» картинки. Відео може бути якіснішою, але в той же час і більш ресурсномісткої компонентою. Його зазвичай використовують, якщо треба показати якісь ефекти, наприклад, вибухи, магія, анімація персонажів, анімація води. Прості, повторювані дії краще реалізуються кліпами. Для створення кліпів використовується додаток ClipMaker, а для анімації частинок Particle Editor (в демо-версію вони не включені).

Всі тексти зберігаються в файлі strings.xml, додавання нових рядків здійснюється простим редагуванням даного файлу. Додавання звуку в гру відбувається шляхом копіювання файлів в папки gamemusic і gamesounds. Типи відтворюваних звуків прописується в soundtemplates.xml, а самі файли в sounds.xml в папці gameproperties.

На цьому ми закінчимо короткий огляд того як додається ігровий контент і перейдемо безпосередньо до створення гри.

Запустіть Quest Editor (1.0-demogame-templatelivegamerun-quest-editor.bat), в лівому вікні виберіть рівень Example і Scene01. У розгорнулося списку двічі клацніть на пункті Scene01. У центральному вікні відкриється зображення сцени з усіма доданими на неї об'єктами. Під вікном сцени розташована область для додавання блоків скріптованія, за допомогою яких задається логіка гри. У правому вікні знаходиться вікно з властивостями сцени і список об'єктів, розташованих на ній. Клікнувши на об'єкті в списку ви виділяєте його в вікні сцени, а у вікні Properties відображаються його властивості.

Клікнувши на об'єкті в списку ви виділяєте його в вікні сцени, а у вікні Properties відображаються його властивості

Я не буду детально зупинятися на описі блоків і команд, які присутні в Quest Editor - ця тема занадто широка і тому, я думаю, не потрібно її розкривати в рамках цієї статті. Але для тих, хто вирішить всерйоз підійти до ознайомлення з процесом створення гри, в папці 1.0-demodoc лежить детальна документація.

Тут ми розберемо приклад додавання в проект міні-ігор, які можуть виступати як в якості ключових моментів в проходженні гри, так і не впливати на нього. Перед написанням міні-ігри в Quest Editor створюється окрема сцена і на ній розміщуються всі необхідні об'єкти. Наприклад, сцена Scene01_Minigame в Quest Editor. Таким чином готується графічна складова для міні-ігри, після чого можна приступати до програмування.

З точки зору движка міні-гра представляє собою клас, який створюється при розблокуванні блоку міні-ігри і видаляється після виконання цього блоку. У блоці прописується ідентифікатор міні-ігри, за яким створюється об'єкт. Попередньо цей ідентифікатор повинен бути зареєстрований в движку.

Попередньо цей ідентифікатор повинен бути зареєстрований в движку

Поки блок міні-гри не розблоковано, вона не буде отрісовиваться і реагувати на дії користувача. Після того як міні-гра розблокується, вона може почати працювати, але її проходження може бути неможливим. Наприклад, якщо гравець не знає потрібний шифр для проходження і повинен спочатку його знайти. Для цього використовується вхід умови. І тільки після того як все підключення до всіх входів відпрацювали, міні-гра працює і проходиться.

Міні-ігри повинні бути успадковані від класу game :: CMinigame і мати свій унікальний строковий ідентифікатор, за яким повинна бути зареєстрована в qe :: CMinigameFactory. У шаблонному проект виділено окремий файл, в якому відбувається реєстрація всіх міні-ігор: Game / Minigames / RegisterMinigames.cpp.

Вся ініціалізація повинна відбуватися в методі Init. Методом Update викликається кожен кадр, в ньому слід розраховувати логіку міні-ігри. Draw дозволяє міні-грі відображати ресурси поверх сцени, до якої прив'язана міні-гра. OnMouseClick і OnMouseMove відловлюють події миші. Для завершення міні-ігри вона повинна викликати OnMinigameComplete. Щоб запустити гру з Quest Editor натисніть кнопку Play, при цьому ви зможете як перевірити основний ігровий процес, так і додані міні-ігри.

Щоб перевірити ігрову логіку, до запуску гри в Quest Editor присутній система валідації, яка дозволяє відловлювати різні баги і невідповідності, що з'являються при складанні і скріптованія сцен в редакторі. Наприклад, якщо спробувати викликати об'єкт сцени в блоці або команді, система валідації перевірить, чи існує даний об'єкт. Якщо він відсутній, вона позначить його як об'єкт з помилкою, обвівши в червону рамку або поставивши поруч з проблемою знак оклику.

Крім того, на верхній панелі розташована іконка жука, на якій відображається кількість знайдених в геймплеї багів. При натисканні на неї відкривається їх повний список з докладною інформацією та зазначенням сцен, на яких знаходиться проблема. Баги упорядковано відповідно до рівнями.

Баги упорядковано відповідно до рівнями

Після того як гра створена, її можна скомпілювати, щоб оптимізувати файли гри і підвищити швидкість її запуску. У демо-версії движка додана можливість збірки ігор під Windows (збирається за допомогою Visual Studio 2008) та Mac (збирається в XCode 4.5). Гру можна запускати і без складання - в Windows для цього запустіть файл game_release.exe в папці game. Щоб зробити те ж саме під Mac, наберіть в консолі mac_run.sh, перебуваючи в папці game.

Додатки, що йдуть в комплекті з двигуном, не мають прив'язки до різних жанрів, тому за допомогою движка Alawar Engine сьогодні створюються гри різних жанрів - це квести, економічні симулятори, стратегії, які поширюються, зокрема, і по free-to-play моделі. Звичайно, застосовувати Quest Editor найдоцільніше при створенні квестів, тому що в ньому закладено мову скріптованія, що дозволяє вибудувати чітку послідовність проходження гри. В інших жанрах це додаток використовується для додавання ігрових об'єктів, відео та кліпів на ігрові сцени. Ігрова механіка створюється на C ++ і зв'язується з об'єктами через їх id.

PS Якщо в процесі створення гри у вас виникнуть питання по движку, ви можете скористатися документацією, яка лежить в папці doc /. Або поставити їх в коментарях до статті.

PPS Програмне забезпечення у вигляді завантаження, розташованого за посиланням pubext.alawar.com/AE-1.0-demo.zip , Надається тільки і виключно в ознайомлювальних (демонстраційних) цілях. Будь-яка спроба комерційного використання програмного забезпечення, його декомпіляції, дезассемблірованія, модифікації є порушенням виняткових прав.

Автор: EgorGutorov

джерело

Дополнительная информация

rss
Карта