Unity Brothers. Inception

Unity Brothers. Inception

Ahoi, людство!

А у нас свято. І не просто день народження якогось менеджера чи художника. Дійсно істотні зміни дістались затишного куточку розробників ігор stfalcon.com. Загалом, тиждень тому ми відкрили для себе новий та захопливий світ Unity, а декілька днів тому було створено окремий репозиторій нової гри саме на цьому ігровому двигуні! Тому — “To infinity and beyond!”, як казав один відомий дослідник.

До цього були і AndEngine і LibGDX, та навіть Cocos2d. Про те, що змушувало нас шукати нові технології та двигуни можна прочитати в попередніх статтях, а сьогодні хочеться поділитись враженнями саме від Unity, а відтак ласкаво просимо до нового циклу статей — Unity-bros.

Чому Unity?

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

  • кросплатформність;
  • актуальність;
  • знайома мова програмування;
  • швидкість розробки;
  • низький поріг входження в технологію;
  • ціна використання технології.

Мало того, що Unity відповідала цим вимогам, так ще й маркетологи з Unity Technologies зробили геніальну штуку, яка дозволила їм в рази підняти кількість ігор, що працюють на їх двигуні. Все, що вони зробили — дозволили використовувати безкоштовно їх продукт для компаній, чий прибуток за минулий рік не перевищує певний ліміт.

Єдиною проблемою було лише те, що середовище запускалось під Windows та MacOS,, проте керівництво дало згоду ііііі… почались робочі будні.

Зважаючи на те, що ми також лише починаємо своє знайомство з даною технологією, час від часу будуть з'являтись нотатки та статті про деякі особливості чи проблеми, через які було пройдено та рішеннями, якими хотілось би поділитись. І сьогодні я розповім про початок. Початок усього…

Відмінності

Головна відмінність від минулих ігрових двигунів та фреймворків — саме скриптованість. Можна було б ще й віднести компонентну систему, що при першій зустрічі мене, як молодого розробника, який усе уявляє у світлі ООП парадигми, змусила виламувати руки та виривати волосся. Проте тут потрібно віддати належне моєму майстру-джедаю Бевзі Антону — дякуючи йому, останній проект на LibGDX використовував даний підхід до організації ігрової логіки, що дало мені час акліматизуватися. За це окремий brofist, master ;-).

Editor

Unity Brothers. Inception

Графічний редактор — це було щось. Коли вперше все завантажується, здається, що потрапив у Windows з DOSу. Не звично те зовсім розробникам, що звикли “код писати, а не мишею совати” :-). Та як виявилось пізніше — то справді інший рівень. Можливість “на льоту” змінювати властивості об'єктів та бачити результат без ребілду та рекомпіляції проекту, що було необхідним на минулих технологіях, дала суттєвий приріст в продуктивності та відкинула необхідність гейм-дизайнеру, сидіти поруч з розробником, балансуючи гру, та кожного разу просити зібрати проект, щоб його протестувати.

Більше того, Editor дає можливість налаштовувати взаємне розташування всіх об'єктів у певні layout”и та далі їх зберігати. Так, при розробці 3d-гри робоча область програміста може суттєво відрізнятись від 2d match-3, а переключення між ними можливе у декілька кліків.

Unity Remote

При розробці мобільних додатків у будь-якому випадку потрібно тестувати свій продукт на реальних девайсах. Саме це є причиною збільшення й розширення (при нагоді) зоопарків пристроїв. І творці Unity про це знали. Тому й було додано функцію Unity Remote — можливість в реальному часі запускати свої ігри на справжньому девайсі. При цьому робота з середовищем продовжується таким самим чином, якби ми запустили додаток просто з нього. Головна вимога — встановити додаток Unity Remote з GPlay, що розповсюджується безкоштовно. Далі справа техніки ;-). Тиснеш Play в едіторі — і буде тобі щастя.

Звісно, що система ця поки що не ідеальна. Доволі помітно просідає FPS, порівняно з роботою в самому середовищі, необхідність відтанцювати з бубном, щоб вперше все підключити, а при випадковому закритті Unity Remote часто потрібно перезавантажувати все середовище, щоб знову налаштувати підключення. Проте технологія розвивається, і є сподівання, що не в такому далекому майбутньому все сягне нового рівня.

Ось так буде виглядати сцена в едіторі після підключення Unity Remote:

Unity Brothers. Inception

Як бачимо, нічого не змінилось. Ми досі можемо перемикатись між режимами перегляду (сцена, гра, консоль). При цьому на девайсі можемо спостерігати відповідну картину:

Unity Brothers. Inception

На мою думку, ключовим моментом, коли чаші терезів похитнулись на користь Unity, стала конференція DevGamm, на якій були присутні наш game-designer/manager та шеф. Із сотен проектів, було представлено лише 4 на cocos2d та 2 на LibGDX. Вгадайте, на чому були решта? :-) Ото ж бо й воно: величезна спільнота розробників, наявність офіційних та (в рази більше) неофіційних туторіалів, можливість отримати відповідь від техпідтримки — все це суттєво спрощує рівень входження. Так, наприклад, найпростіший прототип нашої першої гри SameGame зайняв 1,5 дні. При тому, що сумарний досвід роботи обох розробників із двигуном складав від сили тиждень.

Тому я хочу вірити, що попереду в нас лише успішні ігри, які приноситимуть користувачам фан, а нам — стимул розвиватись та робити цей світ краще... Ну, або хоча б наші ігри :-). Так що до наступних зустрічей з #UnityBroz.

So Long, and Thanks for all the Fish.