(Не)Вдалий досвід розробки під Android на Unreal Engine 4

Доброго дня, панове професіонали! Хочу написати статтю від лиця аматора. Коротко про себе: людина, яка зі шкільних років мріяла стати програмістом, але ним не стала.

В листопаді вирішив глянути урок на сайті Unreal Engine під назвою Twin Stick Shooter. І при перегляді уроку у мене виникла ідея про створення подібної гри на Android, хорошим мотиватором було і те, що у мене був наявний Dev аккаунт в Google Play.
Мета: 1) написати гру в короткі строки до відпустки, часу було 6 тижнів (вечорами після роботи і вихідні); 2) успішно пройти модерацію та уникнути бану. Що могло спровокувати бан? Гра в жанрі політичної сатири.
Хочу уточнити, що майже весь код був написаний на Blueprint, тільки базові класи були на С++ та взяті з туторіала — Main Hero та Enemy Character.

Розробка: у мене є друг, який доволі добре володіє Photoshop. 3d моделерів, які були готові працювати на ентузіазмі, на жаль, я не мав, тому головного героя і зомбі було зроблено в Adobe Fuse та анімовано в Mixamo. Текстури перемалював мій друг. Зброя та ассети для оточення були завантажені з Open Source джерел.
На допасування анімацій, створення нових текстур та базового функціоналу: таймеру та механізму респавну (з плейсхолдерною кнопкою «Watch Ad») в мене пішли одні вихідні. І тут була закопана собака: я допустив величезну помилку, не запустивши білд ні разу за вихідні на реальному пристрої (в Анріалі це займає 10 хвилин приблизно). І ось, на пристрої ані героя, ані зомбі не було видно. Далі мене шукав тиждень пошуків і зневіри, коли дійсно хотілось закинути розробку.
Проблему я знайшов на наступні вихідні, натрапивши на одне єдине повідомлення на форумі. Проблема була в тому, що параметр Max Bones для скелету персонажів після імпорту з Adobe Fuse був за замовчуванням 20, а OpenGl 2.0 для Android підтримує максимум 4.

І ось, я завантажую пробну версію 3ds Max вперше в житті, і шукаю як виправити скелет та підправити анімації. На це у мене пішли цілі вихідні.

Наступним етапом було завершення базового функціоналу: анімації атаки і смерті, система розвитку скіллів персонажу, імплементація звуків (репліки озвучені другом, все решта open source). Було вирішено зробити добровільну рекламу.
Найтяжчими були завершальні вихідні. В п’ятницю заздалегідь я відправив на премодерацію і Age rating сирий білд, і тут був неприємно здивований — кількість підтримуваних пристроїв 3600 з понад 16000. Проблема двіжка і його прожорливості: змінити щось означало замінити двигун, тобто почати все спочатку.

Під кінець «порадував» Unreal Engine, в якому функціонал для AdMob був неробочим уже декілька версій. Був лише платний плагін для реклами за 3500 грн, з моїм бюджетом в 0 гривень не розглядався як варіант. Погугливши, я знайшов плагін безкоштовний від одного китайського розробника, тільки на жаль, перед цим я здуру перейшов на версію двигуна 4.24, а плагін був для 4.23. (назад перейти в Unreal Engine на стару версію неможливо). Чудом я знайшов контакти цього китайця і він ідеально по таймінгу в неділю випустив нову версію.

Фінал: і ось, я таки відправив білд на реліз. Це були найтяжчі 3 дні моїх очікувань, я боявся отримати бан. Отримав лише одне попередження про неповну політику конфіденційності, але швидко це виправив і гра зарелізилась.
Результат: гра в релізі до відпустки, як я і хотів. На жаль, лише один рівень, але основним завданням було випустити гру в світ. Дуже важливо, в тяжкі для країни часи творчо виражати свій протест.

Висновок: якби я знав на початку, про усі ці труднощі, про кількість пристроїв, на яких гра підтримується я б на 1000% не вибрав цей інструмент. Або взагалі не починав)
Стаття не є піаром, а лише ділюсь гірким досвідом. І прекрасно розумію, що такого рівня гру професіональний програміст зробив би за тиждень. Але маємо що маємо. Усім дякую за увагу і хорошого дня!

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Те що перший проект не вистрілив (ще все можливо:) ), то не біда.
Поважаю, що зробив забавку до релізу, яка б вона не була там.

UPD: Забрав посилання на гру, яке додав раніше по просьбі. Ціллю розповіді є труднощі, які можуть виникнути у інших початківців при роботі з Анріал під Андроїд, а не піар, як подумали деякі недалекі співвітчизники.

Накидати фрішних ассетів і недокод на блупрінтах це тепер розробкою називається? Такі проекти школярі щодня клєпають
inb4 ваша думка дуже важлива для нас

У меня с анриалом было недельное знакомство
История такова: была у нас студия с другом, от нас уходил инвестор, а мы не хотели этого, нужно было как-то его заинтересовать, чтобы продолжил финансирование. Вообщем решили ему что-то показать.
Почитал пару дней доки по анриалу, где-то взяли ассеты и быстро на коленках сделал довольно убогую демку шуточной игры «Пьяный гном», залили в стим гринлайт, быстренько набрали голоса, прошли, запитчили инвестору — смотри это востребовано и нужно. Ему понравилось.
Естесственно делать ее не стали, забили, но обеспечили финансирование текущих проектов почти на два года, хех

youtu.be/sLH7Yuzxy78
youtu.be/jkczQPmNGeE

Доволі таки непогано виглядало) А подальші проекти були геймдевні?

Схоже на ВарКрафт ваші гноми.

Дуже важливо, в тяжкі для країни часи творчо виражати свій протест.

это как гей-парады и «вопли я веган», всем плевать и на тебя, и на твое творчество, скачают только твои друзья, родственники и такие же как ты, получится около 100 скачиваний и потом все канет в лету, если жизнь ничему не учит ты продолжишь в том же духе, в итоге все равно сдашься и будет тоже ощущение когда сделал тестовое задание, а тебе даже не ответили :)

Ваша думка дуже важлива для нас
P.S: У харьків фетіш шукати скрізь гей паради?)

Ваша думка дуже важлива для нас

видимо да, раз вывалил нам свои поделки, ещё и рекламировать пытаешься чтобы хоть мизерное внимание привлечь

P.S: У харьків фетіш шукати скрізь гей паради?)

учись формулировать мысли, я не могу распарить этот поток сознания

Unreal engine отлично загоняет поддержку всех иос и ведроидов, нужно было просто настроить деливеринг. Если вы сами ничего не знаете о инструменте, то это 1000% вашей криворукости в изучении вопроса, а не софта (сами написали, что билд не делали, значит и скрины оптимизации миснули, и LOD не настроили и ресурсы сразу под это все не зарезервировали, в итоге и получили прожеру).

Добре, дякую за зауваження. Поділіться, будь ласка, прикладами власних робіт, з пруфами на авторство — дуже цікаво глянути роботу професіоналів

Unreal engine отлично поддерживает андроиды всех мастей! Просто нужно было почитать релизные ноуты и разницу запекания на разные версии. Есть универсалка с поддержкой всего и всея. Незачем винить инструмент, коли руки до конца в нем не выровняли!

Проблема була в тому, що параметр Max Bones для скелету персонажів після імпорту з Adobe Fuse був за замовчуванням 20, а OpenGl 2.0 для Android підтримує максимум 4.

opengl-у фиолетово количество «костей». он такими понятиями вообще не оперирует

Спробуйте тоді імпортувати модель з Adobe Fuse без змін і запустити проект під ES 2.0. Вас чекає сюрприз)

мы вообще на разных языках говорим. причем я не про русский и украинский

Вибачте, я аматор. Просто кажу, як я пофіксив проблему зміною параметру макс бонес. Чому я сказав про ЕС 2.0? Бо на ЕС 3.0+ все відображалось коректно.

Одна в баре лишнего говорит, другой игру пишет, вы там поехавшие шоле?

Хорошая статья, молодец что довел задумку до реализации в короткие сроки.

доступ к контактам? рили?

а где ссылка на поделку?

здесь нельзя, в тексте статьи можно:)

Хотів гру на мільйон за три копійки — отримав гру на три копійки. Біда, біда

Ваша думка особливо важлива для нас. Особливо при тому, що ніде не йшлось про очікування від гри успіху)

Подписаться на комментарии