Мобільна гра на Unity. Перший млинець...

Мобільна гра на Unity. Перший млинець...

Після завершення створення гри-головоломки на Unity і випуску її на Google Play і AppStore, з'явилося бажання поділитися досвідом і враженнями. І отримати конструктивні зауваження і пропозиції, якщо такі виникнуть

Командна робота

Отже, проект робився на Unity 4.5 Free зусиллями 5 осіб у вільний від роботи і домашніх турбот час. Для організації командної роботи ми використовували сервіс Bitbucket - там якраз до 5 осіб можна додавати в проект безкоштовно. Система контролю версій - Git. Наскільки я зрозумів, Unity PRO має свою систему контролю версій, але ми вирішили не купувати PRO і не хакати - юзалі Free

Першою проблемою, з якою зіткнулися, було досить складне зливання змін, внесених різними розробниками. Файли Unity проекту - форми, префаби тощо - мають свої своєрідні формати, і як текстові файли не зливаються. У підсумку ми просто розділили відповідальність: більше однієї людини не правили одночасно одну форму або один префаб. Цього нескладно домогтися, якщо правильно розподіляти завдання. З файлами скриптів на C #, звичайно, ніяких проблем не виникло, їх правили одночасно

Продуктивність

Проект вирішили робити в 2D. Підсумкова картинка формується з 3 шарів: підкладка, тінь від елемента і елемент

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

Ми зайнялися оптимізацією - зменшили розміри текстур елементів, зібрали текстури в атласи. FPS стали вище, але батарейка як і раніше висаджувалася дуже швидко. Тоді ми зробили механізм зниження FPS в ті моменти, коли користувач не переміщує елементи, і немає ніякої анімації

Виглядає він приблизно так: є словник, де ключами служать різні анімації і дії користувача. Кожен ключ відповідає цілій кількості - лічильнику. Анімація або дія інкрементує лічильник, коли завершується - декрементує. Коли за всіма ключами лічильники = = 0, ми знижуємо FPS:

Application.targetFrameRate = Constants.CountFPS_Min ;//= = = 10, у нашому випадку

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

Окремою темою може служити, як ми буцалися зі шрифтами і взагалі GUI в Unity. Це була не дуже проста робота. Але, на щастя, в Unity 4.6 все значно перероблено і поліпшено, так що зупинятися на цьому не буду

Випуск

У момент виходу на Google Play, ми написали на кілька сайтів і форумів про нашу гру. Це дало перший пік закачувань:

Потім ми потрапили в «Топ набираючих популярність» у розділі Головоломки. Після цього все устаканилося на рівні 150 закачувань на день. Наступний пік був через 3 тижні - ми потрапили в розділ «Схожі» до наших основних конкурентів - «Lazors» і «Dr. Laser». На поточний момент у нас 200 закачувань на день

Гра має внутрішні покупки - можна відкривати глави без проходження рівнів і купувати підказки. Найбільшим попитом користуються саме підказки, особливо найменший пакет - 20 підказок за 1 $. Чистий прибуток на день становить зараз близько 200 руб.

Цікаве спостереження: поліпшення гри, додавання музики, більш складних рівнів, зміна дизайну тощо - не призводить до підвищення рейтингу гри (місця в пошуку) і збільшення закачувань, але збільшує число покупок. Отак

За відсутності професійного дизайнера, корячилися з іконкою самостійно:

Ще одне цікаве спостереження: я витратив кілька днів, щоб зробити рекламний ролик, а потім виявив, що його переглядає дуже мала кількість людей, які приходять на сторінку програми. Чи варто було?

Через місяць після виходу на Google Play, ми вирішили вийти в AppStore. Теж з мінімальною рекламою на декількох форумах. Виглядав наш вихід ось так:

Називається: піднявся і впав... Перші п'ять днів принесли нам 1,5 тис закачувань і 45 $, а потім все плавно опустилося до 30 закачувань на день і 2 $ денного доходу

Було прийнято наступне рішення: ми видалили гру з AppStore, допрацювали її і виклали під новим ім'ям. Зараз у нас Дубль # 2, трохи пізніше зможу розповісти, що нам принесло це рішення

Аналітика і покупки

У якийсь момент ми вирішили додати в нашу гру збір аналітики. Додали Google Analystics (далі - GA), використовуючи плагін для Unity GoogleAnalyticsV3. Сама інтеграція аналітики зовсім не складна. Якщо цікаво, можу в окремій статті описати, як це найкраще зробити

Хочу зазначити, що саме подання даних у web-інтерфейсі GA не найзручніше. Я експортую дані в XLS і працюю з ними вже в Excel. Та й запис аналітики в GA можливий тільки в рамках заданих шаблонів. Якщо проводити якийсь серйозний аналіз поведінки користувачів, то напевно варто використовувати свій сервер статистики і збирати інформацію в бажаному форматі. Ну, ще є інші сервіси статистики - той же Flurry. Але я про них нічого сказати не можу, бо не юзав

Ну і на останок розповім про одну проблему, з якою ми зіткнулися. Сподіваюся, моє попередження комусь допоможе

Для організації внутрішніх покупок ми використовуємо плагін Soomla версії 1.5.3. Тиждень тому ми додали в гру нову покупку - відкриття 6 глави. Встановили собі на телефони, перевірили, що все працює. Залили на Google Play. І отримали купу гнівних відгуків! Чому? - тому що, як виявилося, при першій установці нашої гри, всі покупки працюють як треба. Але при оновленні гри, Soomla не підхоплювала нову покупку, і користувачі спостерігали цікаве місце з 6 главою. Можливо, справа в тому, що Soomla кешує на телефоні список покупок і при оновленні не знаходить нову...

Ми просто обійшли цю проблему в наступному оновленні. Але глобальний висновок напрошується сам собою: при оновленні гри, обов'язково потрібно тестувати і те, як гра поводиться при «чистій установці», і те, наскільки коректно проходить оновлення

Епілог

Цей проект для нас дебютний. Ми навчилися працювати разом, набили пару шишок з Unity і Маркетами. Попереду інший, великий і серйозний проект. І, сподіваюся, успіх!

Буду радий обговоренню та обміну досвідом!

Image