Як ми придумали і зробили свою першу гру на Android. Частина 2: Рівні

Привіт, Світ! Ми два новоспечених розробника мобільних ігор, колишні однокласники, випускники Казанського федерального університету, Айдар і Ед, продовжуємо розповідь про розробку нашої першої гри «Syncomania» на Android.

Для тих, хто щойно приєднався, коротко нагадаємо зміст першої частини:

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

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

Винагорода
Історія першого рівня: «Особисте житлоплощу повинна бути у всіх, навіть найменших, тому кожному героєві дісталася окрема кімната. І одному з героїв пощастило — єдиний вихід знаходиться прямо в його кімнаті. Спочатку щасливчик поводиться егоїстично і прагне покинути рівень скоріше. Але з досвідом він усвідомлює, що така поведінка не найефективніший. Для оптимального проходження треба працювати в команді і спершу думати про інших героїв».

image
Варіативність проходження — це особливість гри, якої ми щиро пишаємося. Всі наші мають рівні альтернативні рішення: короткі або довгі, очевидні або витончені. На кожному є свій світовий рекорд — мінімальну кількість ходів, відоме на даний момент. Пошуки найкоротшого рішення ми заохочуємо за допомогою загальноприйнятих зірочок, як, наприклад, в «Angry Birds». Але, на нашу думку, непрозорий метод оцінювання викликає подив і роздратування. У «Syncomania» ми постаралися зробити його наочним: гравець отримує три зірки, якщо проходить рівень за мінімальну кількість ходів. З однією зіркою теж все очевидно: просто спаси всіх героїв, не звертаючи уваги на рекорди. Але за які заслуги давати дві зірки? Нам потрібно було порогове значення. Щоб не ставити його для кожного рівня окремо, ми ввели просту формулу:

поріг = 1,5 * мінімальне число ходів.

Таким чином, якщо світовий рекорд становить 20 ходів, то за 29 гравець отримує дві зірки, а за 30 — лише одну. Подальші тести показали, що багатьом деколи не вистачає пари ходів до ідеального проходження. Ми вирішили, що їх треба мотивувати, і ввели ще одну градацію: якщо гравець пройшов рівень на 1-4 ходу гірше світового рекорду, то він одержує 2 зірки.

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

Оманлива зовнішність
Варіативність не має сенсу, якщо рішення на три зірки можна знайти з першого погляду. Тому ми намагаємося придумувати наживки для гравців: одне або кілька проходжень здаються очевидними, але призводять до неефективних або програшним станів. Приміром, рівень «Кут» — візуально дуже простий, але практично ніхто не проходить його з першого разу. Більшість прагне по шляху найменшого опору — одразу до виходу в правий верхній кут. З'їдаючи нашу наживку, гравець потрапляє в патову ситуацію:

image
Відчуваючи початкові рівні, ми помітили, що симетричне розташування об'єктів виглядає гармонійно, а хаотично розкидані пастки і стіни створюють візуальний сміття. Тоді ми вирішили використовувати симетрію повсюдно. Але, як відомо, немає правил без винятків. Наприклад, на рівні «Свічка» ми навмисно відхилилися від симетрії і поставили самотню стінку, натякаючи на те, що їй слід скористатися при проходженні (хоча, можливо, це і наживка).

image
На ранньому етапі розробки ми намагалися з'ясувати, як невеликі зміни в розстановці об'єктів впливають на метод проходження. Наприклад, у нас є близько 10 модифікацій конструкції «Чотири кімнати», і в кожній із них застосовуються різні прийоми. На рівні «Стиснення» гравець навчається зближувати героїв, щоб проходити між пастками.

image
У «Імітаторах» доведеться пристосуватися до поведінки ворогів.

image
А на рівні «Замок» потрібно допомогти запертому героєві вибратися з кімнати.

image
Принцип подібності ми застосовуємо на рівнях з новими механіками, щоб гравцеві було легше орієнтуватися в знайомій обстановці.

Назви
Спочатку ми давали рівнями химерні імена, такі як «Бесаме мучо» або «Імітація крабового м'яса». Але, коли почалися тести мобільної версії, виявилося, що довгим назв не вистачає місця на екрані. Потрібно було поміняти слова або взагалі від них відмовитися. Ми вирішили, що рівні будуть краще запам'ятовуватися, якщо у них буде «промовиста» назву. Наприклад, рівень, в якому пастки схожі на морду мавпи, ми назвали «Макака».

image
До речі, робочою назвою нашої гри було «One 4 all» — «один за всіх» (з натяком на четвірку), а поточне «Syncomania» (потяг до синхронізації) ми придумали вже перед запуском.

Самонавчання
Нам здається, що людина краще засвоює матеріал, якщо приходить до рішення самостійно. Ми не розповідаємо гравцеві, як взаємодіяти з новою механікою, а спонукаємо його знаходити свої прийоми на простих прикладах. Зокрема, на рівні «Розділ» гравець стикається з, здавалося б, безвихідну ситуацію. Точніше, вихід тут є, але він оточений пастками: виведеш одного героя — вб'єш іншого. Гра змушує задуматися: «Розробники напевно щось наплутали — цей рівень непрохідний. Але ж до цього все було логічно». І тут гравець звертає увагу на розставлені стіни, самостійно відкриваючи для себе один з основних прийомів: зміна дистанції між героями. Радість — у відкритті.

image
Ед: «Поки ми писали цю статтю, моя дружина пройшла цей самий рівень за 24 ходу і побила рекорд, який тримався більше року! Під час розробки я теж любив встановлювати рекорди на нових рівнях (адже перше проходження за замовчуванням було кращим)».

Рекорди
У минулій статті ми розповіли, що у нас немає стабільного автоматизованого способу для виявлення найкоротшого проходження. Тому більшість світових рекордів ми поставили самі або з допомогою наших перших тестерів. Зазвичай, набравши три зірки, гравці заспокоюються і переходять до наступного рівня, але деякі проявляють нестандартне мислення і відкривають непередбачені нами рішення. Всі нові рекорди з проходженнями пересилаються нам через Google Analytics, і ми міняємо їх з наступним оновленням (і рекордсмени мотивовані, і гра розвивається). Так, наш найвідданіший гравець Андрій Володимирович поставив вже з десяток рекордів. До того ж, ми вирішили, що рекордсменам буде приємно, якщо рівні, на яких вони поставили світові рекорди, будуть відзначатися особливою золотим кольором в меню. Але якщо хтось інший поліпшить їх рекорд, то ця привілей як перехідний кубок дістанеться новому чемпіону.

image
Крива складності
Розробивши більшу частину рівнів, ми зіткнулися з проблемою упорядкування їх за зростанням складності. Це нетривіальне завдання — хоча б тому, що пошук рішення суб'єктивний для різних гравців. Крім того, один і той же рівень легко завершити в лоб, але чертовски складно пройти оптимально. У підсумку ми вирішили упорядковувати їх по пошуку очевидного рішення, щоб гравці не спотикалися на першому проходженні, але при бажанні могли б зануритися в оптимізацію вже на початковому етапі. Щоб знайомити людей з новими механіками поступово, ми розділили рівні на тематичні розділи: Пастки, Потоки, Вороги і т. д. На початку кожної глави ми розміщуємо рівні простіше, а до кінця перевіряємо гравця на міцність. Так у нас утворилася крива складності з коливаннями.

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

image
Айдар: «Робота над першою главою принесла мені велике задоволення, так як жорсткі обмеження відкривали простір для творчості. Але все ж це введення, а найцікавіша частина полягала в розробці останніх глав для досвідчених гравців».

Приклади
Створюючи рівні, ми не вигадували нові механіки і загадки заздалегідь. Під час програмування і тестування вони проявляли себе самі. Наприклад, одного разу заради тестів ми помістили ящик на конвеєр з потоків. За законами ігрового світу ящик просувався вздовж течії і, зійшовши з конвеєра, закупорив нам вузький коридор. «Хм, яка неприємність — це треба використовувати», — подумали ми. Так у нашої покрокової грі з'явився своєрідний таймер: потрібно встигнути вирішити загадку за N ходів, інакше вихід буде замурований ящиками.

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

image
Перепробувавши численні види взаємодій, ми прийшли до думки, протягом багатьох століть служила двигуном науки і прогресу: «А чому б нам не змішати все це і не подивитися, що вийде?» В результаті у нас з'явився самий заплутаний на перший (і на другий) погляд рівень — «Вир». Втім, незважаючи на страхітливий вигляд, це аж ніяк не сама складна головоломка в грі. Зважаючи на малу кількість кроків, не приводять до програшу, цей рівень можна пройти простим перебором. З ним впорався навіть наш автоматизований вирішувач — всього за 16 ходів.

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

image
Історія останнього рівня: «Терористи утримують заручників у двох маленьких камерах. У героїв немає іншого виходу, як просуватися вгору: крок вниз — і заручники будуть вбиті. До всього іншого, підступні лиходії (так, це ми) замінували всю верхню межу рівня. Здавалося б, гравець стоїть перед дилемою: пожертвувати заручниками чи погубити героїв. Але навіть якщо якимось дивом (спойлер: ящики) гравцеві вдасться усунути ворогів, він помітить, що кімната з виходом оточена потоками, спрямованими назовні. І саме ця частина є підступною родзинкою рівня».

далі буде...

У наступній частині ми розповімо про розробки інтерфейсу гри.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.