23

Небольшая игра: полёт в тунеле 2д

Здравия желаю, лига геймдева.

Хочу поделиться своим маленьким творением. Игру делал полностью сам и уже достаточно давно. Сделал за неделю, с целью самообучения. Сразу отвечу - делал на юнити 3д, хотя на чистых плюсах с openGL было бы и то легче. Итак, собственно сама игра.

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

Игра крайне проста в механике. Вы управляете треугольным "кораблём" и пытаетесь долететь как можно дальше по тунелю. Сразу отмечу важную деталь игры: вся игра сделана сугубо треугольниками. Кроме них можно увидеть только текст и один стандартный ползунок в юнити, который добавил от лени. Почему треугольники? Потому, что ими можно изобразить совершенно любую деталь, а для "сделать графику" у меня слишком кривые руки. Зато код писать умею :) Так что игра не имеет ни одного файла с графикой в себе.

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

Итак, взлетаем :) Игра делалась для телефонов, поэтому управление в один клик: зажимаем ЛКМ что бы поднять нос "корабля". Что бы нос опустился - соответственно нужно отпустить кнопку или палец от экрана. Хочу обратить внимание, что всё, кроме числа в верхнем левом углу, состоит сугубо из треугольников.

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

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

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

Естественно, тунель передвигается по экрану. А тем, кто уже успел пожаловаться на отвратный цвет, скажу, что цвет генерируется автоматически и меняется каждые 100 очков.


Герерации тунеля, думаю, нужно выделить отдельное место :) Алгоритм - midpoint displacement. Для тех, кто не любит гуглить, в двух словах: берутся две точки тоннеля, находится точка между ними и случайным образом ( с определёнными правилами ) смещается вверх или вниз. Таким образом генерируется "пол" тоннеля. Впрочем, несложно заметить, что "потолок" - абсолютно идентичен, только находится выше на определённом расстоянии. Об "расстоянии" расскажу после рисунка-объяснения алгоритма.

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

Теперь к ширине тоннеля. Естественно, игра не была бы интересной, если бы оставалась одинаково лёгкой. Поэтому ширина пропорционально зависит от количества набранных Вами очков. Функция - гипербола. Аргументом функции выступают набранные очки. Благодаря манипуляциям с ней, можно сделать так, что бы начальное значение (x = 0) было таким, какое нужно Вам. Так установилась начальная ширина тоннеля. Так же в гиперболе есть асимптота. Это прямая, с которой функция никогда не пересечётся. в гиперболе их две, но нам нужна одна - горизонтальная. По-умолчанию она находится на ( y = 0 ), но её можно легко поднять, тем самым задав минимальную ширину тоннеля при ( x -> inf ).

Точные числа я не помню, помню только что игрался с этим долго :)

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

Теперь немного об эффектах. Выделю два основных. Первый, который наверное уже все заметили - это эффект партиклов за "кораблём". Его я расписывать особо не буду, скажу только, что партиклы - это треугольники ( неожиданно, сарказм ), вылетают из хвоста корабля, имеют разный размер и вращаются.


Второй эффект я решил добавить, когда заметил, что между "смертью" и "перерождением" происходит достаточно унылая смена экрана. Решил сделать необычную анимацию "затемнения". Заключается она в том, что создаётся спираль, которая закрывается/открывается в точке ( в своем центре ). Естественно, спираль сделана так же из треугольников.

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

И два слова про главное меню, которое добавлял в последнюю очередь. Текст Sound - кликабельно, просто включает/выключает музыку в игре. Start - кликабельно и, очевидно, запускает игру. Ползунок volume, который отвечает за громкость музыки, добавлял по последнюю очередь по желанию своей девушки. Его несложно сделать полностью из треугольников, но в тот момент я уже наслаждался результатом :)

Небольшая игра: полёт в тунеле 2д Unity3d, Тоннель, Мобильные игры, Компьютерные игры, Треугольник, Длиннопост

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


На этом, вроде как, всё. Всем спасибо за внимание! Если есть какие-нибудь вопросы - с удовольствием отвечу в комментариях. И прошу прощения за любые ошибки в тексте, сообщайте - исправлю + запомню. Русский не мой родной язык, и да, я оправдываюсь :P


Ссылка на ПК версию: https://drive.google.com/open?id=0B-K6j_j2Q_AwaXdBbEowZTZZb2...

Найдены дубликаты

+1

Ура, пост хоть с какой-то интересной инфой для разработчика. Интересно, как сделан круг на предпоследнем скриншоте? Из множества треугольников? И на последнем скрине квадратик для шкалы громкости. Это юнитовский элемент, так что не считается ?)

раскрыть ветку 3
+2

"Круг" на предпоследнем срине - спиралька из множества треугольников. В двух словах: генерируется спиралька, сохраняется в списке. Для того, что бы из черного экрана в игровой - рисуется список for ( int i = 0; i < size; ++i ) { spiral[i].draw(); }. ( Этот код - просто набросок ). И для того, что бы из игрового в черный - в обратном порядке. Т.е. каждый кадр рисуется нужная часть треугольников из спирали.

Шкала громкости - юнитовский стандартный слайдер.

раскрыть ветку 2
+1

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


Вопрос в довесок: помимо переделки управления, много нужно поменять при портировании на телефон?

Иллюстрация к комментарию
раскрыть ветку 1
+1

Интересный пост, спасибо!

раскрыть ветку 1
0

Пожалуйста. Рад, что понравилось :)

0

Нужно больше треугольников! Слава треугольникам! Игра явно спонсирована иллюминатами.

0

Интересный пост, плюс.
Хотелось бы взглянуть на код :)

-1

я один вижу на первом скрине негра?

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