Всім привіт. Ось і настала черга нашої чергової статті. В першій ми познайомили вас з робочими процесами нашої студії і побіжно згадали тулзи, якими ми користуємося при створенні ігор. друга стаття була присвячена платформ движка 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 відображаються його властивості.
Я не буду детально зупинятися на описі блоків і команд, які присутні в 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
джерело