Створення гри на андроїд із нуля. Приступаємо до коду. Фінальний варіант графіки

Головна / Корисна інформація

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

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

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

Фінальний варіант графіки

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

Чим робити ігри для Android?

1. Unity

Почнемо ми мабуть з найкращого та універсального двигуна для ігор, який є на сьогоднішній день і на якому вже вийшло дуже багато придатних ігор не тільки на мобільних платформах (Android та IOS), а й у соціальних мережах та на комп'ютери.

Unity (Юніті) вам підійде незалежно від того, який складності проект ви задумали зробити. Це двигун свого роду алігатор на ринку універсальних двигунів. Двигун постійно оновлюється та доповнюється новими вражаючими можливостями. Юніті має гарну 2D і 3D складову, причому з версії 4 він має повноцінну підтримку 2D і працює з фізичним двигуном

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

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

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

Привіт, Хабраспівтовариство!

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

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

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

Передісторія
Якийсь час тому протягом двох років я розробляв ігри під Windows Phone. За цей час було випущено 6 ігор, тільки 2 з них були платні + тріал і принесли лише кілька доларів, інші були безкоштовні без реклами. Розробляв ігри під цю платформу, тому що там був XNA + C#, мені дуже подобалося це зв'язування, але потім пішли чутки, а потім і реалії про те, що підтримка XNA припиняється. Почався пошук інших движків, серед яких найбільше мені сподобався Unity. Відразу кажу, що не хочу сперечатися про доцільність його використання для маленьких ігор, мене тут все влаштовує, навіть якщо в інших двигунах є редактор C#, кроссплатформенність і т.п. На той момент підтримки Windows Phone в Unity ще не було, але мене це не збентежило. розробляти під цю платформу мені більше не хотілося, принаймні поки що (як сказав один знайомий, навіщо їздити на дохлого коня). Говорячи відверто, мої ігри були слабенькі, але вибір було зроблено. Підписку розробника Windows Phone було закрито, почалася нова смуга вивчень, проходження туторіалів і, власне, розробки ігор.
Вибір гри, початок
Як відомо, не можна розпочинати зі складного. Тому для пробної гри була обрана ідея, яку я вже почав реалізовувати під Windows Phone, а саме – головоломка в стилі Братів Пілотів (скриншот), але з трохи іншою механікою. У моїй грі при натисканні на об'єкті стан перемикається не у всього ряду і всього стовпця, а тільки у вибраного об'єкта і у сусідніх об'єктів (вгорі, внизу, ліворуч, праворуч). Для візуального відображення ефекту перемикання було вирішено використовувати безпосередньо увімкнення або запалення, а що може горіти? Зірки! Тому назва Shining stars була вибрана досить швидко. Почалася технологія.

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

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

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

  • Оптимізація магазину програм.
  • Прес-релізи, блоги, сайти новин і т.д. є основою.
  • Це чудова можливість побачити багато людей.
  • Створення завантажень.
  • Існує кілька способів збільшення кількості завантажень.
  • Багато хто з них безпосередньо пов'язаний із згаданими маркетинговими інструментами.
  • Додатковим варіантом є створення спільноти.
  • Наприклад, можна реалізувати функцію чату.
  • Підказки, щоб бути справді захоплюючим, їх багато.
  • Зрозуміло, що регулярні оновлення також відіграють важливу роль.
На перший погляд, здається, занадто легко створити успішний ігровий додаток лише за 5 порад.

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

Обертання – у Unity є методи для обертання об'єктів. Але якщо чесно, працюють вони для мене часом дивно, тому частково я просто тицяв навмання і шукав варіант, який мене влаштує.

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

Ваша ідея для ігрової програми

Як ви можете створити свою успішну гру є предметом нашої статті сьогодні. Тепер ми спеціально орієнтуємось на спеціальні функції мобільних ігор! Відмінна ідея - основна передумова для гарної програмиі особливо для чудової мобільної гри.

Слайдинг було реалізовано на екрані вибору рівня. На екрані виводилася лише частина іконок з рівнями (розмір частини залежить від розміру екрана), решта відображається при перемиканні кнопками "вліво" та "вправо".

Скейлінг теж виявився досить простим, як я в ньому розібрався. Основна ідея - гра має виглядати добре на всіх розмірах екранів. У мережі не дуже багато уроків на цю тему, переважно довелося вивчати форуми. До речі, відразу хочу порадити користувачам Unity, що починають, йти на їх англійський форум, він дуже живий, люди завжди намагаються допомогти, на відміну від більшості російськомовних форумів різної тематики. У результаті дійшов варіанта, при якому за основу вибирається певний розмір екрану, далі вважається коефіцієнт відносно реального розміруекрана телефону або планшетного ПК. Усі ігрові об'єкти змінюють масштаб та положення залежно від цього коефіцієнта. Особисто в мене коефіцієнт не один, т.к. різні типиігрових об'єктів довелося масштабувати по-різному тому, що вони по-різному сприймалися різних екранах. Якісь об'єкти на маленьких екранах можна було залишити в стандартному розмірі, Інші треба було трохи збільшити щодо перших.

Проблема в тому, що кожен, як правило, переконаний у власній ідеї. На жаль, немає формули заклинання і немає контрольного списку, щоб допомогти нам дізнатися, якщо. Але є кілька підказок, за якими ми можемо слідувати. Ідея має бути перш за все однією: сюрприз! Треба сказати зовсім нову та несподівану історію. Це часто буває не так просто. З одного боку, вже є мільйони ігор, і, з іншого боку, ми, звісно, ​​всі наші дитячі герої. Але одне має бути зрозумілим; ніхто не використовуватиме нашу гру, якщо він зможе використовувати оригінал!

рівні
У самому першому варіанті гри я хотів зробити 20 рівнів. Мда, цікава була б гра. За мудрою порадою це число було розширено до ~100 (у планах). Звичайно, вигадувати рівні самому і перевіряти, чи вони вирішуються, мені зовсім не хотілося. Я ж програміст, то навіщо знущатися з себе! Через деякий час був готовий генератор, який видавав усі можливі комбінації рівнів заданого розміру, потім перевіряв, чи вирішуємо рівень, і виводив його в текстовий файл. Ось тут і була найбільша моя проблема в цій грі. Якщо за розміром ігрового поля 4*4 кількість рівнів вимірювалася десятками тисяч, то для поля 5*5 вже були мільйони, для поля 6*6… Ну ви зрозуміли. Так, я програміст, я можу написати генератор, можу навчити його вирішувати рівні, але я не можу навчити його вибирати, який рівень гарний і увійде до гри, а який буде відсіяний. Тому всі ці мільйони рівнів треба було переглянути, вибрати вручну потрібні. Я навіть спочатку спробував, але потім прикинув масштаби дії (а я хотів зробити ігрове поле аж до розміру 10*10) і мені стало погано.

Хоч як крути, а довелося повернутися до ручного малювання різних візерунків. Ці візерунки вносилися в гру, вирішувалися особисто мною на моєму телефоні (одночасно перевірка вирішуваності + естетичне задоволення від рішення рівня). Нерозв'язні рівні допрацьовувалися, нецікаві викидалися. І через деякий час у мене було готово 120 рівнів, розташованих у порядку зростання їх розміру та складності в межах розміру.

То що робити? Ми маємо виділитися з ринку за допомогою нашого продукту. Якщо є схожі ігри, наша гра має бути кращою на якомусь рівні. Будь то якість, завдяки кращій продуктивності або тому, що використання є більш економічним. Є багато прикладів ігор, які були лише трохи змінені і, таким чином, були успішними, або успіх іншої гри. Хорошим прикладом є ігри, де збиті бульбашки чи вирішені головоломки. Існує багато варіантів, які можна додати до вже існуючих концепцій: онлайн режим, нові рівні, інноваційна робота і т.д.

Приклад створення рівня

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

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

Ми завжди повинні пам'ятати, що користувач сидить на автобусі або, швидше за все, у школі чи університеті, коли він використовує нашу гру! Гарний варіант- запропонувати коротке «опрацювання» або підручник з першого використання. Також можливо на першому рівні, наприклад, розповсюджувати посилання, при цьому суворо стежити, щоб ігровий процес не був надто порушений. Особливо перші хвилини мають переконати користувача. Сьогодні гра встановлюється швидко та легко – і видаляється.

Число 120 було обрано невипадково. на різних розмірахна екрані вибору рівнів можна вмістити різну кількість іконок цих рівнів. При цифрі 120 я вдалося розбити іконки на групи з однаковим числом іконок у кожній, що важливо. Мені не хотілося, щоб на перших сторінках було по 12 іконок, а на останній лише, наприклад, 10.

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

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

Графіка
Графіка в моїй грі пройшла, як на мене, цілу еволюцію! Спочатку я хотів зробити гру дуже швидко і випустити те, що є з тими 20 рівнями. І це «то» спочатку мені здавалося справді непоганим, але отримавши пару порад від інших людей, я сильно задумався і почав усе перемальовувати. За основу було взято різні знамениті ігри, наприклад, Angry Birds, з яких я взяв ідею зовнішнього вигляду UI, розміщення іконок рівнів під час їх вибору.

Старий варіант графіки

Технології створення ігрової програми

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

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

Головне меню із двома варіантами кнопок. Звичайно ж, після першого другого здавалося чудовим! Доки не було зроблено фінальний фаріант.



Вікно інформації про гру


Знайдіть потрібного розробника

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

  • Продуктивність набагато краща при програмуванні рідною мовою.
  • Це, звісно, ​​призводить до значного підвищення зручності використання.
  • Тому витрати на розробку завжди значно вищі під час розробки спочатку.
Ми навмисно не говоримо про те, щоб знайти кращого розробника, але найпридатнішого розробника.

Вікно вибору рівня



Щоб гра не здавалася мертвою, з'явилася ідея зробити щось, що давало б зворотний ефект. Такою ідеєю стало живе тло гри – якщо трохи придивитися, зоряне небо на фоні – це не просто картинка, на ньому блимають інші кольорові зірки (сині, жовті та блідо-жовті), а періодично навіть пролітає падаюча зірка! Так, цей ефект не тягне на оригінальність та новизну, але я вважаю, що вийшло непогано та допомогло створити потрібну атмосферу у грі.

Існує не один розробник. Кожен проект відрізняється і кожен розробник відрізняється. Щоб отримати найкращий результатВам слід звернутися до фахівця, який володіє технічними навичками і який також відповідає змісту проекту та самому собі.

Які відмінності у розробці мобільних ігор та програм?

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

Фінальний варіант графіки

Головне меню з відкритими кнопками налаштувань (щоб не захаращувати екран, спочатку вони згорнуті та відкриваються за допомогою натискання на кнопку налаштувань)


Вікно інформації про гру


Вікно вибору рівня


Вікно з рівнем у процесі гри (один із варіантів фону; всього їх 3, вибираються випадковим чином)



Увага приділялося абсолютно всьому. Ігрові об'єкти покращувалися, щоб бути красивими. Об'єкти UI (кнопки, іконки рівнів) удосконалювалися, щоб бути і красивими, і інтуїтивно зрозумілими лише за їхньою картинкою. Навіть для іконки було розроблено кілька варіантів, з яких важко було обрано фінальний, а згодом замінено на ще один, який здавався мені більш підходящим. А скільки разів я перемальовував усі тексти!

Іконки

Початкові варіанти для вибору

Фінальний варіант

У компонуванні графіки мені дуже сильно допомогла програма TexturePacker, її рекомендую! Її безкоштовних можливостей цілком вистачає для наших цілей, а атласи вона збирає справді непогано. Мною було підготовлено кілька атласів – один для кнопок та два набори для ігрових об'єктів (з локалізацією на російську та англійська мови). Щоправда, у старої версії Unity мені довелося вирізати потрібні шматки за допомогою uv-координат, що дещо незручно. У нової версії Unity все можна зробити набагато простіше за допомогою спрайтів.

Звуки та музика
Тут немає жодних проблем. Існує безліч ресурсів, де звуки можна придбати або взяти безкоштовні. Т.к. бюджету не було, я обрав кілька відповідних звуків та мелодій, які ці ресурси дозволяють скачати безкоштовно, тобто. все абсолютно законно і без крадіжки (так, для мене це важливо).
Основна ідея була створити спокійну обстановку, в якій гравець може подумати з тихою музикою на тлі. Але перший апдейт гри змінив ситуацію - була додана більш ритмічна музика з можливістю вибору потрібної мелодії (спокійної або швидкої) в налаштуваннях.
Реліз, просування, результати
Зазначу, що гру я збирався випускати лише під Android, оскільки у мене є відповідний телефон, але ні пристроїв iOS, на яких я міг би потестувати гру, а випускати без реального тестуя не хочу. Також приводом послужило те, що реєстрація в Google Play– це разовий платіж 25 доларів, а Apple потрібно щороку платити 99 доларів. Можливо, я випущу гру під iOS, але трохи пізніше.

Відразу після релізу я написав про гру на ряді форумів про Android і став стежити за результатами, які з'явилися незабаром, але на цьому справа практично зупинилася. Потім я випустив два апдейти, про кожен із яких повідомив на форумах (хоч якийсь, але bump). Був також варіант перехресних оцінок (ставиш чиїйсь грі високу оцінку і просиш високо оцінити свою гру). Але це означає встановлення цілої купи чужих (не завжди хоч скільки хороших) ігор собі на телефон, можливий обман з боку інших (адже не факт, що вони оцінять твою гру у відповідь), тому від такого варіанту я швидко відмовився.

На даний момент кількість завантажень дуже мала. Я здогадувався, що буде якийсь провал, але настільки… Почасти це пов'язано з тим, що я викладав на форумах не лише посилання Google Play, але й сам apk файл, причому судячи зі статистики, його завантаження перевищують завантаження гри з маркету.

Гра безкоштовна. Як монетизацію було обрано показ реклами. У процесі розробки я хотів підключити кілька модулів - якщо не вдалося відобразити один, показувати другий і т.д. Першим був підключений відомий Chartboost, далі намагався підключити RevMob і PlayHaven, але з ними вийшли деякі затримки (відверто, вони не заробили у грі, причину я так і не з'ясував), тому залишився лише один модуль, від якого і мав іти весь дохід . Але якщо врахувати вищесказане (кількість завантажень і бажання користувачів кликати рекламу або ставити рекламовані ігри), ви розумієте, що доходу і немає.

Висновки
Як то кажуть, поганий результат – теж результат. З моменту початку розробки на Unity (час на Windows Phone не рахую) до релізу пройшло близько 14-15 місяців. По-хорошому, така гра пишеться протягом місяця неповної зайнятості, і це з запасом. Причина була у нестачі часу. Ні, часу було достатньо - кілька годин вечорами, кілька годин на вихідних вистачало, щоб продовжувати робити гру без тривалих пауз. А не вистачало мені морального самопочуття. У цей період було дуже багато особистих проблем, при цьому було бажання робити гру, були ідеї, але я сідав за комп'ютер, тупо дивився в монітор, потім розумів, що я не маю натхнення, що я не можу реалізувати абсолютно нічого, і вимикав його. Так і пролетів цей рік.

Почнемо із негативних моментів. Часу я витратив на гру дійсно багато, але тут обставини, які від мене не залежать. Гра відверто провалилася, доходу вона мені не принесла (ну, кілька доларів не зважають). І з цього погляду це повний провал.

Але позитивних моментів, мабуть, більше. Насамперед, це досвід! На цій грі я вивчив основні можливості Unity з одним застереженням – гра розроблялася на старій версії, де ще не було 2d. Зараз 2d ігри можна розробляти з цієї новою технологієюТому більшість моїх напрацювань з гри вже можуть не знадобитися.

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

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

Теги: Додати теги

© 2023 androidas.ru - Все про Android