Співзасновник Nineva Studios про те, як писати плагіни для UE, навчати джунів та отримати грант від Epic Games

У 2021 році львівська компанія Nineva Studios стала одним з переможців конкурсу MegaGrants від Epic Games і отримала 15 тисяч доларів.

Співзасновник Nineva Studios Тарас Леськів розповів нам, чим відрізняється цей ринок, за що саме дали грант Epic Games і що потрібно знати, якщо ви теж хочете податись.

Чим займається студія

Наша компанія існує вже три роки і зазвичай в ній працює 4–5 людей. Я починав з того, що три роки працював у Нідерландах Unity-розробником. Це був стартап, який розробляв SDK під Android, Unity та інші платформи. Ці SDK дозволяли вбудовувати соціальні фічі в мобільні ігри. Наприклад, щоб вставити чат, запрошувати друзів у гру та інші інструменти для залучення гравців. Я займався створенням цих SDK і підтримкою клієнтів.

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

Я тоді зрозумів, що Unity-розробники (і взагалі всі, хто пише ігри на ігрових рушіях) мають проблему з тим, щоб інтегрувати в ігри певні нативні можливості. Скажімо, ви розробляєте гру на Unity. Вона кросплатформна, працює на Android, iOS і решті. Але в кожної платформи є свої нативні функції. Наприклад, вам потрібен доступ до функції Haptic Feedback на iPhone, завдяки якій пристрій вібрує. В Unreal Engine доступу до неї немає. А вам треба побудувати свою гру, де якась механіка зав’язана на такій вібрації.

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

Існують різні SDK під Android та iOS. Наприклад, Firebase — технологія Google, яка дає змогу зробити мобільний бекенд без розробки бекенду (якщо описувати дуже коротко). Оскільки рушій Unity суперпопулярний, то компанія сама створює SDK для інтеграції на Unity продуктів на кшталт Firebase, AdMob для реклами тощо. А на Unreal Engine три роки тому цього не було взагалі.

Отже, ми побачили, чого бракує. Якраз тоді набувала популярності гра Fortnite. Unreal Engine доклав багато зусиль, щоб оптимізувати свій рушій під мобільну розробку, оскільки вони портували Fortnite з десктопів і консолей на мобільний ринок. Ми зрозуміли, що це цікава ніша і що дедалі більше людей будуть використовувати Unreal Engine для мобільної розробки.

Тож почали писати плагіни. Звісно, деякі з них значно популярніші за інші. Найбільше використовують рішення для інтеграції з Firebase, реклами через AdMob, плагін для внутрішньоігрових купівель і монетизації.

Звучить доволі смішно, бо ж Unreal Engine — це рушій, що має вбудовані внутрішньоігрові купівлі. Але вони дуже відстають з інтеграцією нових фіч. Ми продаємо плагін Unreal Engine для внутрішньоігрових купівель на Android та iOS — і він має попит, хоч як дивно це не було б.

Плагін Nineva Studios для монетизації

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

Про проєкт, який отримав грант від Epic

Ми три роки писали різні плагіни, дивилися, чого немає на ринку. І три роки поспіль подавалися на грант від Epic Games. Цього року на нас нарешті звернули увагу й дали винагороду.

Ми не подавали на грант один конкретний плагін. У магазині їх 12, і ми оформили це як комплексне рішення, що спрощує життя людям, які розробляють мобільні ігри під Unreal Engine. Цей рушій суттєво відрізняється від Unity з того погляду, що його порівняно мало застосовують для мобільної розробки — значно рідше за Unity.

Unreal Engine частіше використовують під AAA-ігри, серйозніші візуальні штуки, адже він доволі важкий і потребує серйознішого «заліза», відповідно може дати крутішу візуальну компоненту. В Unity теж є свій магазин, де публікують багато інструментів для мобільної розробки (і в нас, до речі, теж є плагіни і для Unity). Але суттєва різниця в тому, що в Unreal Engine Marketplace набагато менше всього, ніж у Unity Asset Store.

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

Що можна порадити розробникам, які подаватимуть заявки на грант

Насамперед варто розділити проєкти за типом. Тому що Unreal Engine дає гранти за різні категорії продуктів. Там є ігри, інструменти для розробників, освітні проєкти, анімація тощо. Наша категорія — це саме інструменти для розробників. Я можу радити щось лише для цієї ніші.

І тут передусім потрібно мати щось вартісне. Тому що в категорію ігор можна подаватися, маючи простий прототип. Є розробники, які подають лише відео і початкові варіанти геймплею. Натомість у категорії інструментів треба мати вже готовий і цінний продукт.

Основний посил при подачі на цей грант — проєкт має бути або крутим візуально або ви маєте приносити користь ком’юніті Unreal Engine. Про неї треба максимально розповісти у заявці. До речі, грант дають і опенсорсним, і комерційним проєктам.

Як обґрунтувати в заявці суму, яку хочете отримати

Ми отримали грант на 15 тисяч доларів, а насправді просили трохи більше, 25 тисяч. Обґрунтовували це тим, що хочемо купити краще апаратне забезпечення, потужну машину для білдів тощо. Також обіцяли, що завдяки отриманим грошам втілимо певні плагіни, які тоді були в планах. Але ми зробили їх і без цього.

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

Контролю за тим, як ми витрачаємо грант, немає жодного. Це передбачено умовами гранту, там діє принцип no strings attached. Тобто ми даємо вам гроші, можете розпоряджатись ними на власний розсуд, бажано витратити на те, що просили.

Крім того, вони надіслали купу документів з юридичними умовами. Я уважно їх читав і знайшов доволі цікаві речі, наприклад, не можна чомусь купувати апаратне забезпечення за отриманий грант. Але як вони можуть визначити, чи ви придбали комп’ютер за свої гроші чи за грант? Це сіра зона, але я не чув, щоб вони щось контролювати.

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

Про ринок плагінів

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

Сам ринок так влаштований: коли людині потрібна певна функціональність у грі (наприклад, реклама), вона просто йде в магазин і купує це. Лише коли їй треба. Люди не купують плагіни заздалегідь, хіба що на розпродажу, аби застосувати їх у майбутньому.

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

Можливості для розширення існують, є плагіни, які ми плануємо розробити. Наприклад, є купа програм для монетизації, які не мають інтеграції з Unreal Engine, як-от AppLoving, рішення для мобільної реклами. Скажімо, ви хочете інтегрувати в гру рекламу від різних провайдерів. Для цього існують посередники, які дозволяють вставляти рекламу з дуже різних джерел, щоб оптимізувати заробіток. Багато таких речей зараз бракує в Unreal Engine. Можливо, ми зробимо схоже.

Ми розробляємо плагіни для Unreal Engine 4. П’ятий Unreal Engine — це його логічне продовження, хоч і з багатьма змінами. Ми ще не пробували адаптувати під нього плагіни, але це не має бути складно.

Узагалі в майбутньому ми хочемо зосередитись на чомусь іншому. Можливо, спробувати себе в розробці ігор. Тому що плагіни — це класне і відносно пасивне джерело доходу, але масштабувати його складно. Це не той бізнес, який можна виростити до суттєвих обсягів, бо ринок доволі маленький, принаймні в нашій ніші. Наразі відчуваємо, що вже набралися досвіду і можемо будувати щось масштабніше. Збільшувати команду, розширювати аутсорс, спробувати зробити свої ігри.

Які ще проєкти розробляє Nineva Studios

Ми переважно виконуємо коротку контрактну роботу, а плагіни розробляємо у вільний час. Водночас саме через плагіни до нас часто звертаються клієнти. Наприклад, у нас є плагін, який дає змогу працювати з Bluetooth в Unreal Engine на мобільних платформах.

Завдяки цьому ми допомагали одному стартапу, який виготовляє браслети з мікроконтролерами та Haptic Engine (який забезпечує вібрацію). Вони працюють вкупі з окулярами віртуальної реальності Oculus. Ми готували демку, де користувач грає в шахи: і якщо взяти фігуру в руку, пристрій вібрує і створює відчуття, наче ти фізично торкаєшся речі.

Також створювали віртуальний стенд з кінектом на виставку обладнання для добування нафти. Це виявилось доволі цікаво: користувачі грають в різні ігри на кінекті і там випробовують різні насоси.

Завдяки нашій експертизі в плагінах ми створили SDK для багатьох сервіс-провайдерів, яким потрібно інтегрувати свої рішення в Unreal Engine. Наприклад, є компанія Xsolla, яка займається комерцією для ігор, платформа helpshift, яка вбудовує сапорт у мобільні ігри. Ми допомагаємо корпораціям, які мають свої потужні інструменти, вбудовувати їх в Unreal Engine, щоб розробники могли користуватись цими рішеннями через рушій.

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

Скільки займає створення плагінів

Насправді це можна зробити досить швидко, за тижні два. Проблема в тому, щоб навчитися. В розробці цих плагінів для мобільних платформ є багато проблем. Перші плагіни ми робили понад 2–3 місяці, бо було складно розібратися.

Найскладніше — це, напевно, технічна реалізація: робота з пам’яттю та особливості платформ (наприклад, є чимало різних Android-версій, які треба врахувати). Коли робиш інструмент, яким користуються інші, потрібно приділяти увагу багатьом деталям. Якщо є баг, він буде у всіх, хто користується інструментом. Усі дрібниці в коді важливі, щоб рішення добре працювали.

Для підтримки ми використовуємо Discord-сервер, там вже понад тисяча користувачів з усього світу, які постійно пишуть, коли щось не так.

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

Ще одна проблема — люди часто не читають документацію до плагінів. Вони очікують, що він робитиме щось, чого насправді не робить. Замість того, щоб перепитати і почитати документацію, користувачі його купують, а потім пишуть, щоб ми повернули гроші, і виливають трохи хейту. Ну, але це буває рідко.

У кожного плагіну є свій канал для обговорень, там пишуть про хиби, запитують про функціональність. Або й просто спілкуються, доволі приємно, що навколо наших продуктів вже утворилось ком’юніті. Деколи люди кидають у шоукейс-канал свої проєкти, створені з нашими плагінами.

Скриншот гри з шоукейс-каналу Nineva Studios

У каналі є багато не-розробників за фахом. Наприклад, на Unreal Engine працює чимало дизайнерів, які роблять свою гру, адже там є візуальна мова програмування. Ти не пишеш код, а тягаєш дротики між блоками на Unreal Engine. І вони пишуть, що вдячні, за те, що ми допомогли їм розібратися і тепер вони змогли монетизувати свою гру. Це приємно.

Нещодавно ми запустили «Патреон» для тих, хто хоче нас підтримувати регулярно. Там поки 3 чи 4 людини підписалось, а один чувак скидає по 25 доларів щомісяця — не знаю, напевне, ми зробили йому щось добре.

Про формування спільноти

Зараз ми не дуже дотичні до спільнот розробників в Україні. Колись, до того як я поїхав у Нідерланди, ми пробували розвивати геймдев-ком’юніті у Львові, але особливих зрушень не було. Ми проводили мітапи, виступали, але нічого масштабного.

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

Я не планую повертатись до розвитку спільноти, бо не маю можливості та цього ентузіазму, який був раніше. До того ж я зараз здебільшого зайнятий дитиною. Раніше виступав на Casual Connect у Белграді, на «IT Арені» у геймдев-потоці у Львові, їздили з компанією на Unreal Engine Fest у Прагу як учасники, плануємо відвідати Games Gathering у Києві.

Про майбутні ігри

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

Це цікавий ринок з дуже швидкими ітераціями. Спочатку робиш прототип геймплею, потім запускаєш рекламну кампанію, дивишся, як люди реагують. Такий data driven підхід, конвеєр, де постійно відбуваються тестування. Або як постійний геймджем, де запускаєш рекламу, тестуєш прототипи і дивишся, на що люди клацають. А потім розвиваєш цю ідею і або шукаєш видавця, або випускаєш гру сам.

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

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

Про команду

Зараз нас працює в команді четверо, всі технічні спеціалісти. Я займаюсь здебільшого Unity. Мій партнер, з яким ми створили компанію, фахівець з С++, він більше працює з Unreal Engine. Також є два розробники, які допомагають нам з плагінами та ведуть свої проєкти. Зазвичай контракти у нас маленькі, і ми намагаємось робити так, щоб людина працювала і безпосередньо комунікувала з клієнтом.

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

У нашій ніші на українському ринку спеціалісти є, але їх дуже мало, а хороших ще менше. Це одна з основних проблем, бо кадрів бракує, особливо сеньйорів, які спеціалізуються на Unity та Unreal Engine. Загалом така ж ситуація, як і з іншими розробниками на ринку — роботи набагато більше, ніж талантів. У Львові знайти Unity-розробника рівня Senior або Middle дуже складно, всі вони вже мають хорошу роботу.

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

За останній тиждень ми найняли двох людей. Лідером у команді має бути геймдизайнер з досвідом. Ще буде розробник, можливо, 3D artist. Шукаємо співробітників саме в офіс у Львові. Не хочеться починати формування нової команди з дистанційної співпраці. Бракує командної роботи біля дошки, обговорень. Думаю, всі уже втомилися від такого формату та безособового спілкування.

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

Про навчання початківців

Найскладніше те, що коли хочеш справді допомогти людині, то маєш витратити доволі багато часу на пояснення. Це сильно б’є по продуктивності. Але це окей.

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

Наш напрям доволі специфічний в геймдеві. До нас приходять саме ті студенти, які хочуть працювати з Unity і Unreal Engine. А цим починаєш цікавитись тоді, коли тобі близька тема ігор або візуальна складова, яку можна робити в цьому рушії.

Якщо уже вирішив, що цікавишся іграми й цим напрямом, це вже круто. Якщо прийшов на співбесіду з Unity і знаєш, що Unity існує, це вже круто.

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

Я часто стикався з цією проблемою, коли люди просто не знають, з якого боку підійти до вивчення того самого Unity чи Unreal Engine. І тут варто просто зануритися в технології, не лякатися, коли щось не зрозуміло, і робити те, що подобається.

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини.

👍ПодобаєтьсяСподобалось6
До обраногоВ обраному2
LinkedIn

5 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Дякую за коментар. В нас якраз є Jenkins який сам пекеджає плагіни під останні три версії UE, які ми підтримуємо, автоматично все робиться, бо плагінів які ми релізаємо вже 12 штук і вручну збирати було б жахливо. Але для маркетплейсу вони вже самі, я так розумію, білдають в себе для дистрибуції. Під мобільні платформи там свої проблеми, наприклад, під iOS вони в себе компілять дуже-дуже старим XCode і треба функціонал препроцесорними директивами випилювати і заставляти потім клієнтів копіювати плагін в проект.

Привет и спасибо за статью. На каком языке пишут плагины для UE и какую литературу можете порекомендовать?

Привіт, мобільні плагіни на С++ основний код + Java для Android + Objective C для iOS. З літератури як такої мало що є, загалом раджу дивитися на існуючі опен-сорсні плагіни та плагіни вбудовані в UE. Також багато речей робиться на docs.unrealengine.com/...​bile/UnrealPluginLanguage

Только не нужно суперуглублятся в плюсы. По сути, эпики сделали свое подобие C# на плюсах.
В сторону Блюпринтов советую вообще не смотреть. К примеру что к себе в студию, что в преподаватели на курс, я смотрю исключительно тех кто делает упор на плюсы, на блюпринте толкового ничего не сделаешь.

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