Как Мы Придумали И Сделали Нашу Первую Игру На Android. Часть 1: Игровая Механика

Всем привет! Мы — два новоиспеченных разработчика мобильных игр, бывшие однокурсники, выпускники Казанского федерального университета, Айдар и другие.

Айдар: «История нашей игры «Синкомания» началась, когда мне приснился странный сон.

Это была компьютерная игра, в которой четыре белых шара синхронно двигались по квадратному полю.

Когда первый из них вырвался за пределы игрового поля, я проснулся.

На следующее утро я позвонил ему, и в обед мы встретились во дворе университета, где я работал».

Эд: «Какой программист не мечтал создать собственную игру? Летом 2014 года у меня было много свободного времени, и я с радостью ухватился за эту идею.

Тогда мы даже не могли себе представить, с какими трудностями нам придется столкнуться».

Однако на первом этапе мы были полны энтузиазма, все было легко и интересно.

Именно об этом мы и поговорим в первой части статьи.

Итак, на входе у нас была одна простая идея — игрок одним движением управляет четырьмя героями.

Сначала нам нужно было определиться с жанром игры.

Мы довольно быстро отказались от аркадных игр: управлять таким количеством одновременно движущихся элементов — задача непростая.

Нам обоим нравятся медленные интеллектуальные игры, поэтому мы согласились, что это будет пошаговая головоломка.

Правда, пользователям от этого легче не стало — игра получилась хардкорной.

Также мы решили исключить случайные и непредсказуемые элементы, чтобы игровой процесс полностью зависел от действий игрока.

Эд: «Недолго думая, я выбрал Обработка , так как прототипы легко создавать без предварительных настроек.

Кроме того, синтаксис Java позволил нам легко перенести логику игры на Android с помощью таких комбинаций, как Ctrl+C и Ctrl+V, но об этом позже.

Мы создали четырёх героев в виде белых кружков и изменили их координаты с помощью стрелочек на клавиатуре».

Айдар: «Мы установили стартовое положение героев в равноудалённых местах уровня, так как это выглядело симметрично и «почему бы и нетЭ» Впоследствии мы решили, что было бы круто, если бы каждый уровень начинался одинаково».

Немного поэкспериментировав с управлением, мы поняли, что героям нужна цель, какой-то выход из уровня.

Сначала мы рассматривали идею вывода героев за пределы игрового поля (именно это и произошло во сне Айдара).

Но более интересным и драматичным нам показался единственный выход — он наложил больше ограничений (из которых, как известно, рождается творчество).

Так что у нас было единственное условие победы: все герои должны выйти живыми.

Знак выхода обычно подсвечивается зеленым цветом.

Мы сделали то же самое.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

«На второй день Они воздвигли стену.

Пусть посередине уровня будет стена, и пусть она отделяет героев от выхода».

Объект-стена является естественным препятствием и основным инструментом построения сценария прохождения.

Интуитивно мы решили, что герой остаётся на месте, если на его пути стоит стена.

Поскольку стены обычно строятся из камня, мы изобразили их в виде серого квадрата.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

Игровое поле мы сделали в виде шахматной доски размером 11 на 11. Так легче хранить и перемещать предметы.

Например, если герой находится в левом нижнем углу, то его координаты — [0][0].

Чтобы переместить героя на одну клетку вверх, достаточно прибавить единицу к значению строки: [0+1][0]=> [1][0].

Каждый квадрат может быть занят только одним объектом, что приводит к естественному вопросу: «Что произойдет, если два объекта окажутся на одном квадратеЭ» Впервые мы об этом подумали только тогда, когда один герой уперся в стену, а второй врезался в него.

Так появилось одно из условий проигрыша: два героя на одной клетке взаимно уничтожаются.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

Еще одно проигрышное условие появилось, когда мы создали элемент-ловушку — ячейку, при попадании в которую герой погибает. Ловушку нужно было изобразить как нечто опасное и запретное, поэтому, следуя минималистическому стилю, мы выбрали красный квадрат.

Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

Эд: «Мне очень нравится настольная игра "Роборально" , и особенно конвейерная система, которая вносит элемент внезапности, если просчитать свои действия.

Конвейеры срабатывают в отдельной фазе хода (после перемещения героев) и перемещают объекты в направлении стрелки.

Мы привнесли нечто похожее в нашу игру, назвав это потоками».

Нити выполняют две основные функции: 1) Ниппельная система.

Пропускает в одну сторону, но не пропускает обратно.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

2) Производственная линия.

С его помощью герои, враги и ящики (о них чуть позже) смогут ездить по заданным маршрутам.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

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

Сначала у нас была идея ввести в игру маятниковую ловушку, которая будет перемещаться между двумя клетками с определенной частотой.

А вот ловушка, которая может путешествовать по всему игровому полю, гораздо круче.

Такие элементы оказываются «живыми», и мы сразу называем их врагами».

Однако случайное движение элементов вносит в игру непредсказуемость и неуправляемость, что идет вразрез с законами придуманного нами мира.

Поэтому мы решили, что врагами должен управлять сам игрок и, будучи антагонистами героев, двигаться против команд, то есть в противоположном направлении.

Например, если герой идет направо, то враг идет налево.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

Когда врагов на уровне достаточно, создается иллюзия, что они живут своей жизнью: катаются ручьями, неудачно бьются головой о стены, умирают в ловушках или на руках друг друга, покидают этот мир через выход и, как будто нарочно (не совсем) все время пытаясь убить героев.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

Эд: «На одном из тестовых уровней враги настолько раздражали, что мне всё хотелось отомстить им.

Им нужен был инструмент, а точнее оружие против них, которое могли бы использовать герои.

Перебрав несколько вариантов, мы решили сокрушить врагов тяжелыми предметами».

Мы вспомнили игру «Сокобан» и создали модифицированный тип коробок (новое – это хорошо забытое старое).

Коробки — это, по сути, стены, которые можно толкать, поэтому мы изобразили их в виде небольших серых квадратов с перекрестием.

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

Кроме того, ящики могут плавать по течению, а при попадании в ловушку или выход разрушаются.

Как и в игре Сокобан, нельзя толкать больше одного ящика подряд, поэтому могут возникнуть ситуации, когда герой окажется взаперти.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

Айдар: «При создании уровня практически невозможно предугадать все возможные решения, и уже в самом начале мы с Эdom заметили, что уровни проходим по-разному.

Это неудивительно, ведь с каждым новым ходом количество государств растет в геометрической прогрессии».

Разнообразие прохождения — особенность игры, которой мы искренне гордимся.

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

Эд: «Лично для меня поиск оптимального пути — моя любимая часть игры.

В самом начале разработки мы создали таблицу, где наши друзья, самые первые пользователи, делились своими рекордами: сколько ходов потребовалось для прохождения уровня.

Установление рекордов и попадание в этот список мотивировали нас продолжать играть».

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

Для этого мы запрограммировали алгоритм перебора с ограничениями, но на уровнях с большим количеством объектов он занимал слишком много времени.

Когда время расчета превысило несколько дней, мы решили использовать краудсорсинг (англ.

Crowdwashing, Crowd — «толпа» и сорсинг — «использование ресурсов»).

Если игрок улучшил свой рекорд на одном из уровней, то с помощью Google Analytics мы получали его решение в виде последовательности ходов.

Опытные игроки обычно ищут оптимальный проход эвристически, используя свои устоявшиеся закономерности и избегая лишних ходов.

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

Мы тщательно их записываем и обновляем в последующих версиях приложения.



Как мы придумали и сделали нашу первую игру на Android. Часть 1: Игровая механика

Продолжение следует… В следующей части мы расскажем о том, как мы разрабатывали загадки и приемы прохождения уровней в игре «Синкомания».

Как мы придумали и сделали нашу первую игру на Android. Часть 2: Уровни Теги: #android игры #java #Разработка мобильных приложений #Разработка игр #Разработка Android

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.