Elanso

На Пикабу
поставил 2 плюса и 2 минуса
Награды:
5 лет на Пикабу
144 рейтинг 2 подписчика 1 подписка 2 поста 1 в горячем

“Робот Фортран, чисть картошку!” или история передвижения одного куба.

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Возможно некоторые из вас знакомы с прекрасной книгой “Энциклопедия профессора Фортрана”. В ней очень доступно рассказывается об устройстве компьютера а также о том что такое компьютерный язык. Не смотря на то что книга 1991 года выпуска, по моему мнению, она является лучшим введением в мир компьютеров как для взрослых так и для детей.


Особенно мне запомнился момент из книги, когда кот Икс пытается задать программу, для чистки картошки, профессору Фортран, но простая команда “Робот Фортран, чисть картошку!” не приносит желаемого результата, “робот” начинает полировать картошку носовым платком, или же шкрябать её ручкой от ножа.

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Это очень наглядный пример к выражению: “Программа делает не то что хочет пользователь, а то на что её запрограммировали”.


Недавно я создал пост о своей первой игре для андроид https://pikabu.ru/story/lozhka_dyogtya_v_bochku_s_dyogtem_il....

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

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

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Но поверьте я дочь программиста и тут не все так однозначно. Не всегда просто добиться естественного поведения движения от куба. Рассмотрим несколько примеров. Чтобы двигать куб вперед будем вращать его вокруг ребр:

1) Простейший пример передвижения вперед без препятствий, для этого достаточно повернуть куб вокруг нижнего переднего ребра на 90°:

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

2) Допустим мы встретили препятствие и нужно на него взобраться, для этого нужно повернуть куб на 180° вокруг верхнего переднего ребра:

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

3) Усложним еще ситуацию, на пути нашего куба оказалась яма, что же ему делать в этом случае? На самом деле выхода как обычно минимум два - первое забить на яму и крутиться вперед вокруг переднего нижнего ребра, или же закатиться в яму. Мы выбрали второе решение, так как оно показалось нам более естественным и таким образом куб сможет посетить все закоулки в которые заведет его игрок! В этом случае мы крутим куб не вокруг его ребр, а вокруг оси X:

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

еще схожий пример но теперь яма не внизу, а напротив нас, теперь крутим куб вокруг оси Y:

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

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

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Например в данной ситуации приоритет движение вперед больше чем движения назад.

Но мы решили что куб все-таки должен закатиться назад, вернуться и покатиться дальше вперед и вниз. Куб как-бы привязан к стене и должен её полностью обойти.


Пару слов о том как куб анализирует объекты вокруг себя. В Unity engine есть замечательная возможность это сделать с помощью sphere cast. Простыми словами можно сказать, что куб как-бы рисует сферу вокруг себя и возвращает все объекты, которые попали или пересеклись с этой сферой. На данном рисунке видно что вокруг игрового куба находится куб сверху, снизу и снизу справа:

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

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


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

“Робот Фортран, чисть картошку!” или история передвижения одного куба. Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост
Показать полностью 9

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Рынок мобильных игр


Почти каждый бородатый консольщик с сотнями дисков в мамином серванте или же почтенный пк боярин чья библиотека в стиме сопоставима лишь с количеством вкладок избранного на порно хабе скажет что мобильный гейминг с*сет и будет в чем то прав. Сотни и тысячи однообразных приложений которые на 50% состоят из рекламы и еще на 50% из внутриигровых покупок, отсутствие AAA проектов или хотя бы внятной индюшатины, отвратное управление и множество других недостатков отталкивают геймеров от мобильных платформ. Тем не менее этот рынок продолжает привлекать миллионные инвестиции и примазаться к сисе геймдева хочется все большему количеству школьников разработчиков.


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


Мотивация


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


Окрыленный успехом игр в которых весь геймплей сводился к тапу по таймингу на экран (привет Stack и Space Frontier), решил создать что то подобное но клепать очередной клон Flapy Birds не было никакого желания, хотелось создать нечто свое.


Идея


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


Реализация


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


Первые недели все двигалось довольно живо, все в лучших традициях разработки по скраму/аджайлу. Вечерние митинги на кухне за чашкой чая переросли в задачи и реализации фичей для игры. Но житие(работа, дом, машина, собака, жена) вносит свои коррективы и все чаще реализацию новой фичи приходилось переносить на следующую неделю а потом на следующую и еще на одну. Тут хотеться поделиться житейской мудростью если что то надумали делать то начинайте делать как только надумали. Вроде бы банальный совет, но только так можно побороть монстра по имени ПОТОМ. Зачастую ПОТОМ побеждает, но наша история с счастливым финалом. Нам все таки удалось довести проект до релизного вида.


Как результат энтузиазма трех человек и появился в Play Marker проект BuildWay. Простой кликер/раннер/головоломка который может скрасить пару минут в метро или же в очереди в МакДональдз.

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Механика


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

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

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


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

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Мотивация Игрока


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

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Монетизация


А что по поводу бабулесика спросите Вы? Как же игра приносит денежку разработчику?

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

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Помимо этого игрок может прикупить себе монеток, или же если не хочет тратить свои кровные то посмотреть короткий рекламный ролик за который получит те же монетки:

Ложка дёгтя в бочку с дёгтем, или еще одна игра для Android Игры на Android, Инди игра, Аркадные игры, Gamedev, Unity, Длиннопост

Реклама игры


В данном посте я хотел поделиться своей тру стори с крупнейшим сообществом в рунете и этим привлечь к ней внимание =) Скачать игру для Android можно по ссылке ниже


Ссылка на Google Play

https://play.google.com/store/apps/details?id=com.flatpet.buildway

Показать полностью 7
Отличная работа, все прочитано!