В роботі пропонується опис створення 2D гри в середовищі Unity2D для ПК на базі операційної системи Windows. Зміст гри полягає в тому, що гравець проходить пригодницьку подорож, сюжет якої придуманий автором. Під час подорожі гравцю зустрічаються друзі і недруги, з якими слід правильно взаємодіяти, щоб зберегти життя. Гра має декілька рівнів. Програмний продукт реалізований мовою програмування C#. Для покращення користувацького інтерфейсу використовуються готові рішення з Unity Asset Store, а для написання скриптів – Visual Studio та мова програмування C#.
На першому кроці створення гри продумано жанр, сюжет та підібрано потрібні для розробки гри асети. Наступним кроком було створено проєкт на основі платформи Android. Всі ігрові ресурси (анімації, спрайти, скрипти, аудіо та відео) збережені в папці, яка створюється разом з проєктом.
Гра складається зі сцени Game. Сцена містить об’єкти гри, камеру, яка захоплює і відображає світ гравцеві, освітлення та об’єкти, задіяні в процесі гри. У процесі створення головного меню використовувалися UI елементи (Image, Button, Text). Всі UI елементи повинні бути розміщені на компоненті Canvas.
Canvas – це область, усередині якої розміщуються всі елементи користувацького інтерфейсу (Text, Image, Button). Text – відображає текст, можна змінювати колір, розмір, та шрифт. Image – відображає зображення. Button дозволяє створювати функціональність гри. На кнопку можна додавати sprites або задавати колір. З компонентом Button створюється компонент Text для відображення тексту кнопки, якщо текст не потрібен, то цей компонент можна видалити. При додаванні будь-якого UI елемента Canvas створюється автоматично.
З допомогою інструментів штучного інтелекту було намальовано та створено майже всі UI-елементи, включаючи задній фон і мій логотип. Частину з них можна побачити на зображеннях нижче (Рис.1, Рис.2, Рис.3).
Рис.1 Рис.2
Рис.3
Для сюжету гри було створено діалоги з допомогою анімацій, звукових та візуальних ефектів в програмі Unity. При запуску гри з’являється діалог який починається з невеликою передісторією до гри (Рис.4). На екран відео виводиться завдяки елементу Canvas.
Рис.4 Рис.5
Після закінчення першого діалогу було розміщено об’єкт із назвою локації. З допомогою аніматора в середовищі розробки було створено анімацію зникання і появи слів. Створено анімації для героя та монстрів.
Меню вибору (Рис.5), воно ж головне меню, містить декілька кнопок з назвами, кнопку “New Game”, яка оновлює ввесь прогрес гри, кнопку “Continue”, “Load” яка дозволяє вибрати інший профіль збережень, та кнопка “Options” для того, щоб увімкнути або вимкнути музику.
У кнопок з “Continue” і “Load” створено обмеження, наприклад, якщо нема файлів збереження, то кнопки будуть прозорі (Рис.5). Щоб почати гру, гравець повинен натиснути на кнопку «New Game» або “Continue” і після цього гра запуститься.
Камера бачить відповідну частину екрану і рухається за головним героєм.
Створено кнопку для того, щоб вмикати чи вимикати музику через AudioHolder та Image, написано відповідний скрипт для правильної роботи повзунків. Кнопки перезапуску та старту поточного рівня також реалізовані з допомогою Button, Image та скриптів. На задньому плані знаходяться об’єкти гори та фон. У верхній панелі знаходяться об’єкти: кнопка «Пауза», що відкриває вікно з 2 кнопками «Продовжити» та «Вихід» (повертає в меню рівнів) та кількість життів. Панель Game over вмикається тоді, коли рівень здоров’я гравця = 0.
При створенні гри були написані скрипти та прикріплені до об’єктів. В процесі створення гри було використано клас ScriptableObject. Це контейнер даних, який можна використовувати для збереження великої кількості даних, незалежно від екземплярів класу. Один з основних випадків використання для ScriptableObjects – зменшити використання пам'яті проєкту, уникаючи копій значень. Було створено скрипт, який успадкований від ScriptableObject. Він містить елементи, в яких зберігаються id до кожного монстра або предмета. Це досить зручно, тому що не потрібно зберігати одразу всі об’єкти на сцені.
Програма є грою із жанру Action, платформер з елементами головоломки.