Как сделать раннер

Обновлено: 06.07.2024

Unity — это среда, которая позволит детям почувствовать себя настоящими разработчиками игр! На движке Unity 3D ребята могут создавать анимацию, запрограммировать игровую сцену и полноценные игры. А также познакомиться с языком программирования "Си шарп", на котором в Unity пишутся скрипты.

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

Как скачать Unity 3D на ПК

Для начала скачаем и установим программу на компьютер.

Урок 1. Как сделать анимации в Unity 3D

Начинаем уроки по Юнити. Первый шаг — анимирование персонажа. Мы добавим нашего дракона на сцену, изменим его размеры, научим его двигаться и бегать с заданной скоростью. Напишем наш первый скрипт.

Урок 2. Как сделать телепорт в Unity 3D

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

Урок 3. Как сделать спавн объектов в Unity 3D

Мы изучим 2 способа создания спавна объектов: на канвасе (canvas) и в пределах камеры. А еще узнаем, как создавать префабы.

Урок 4. Триггеры в Unity 3D | Столкновение персонажей

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

Урок 5. Как создать таймер в Unity 3D

Таймер нужен для почти любой игры, мы научимся создавать его с помощью корутины (Coroutine) и команды InvokeRepeating.

Урок 6. Перемещение объекта мышью в Unity 3D

Функция Mouse Drag или, по-другому, метод перетаскивания нужен для того, чтобы перетаскивать объекты в игре. Например, как мы показываем в видео, чтобы перемещать еду на персонажа и кормить его.

Урок 7. Как сделать полосу здоровья персонажа в Unity 3D

Health Bar или полоса здоровья тоже неотъемлемая часть любой игры. Мы научимся ее программировать, так чтобы полоса плавно увеличивалась и уменьшалась.

Урок 8. Как сохранить игру в Unity 3D

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

Урок 9. Создаем игру "Раннер" в Unity за 30 минут

Урок 10. Как экспортировать игру из Unity на ПК или Android (как настроить для Play Market)

В этом видео расскажем, как собрать игру под ПК или под Android: в каком порядке собрать сцены, какие им дать номера, а еще какие настройки нужны, чтобы загрузить игру Play Market.

Урок 11. Как загрузить игру в Play Market

Мы собираем игру и заполняем все настройки для Play Market. Теперь другие пользователи смогут сыграть в вашу игру, а вы будете на этом зарабатывать.

Урок 12. Как сделать прыжок в Unity 3D

В этом уроке мы разберем, как сделать прыжок персонажа в 2D- и в 3D-проекте. Для этого мы создадим две сцены, напишем скрипты на языке Си Шарп.

Урок 13. Как управлять персонажем в Unity 3D

Давайте научим нашего персонажа двигаться. Для этого мы зададим переменные типа float, они будут отвечать за скорость, поворот и перемещение по горизонтали и по вертикали. И, конечно, напишем скрипты для 2D- и 3D-версии игры.

Урок 14. LineRenderer в Unity 2D

LineRenderer позволяет упростить рисование линий. В этом видео мы напишем два скрипта: Line Point позволит проводить прямую линию между любыми двумя точками, а с помощью Draw Line мы сможем рисовать неотрывную линию.

Урок 15. Как сделать автосимулятор в Unity 3D | Как сделать гонки в Unity 3D

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

Наши плейлисты регулярно пополняются, подписывайтесь на наш YouTube-канал , чтобы следить за выходом новых видео и открывать для себя мир IT-технологий!

Если же вам нужен наставник, загляните в Школу программирования для детей “Пиксель”: запишитесь на полный курс по разработке игр на движке Unity 3D .

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

Терминология

Раннер (от англ. runner — бегун) — видеоигровой жанр, характеризующийся безостановочным движением среди препятствий без возможности влияния на скорость. Именно это определение мы будем использовать для подбора иллюстрирующих примеров. Оно не идеально и было выведено, основываясь лишь на личном опыте автора, но для наших целей сгодится. Тем не менее, для полного понимания центрального термина, и как следствие объекта исследования, необходимо уточнить один момент.

История


Создатель одного из первых раннеров, Адам Солтсман, называл своим вдохновением гонки. И действительно, у этих жанров много общего: оба завязаны на больших скоростях и отточенной реакции. Однако каждый, кто хоть раз садился за руль виртуального или реального болида, подтвердит — тормозить в автоспорте ничуть не менее важно, чем жать на газ. Раннерам же это не свойственно. Несмотря на это иногда можно встретить аркады с автоускорением, то есть отчасти безостановочным движением. К примеру, такой режим есть в Mario Kart 8.

Помимо этого безостановочное движение задолго до появления смартфонов было неотъемлемой частью сайд-скролл шутеров. Хотя чётких границ жанра нет, как в общем-то и у всего геймдева, классикой термина остаётся Scramble (1981). Игрок управлял самолётом, уклонялся от препятствий в виде рельефа и расстреливал врагов.


В 2003 году в Корее и в 2006 году в США компания Gamevil выпустила первый из известных классических раннеров — Nom (не путать с Ам-Нямом). Из всего управления была только одна кнопка, при нажатии на которую герой перепрыгивал через препятствия. В остальном же он просто бежал и бежал, попутно собирая монетки и целуя девушек. Вообще-то довольно сложно сказать, что именно он с ними делал, но остановимся на поцелуях.

1. В зависимости от продолжительности уровней (бесконечные, совмещённые, конечные)

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


Плюсом же служит то, что бесконечные раннеры слабо зависят от доната. Да, в большинстве можно покупать жизни, чтобы бежать дальше, или бустеры, чтобы облегчать процесс. Однако просто играть это не мешает, ведь двигаться по сюжету, уровням и т.п. не надо. Игры, которые требуют билеты/энергию не в счёт — эта механика убивает всё.

Сейчас многие приложения совмещают в себе оба вида, что достаточно удобно, а вот Canabalt появился до этой моды. Кстати, этот дедушка всё ещё доступен в AppStore за 229 рублей, а в Google Play есть его HD версия за 199 рублей. Сюжет игры строится вокруг не то конца света, не то вторжения пришельцев, что, в общем-то, неважно. В начале герой в чёрном костюме выпрыгивает из окна офисного здания и бежит по крышам, прыгая с одной на другую. Среди препятствий попадаются коробки, которые просто тормозят его, или целые бомбы. На некоторых уровнях взрываются дома, на других они вообще невидимые. Также присутствует режим для двух игроков на одном экране.



Отличает же игру от пионера жанра векторный, а не пиксельный стиль, паркур и, собственно, уровни вместо бесконечного режима. Выполнены они достаточно стандартно с применением трёхступенчатой системы завершения. Открытие последующих этапов как раз завязано на полном прохождении и получении звёзд. К сожалению, во фритуплейной версии сделать очень непросто. Зато Vector намного дешевле: 75 рублей на iOS и 59 рублей на Android.




2. В зависимости от количества измерений (двухмерные, трёхмерные)

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

В двухмерных раннерах герой движется только в одной плоскости. Камера при этом, как правило, хоть и не обязательно, находится сбоку и показывает сцену в профиль. К примеру в игре Robot Unicorn Attack 2 (GP/AS) атакующий робот-единорог всегда бежит слева направо, а ещё может прыгать или падать. Что же касается самой игры, то если вам не хватает атакующего робота-единорога в названии, мне добавить нечего.




Первая часть появилась на заре эпохи раннеров, чуть позже Canabalt, и точно также сперва была флэшкой для сайта Adult Swim. По слухам там в неё ещё можно побегать, но у меня не получилось. Хотя для умеющих пользоваться поисковиком не сложно будет найти оригинал в другом месте. Сиквел же разрабатывала студия-автор серии Into The Dead. Помимо непосредственно атакующего робота-единорога игра запоминается атмосферой ретровейва и возможностью купить в саундтрек хиты 80-х (Erasure, Кори Харта, Blind Guardian и др.)

В трёхмерных раннерах герой постоянно движется вперёд, поворачивая влево и вправо, а иногда прыгая и скользя. В подобных играх практикуется вид от первого или от третьего лица, когда камера висит за персонажем. Самым популярным представителем не только этой категории, но жанра и всего мобильного игропрома в целом по праву считается Subway Surfers (GP/AS).


30 мая 2018 года CEO Kiloo (разработчик Subway Surfers) Джейкоб Моллер заявил о том, что раннер преодолел отметку в два миллиарда закачек. При этом он остаётся единственной игрой с более чем миллиардом загрузок в Google Play. К слову, большинство остальных приложений с таким же показателем предустановленные. Для понимания этого объёма, нужно учитывать, что на планете сейчас всего около 7,7 млрд человек. Меж тем GTA V к концу 2018 года смогла продаться в количестве 100 млн копий, а Minecraft — 150 млн.

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

3. В зависимости от свободы выбора направления (без выбора, рельсовые, безрельсовые, свободные)

Ярким примером таких игр служит Alto's Adventures (GP/AS), по сюжету которой герой катится с горы на сноуборде, чтобы поймать сбежавших альпак. Из доступных альтернативных путей — встречающиеся периодически растяжки, на которых можно исполнить гринд. Отличительной чертой раннера выступают приятный минималистичный дизайн и динамически изменяющаяся погода и время суток. Вкупе со спокойной расслабляющей музыкой он превращается в прекрасное средство релаксации: без буффонады, запредельных скоростей и жестокости. Отлично понимая свои сильные стороны, разработчики добавили дзен-режим, в котором не насчитываются очки и невозможно проиграть.



Очень редко встречаются трёхмерные раннеры без выбора направления. С одним допущением к ним можно отнести Fotonica (GP/AS). В игре, состоящей из одних только контуров, нам нужно просто бежать вперёд и прыгать по платформам. Поворачивать или как-то иначе смещаться в сторону нельзя. Однако из-за кор-механики: нажимать для бега, отпускать для прыжка, она не подходит под наш термин. Поэтому куда уместней относить её к простым платформерам. Хотя, возможно, это исключение, подтверждающее правило. Или же само определение необходимо изменить.


Говоря о рельсовых раннерах, так и хочется упомянуть Subway Surfers, в котором герои буквально бегут по рельсам. Её схему движения с тремя дорожками можно встретить в большинстве трёхмерных раннеров.





Как бы ни был хорош зомби-раннер, и какой бы бомбической ни была его заглавная песня, бежать в нём можно только вперёд. Прямо, зигзагами или наискосок — это уже детали. Не в пример ему в Pako Forever (GP/AS) можно ехать куда угодно. В распоряжении игрока теоретически бесконечная карта полная разных препятствий, машина с грабителями и полчища полицейский, пытающихся его остановить даже ценой собственной жизни. Также встречаются бонусы вроде заморозки стражей порядка или подмоги летающей тарелки. Всё, что остаётся — двигаться в любом понравившемся направлении и пытаться выжить. Мой рекорд — гордые 1 минута и 23 секунды, лучший результат на Android — 27 часов 46 минут.


4. В зависимости от ориентации дисплея (вертикальные, горизонтальные)

Со времён Nom особо заметных придумок с кручением экрана замечено не было. Кто-то вообще может сказать, что физическое положение аппарата неважно, однако это не совсем так. В отличие от стандартных мониторов и телевизоров у телефона (а когда мы говорим про мобильные игры в 80% случаев мы имеем в виду именно телефоны) изначально вертикальная ориентация. Данный факт связан прежде всего с главной утилитарной задачей гаджета — совершением звонков. Нахождение динамика и микрофона на удалении и возможность держать аппарат одной рукой определяют его форму.


Горизонтальная же ориентация встречается, как правило, в двухмерных играх по той же самой причине — для максимальной видимости полезной игровой зоны. Плюсы и минусы, соответственно, обратные: возможность использовать две руки и меньшая мобильность. В связи с этим такая схема неплохо подходит Into The Dead 2, трёхмерному раннеру. С её помощью могут применяться дополнительные механики вроде стрельбы и гранат. К тому же это делает её более похожей на классические шутеры от первого лица.

Другое исключение из правила, Prince of Persia: Escape (GP/AS), оказалось менее удачным. Игра в стилистике самого первого Принца, по сюжету которого герой сбегал из темницы, чтобы спасти возлюбленную, в своём первоначальном виде была классическим раннером. Сейчас же в ней доступна другая схема управления: с джойстиком, кнопкой прыжка и без автобега, что превратило её в довольно посредственный платформер.


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

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

5. Иные основания

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

В зависимости от системы управления раннеры можно поделить на те, которые управляются тапоп (нажатием на экран), свайпом (проведением по экрану пальцем), гироскопом, виртуальными кнопками, и смешанные. Тут всё понятно и зависит, как правило, от предпочтений разработчика или игрока. В целом, чем проще механика, тем элементарней управление. В Canabalt — это одни тапы, потому что там нет ничего кроме прыжков. В Subway Surfers — только свайпы, потому что добавляется выбор дорожки. В Temple Run 2 одновременно присутствуют тапы для способностей, свайпы для поворотов и прыжков, а ещё гироскоп.


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

В зависимости от системы распространения все игры делятся на бесплатные, условно-бесплатные, по подписке и платные. Уверен, пояснять что есть что не требуется, но на всякий случай: вообще ничего и никак не платишь; платишь не деньгами либо платишь не за игру, а за её элементы; грубо говоря, арендуешь игру; заплатил и забыл.

В зависимости от возрастных ограничений наша подборка выглядит так:
3+ — Subway Surfers, Alto's Adventure, FOTONICA, Avicii | Gravity HD;
7+ — Canabalt HD, Vector, Robot Unicorn Attack 2, PAKO Forever;
12+ — Spider-Man Unlimited, Prince of Persia: Escape;
16+ — Into the Dead 2.


Выводы

2 октября 2019 года первому бесконечному раннеру исполнится десять лет. За это время жанр успел побывать революционным, захватить все топы мобильного рынка, наплодить тонну жадных до чужой славы клонов и развиться во всех мыслимых направлениях. Достиг ли он своего предела, следует ли исключить его из списка локомотивов мобильного геймдева, окажется ли предложенная классификация окончательной? Самое интересное в том, что никто не может этого сказать. Возможно, в следующую декаду будут выходить лишь вариации на исходную тему, а, может быть, уже завтра из него родится что-то, что определит совершенно новую разновидность видеоигр.

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


В этом посте мы рассмотрим как можно применить подход Двигателя на Тёмной Материи для создания бесконечного 2D фона.

Если вы сталкивались с мобильными играми в общественном транспорте, то наверняка могли заметить, что одними из самых популярных в поездке являются игры жанра Endless runner, например, Subway Surfers, а для любителей археологии примером может послужить Электроника ИМ23 “Автослалом”. Основным признаком данного жанра является бесконечно перемещающийся элемента(персонаж или другой объект), который обычно самостоятельно движется вперёд навстречу препятствиям, а управление даётся только для возможности эти препятствия избегать. Бесконечное перемещение подразумевает бесконечное пространство доступное для движения игрока, создание которых является не самой простой задачей, как могло бы показаться на первый взгляд. Этим постом мы открываем цикл, в котором рассмотрим элементы, которые помогут создать такие бесконечные, в каком-то смысле, миры.

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

Проблематика

Первым что приходит в голову, когда вас просят сделать корабль, который перемещается в пространстве, это добавить модель корабля, задать ему вектор скорости, привязать к нему камеру, подложить фон и начать сдвигать корабль вдоль вектора, помноженного на Time.deltaTime . Если откинуть очевидные вещи с ограниченными размерами фона, которые в любом случае придётся решать, главной проблемой бесконечного перемещения окажется координатное пространство Unity, которое привязано к переменным типа float и с увеличением координат точность будет падать. Для более точного описания проблемы вы можете посмотреть вот это видео "64 Bit In Kerbal Space Program".

Dark Matter Engine

Для решения данного вопроса можно использовать подход, с помощью которого работает Двигатель на Тёмной Материи из “Футурамы”. Если коротко описать принцип его действия, то двигатель двигает не корабль, а пространство вокруг корабля. То есть, в нашем случае вместо того чтобы двигать вдоль вектора скорости наш корабль мы будем двигать все объекты вокруг него в противоположном направлении. Таким образом, если наша камера привязана к кораблю, то мы всегда будем оставаться в точке начала координат и наша точность не будет падать из-за увеличения расстояния. Да и в целом для решения вопроса с бесконечным перемещением, выбрать началом координат наше положение выглядит более красивым решением, нежели привязываться к какой-либо другой точке в пространстве.

Задача

Сделать перемещение космического корабля вдоль бесконечного 2D фона. Корабль можно поворачивать вокруг оси Z при помощи клика по правой/левой стороне экрана. Камера всегда будет сонаправлена с вектором движения корабля.

Решение

Я не буду распространять ассеты, которые используются для примера. Найти подходящие вам ресурсы это тоже большая работа и я предлагаю вам в этом потренироваться, если не знаете с чего начать, то можно посетить бесплатный itch.io или поискать в интернете "Free game assets" .

Нам понадобится текстура для корабля и текстура для фона. Основное требование к фону будет его зацикленность как в вертикальном, так и в горизонтальном направлении.

  1. Добавьте в проект текстуры корабля и фона, для фона необходимо выставить Mesh type - Full rect и Wrap mode - Repeat
  2. Создайте структуру объектов такого содержания
  3. Добавьте текстуру для корабля
  4. Добавьте текстуру для фона, выставите Draw mode - Tiled и Order in Layer = -1
  5. Создайте скрипт UniverseHandler, добавьте его к объекту Universe

Результат

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

Альтернативные решения

Программирование - это такая область, в которой в целом нет абсолютно правильных решений, перед программистом при решении практически любой задачи открывается довольно большой выбор методов, при помощи которых будут выполняться поставленные условия. В данном случае также можно поступить несколькими способами. Например, можно вместо спрайта сделать объект типа quad и настроив материал, который также использует тайловую структуру управлять её смещением, что избавит нас от перемещения объекта совсем. Если же вернуться к более классическому варианту, то можно скомбинировать обычное перемещение объекта и сдвиг центра координат для всей сцены сразу, по достижению каких-либо пределов.

Заключение

Когда мы задумываемся о создании бесконечных пространств подход Двигателя на Тёмной Материи является основным средством обхода ограничений точности для Unity. Совмещённый с обычными передвижениями сдвиг центра координат тоже можно отнести в эту же группу. Приведённый же пример прекрасно подходит для создания фонов и эффекта параллакса. Однако, работа с более сложными объектами требует иных подходов и для создания реальных неограниченных пространств необходимо ввести множество других механик. Эти вопросы мы рассмотрим в следующих статьях цикла про бесконечные миры. Пока! =)


Правим сохранение самостоятельно. Здесь рассказано, как читерить в Snowrunner.

Особенности мода
Нужный файл находится по пути Documents\My Games\SnowRunner\base\storage\1638\CompleteSave.dat
Находим его и открываем при помощи блокнота (рекомендую notepad++).

Чтобы получить любое количество денег ищем параметр "money":. После двоеточия вписываем сумму, которую нужно получить.
Чтобы получить опыт ищем параметр experience и вводим нужное количество опыта.

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

Читайте также: