...

Основы разработки компьютерных игр в жанре платформера

Разработка компьютерной игры в жанре «платформер» на базе Unity

JavaScript is disabled for your browser. Some features of this site may not work without it.

dc.contributor.advisor Шангин, Р. Э. ru
dc.contributor.author Шалагин, Д. С. ru
dc.date.accessioned 2019-03-13T05:28:21Z
dc.date.available 2019-03-13T05:28:21Z
dc.date.issued 2018
dc.identifier.uri http://dspace.susu.ru/handle/0001.74/22957
dc.publisher Южно-Уральский государственный университет ru
dc.subject информационные технологии ru
dc.title Разработка компьютерной игры в жанре «платформер» на базе Unity ru
dc.type Thesis en
dc.thesis.level Бакалавр ru
dc.thesis.speciality 02.03.02 – Фундаментальная информатика и информационные технологии ru
dc.publisher.department Высшая школа электроники и компьютерных наук ru
dc.publisher.subdepartment Кафедра системного программирования ru



Файлы в этом документе

Thumbnail

Имя: 2018_401_shalagin .

Основы разработки компьютерных игр в жанре платформера

  1. Электронный архив РГППУ
  2. Общеуниверситетские коллекции
  3. Выпускные квалификационные работы

Пожалуйста, используйте этот идентификатор, чтобы цитировать или ссылаться на этот ресурс: https://elar.rsvpu.ru/handle/123456789/20405

Название: Компьютерная игра платформер
Автор: Байбатыров, И. Л.
Научный руководитель: Толстова, Н. С.
Дата публикации: 2017-06-22
Издатель: Российский государственный профессионально-педагогический университет
Библиографическое описание: Байбатыров И. Л. Компьютерная игра платформер : выпускная квалификационная работа / И. Л. Байбатыров ; Рос. гос. проф.-пед. ун-т, Ин-т инж.-пед. образования, Каф. информ. систем и технологий. — Екатеринбург, 2017. — 56 с.
Аннотация: Целью работы является создание прототипа однопользовательского двумерного платформера для персональных компьютеров. Для достижения цели были проанализированы современные тенденции в разработке компьютерных игр, исследованы средства разработки компьютерных игр и проекты конкурентов. На основе этих элементов создан прототип однопользовательского двумерного платформера для персональных компьютеров, содержащий в себе 1 уровень с реализованной основной игровой механикой
Ключевые слова: КОМПЬЮТЕРНАЯ ИГРА
ВИДЕОИГРА
ПЛАТФОРМЕР
09.03.02
Источники: ИИПО-ИС
Располагается в коллекциях: Выпускные квалификационные работы

Файлы этого ресурса:

Файл Описание Размер Формат
RSVPU_2017_334.pdf 2,02 MB Adobe PDF Просмотреть/Открыть

Про создание платформера на Unity. Часть первая, характерная

Все мы здесь любим качественные пошаговые руководства для начинающих, чего уж греха таить. По платформерам на Unity руководств много, а вот качественных не то что бы и очень. Сегодня мы попробуем добавить в копилку хороших уроков еще один. А создавать мы будем персонажа для 2D-платформера, ни больше, ни меньше.

Присоединяйтесь, учитесь, но помните: под катом очень много гифок.

Итак, с чего начать создание персонажа? Конечно же, с его спрайта. Достаточно перетащить картинку из любой папки на жестком диске во вкладку Assets, а оттуда — прямо на сцену. Оговорюсь сразу, в этом уроке мы не будем рассматривать создание анимации. А вот в следующих частях цикла — будем.

Как видите, после добавления на сцену (условимся, что это полноценный аналог словосочетанию scene view) у спрайта появились два компонента. Первый — transform. Он отвечает за расположение любого игрового объекта на сцене, его масштаб и текущий угол поворота относительно осей. Компонент sprite renderer как раз занимается отрисовкой спрайта нашего обаятельного носача в процессе редактирования и игры.

Но пока персонаж всего лишь картинка, он не может взаимодействовать с окружающим его миром. Для этого на помощь приходят компоненты, спрятанные во вкладке physics2d. В нашем случае это box collider и circle collider. Первый мы добавим на верхнюю часть персонажа для столкновений со стенами и всем остальным, а второй расположим на уровне ног. Это позволит двигаться по наклонным поверхностям (и поверхностям с небольшим перепадом высот) без особых проблем.

Теперь, чтобы на героя действовала, допустим, гравитация, добавим ему rigidbody2D (ну или твердое тело, как вам больше нравится). Для этого все в том же меню add component -> physics2D выберем пункт rigidbody2D и к спрайту сразу же добавится еще один компонент.

Если вкратце:
mass отвечает понятно за что;
linear drag и angular drag — линейное и угловое сопротивление, соответственно;
gravity scale — коэффициент гравитации для конкретно этого объекта;
fixed angle отключает переворот персонажа при столкновении с чем-нибудь, допустим, летящим;
isKinematic фиксирует объект раз и навсегда в одной точке;
interpolate устанавливает режим сглаживания при отрисовке персонажа;

Для платформера стандартное значение гравитации (-9.81 по оси Y) не очень подходит, поэтому изменим его на какое-нибудь магическое число. Например, -30. Для этого зайдем в Edit — Project Settings — Physics2D и заменим нужное значение в инспекторе.

На этом пока перестанем добавлять персонажу компоненты. Но сделаем кое-что из него. Для того, чтобы нам не приходилось тысячу раз добавлять одинаковые компоненты на каждом, допустим, уровне, в Unity есть механика под названием prefabs. Она позволяет создать из игрового объекта «болванку», которую можно использовать много раз и менять как своей душе угодно, не боясь за то, что какие-то экземпляры могут не измениться. Для создания префаба достаточно просто перетащить объект из иерарахии во вкладку assets. В моем случае еще и в папку prefabs.

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

Самое время научить персонажа двигаться. Перетащим заранее подготовленный скрипт (его нужно скачать и сохранить в папку assets) прямо на персонажа в hierarchy view.

У этого кусочка кода есть ряд параметров, которые отвечают за поведение героя в игре.

maxSpeed и JumpForce — максимальная скорость (по горизонтали) и сила прыжка. Экспериментально проверено, что для массы, равной единице, и гравитации -30 значения maxSpeed=10 и jumpForce = 700 являются оптимальными.

groundCheck — дочерний объект, находящийся в нижней точке спрайта и отвечающий за определение того, находится ли нечто, чем мы управляем, на «земле»

whatIsGround — что, собственно, считать землей. В нашем случае «землей» считается все, кроме персонажа

groundRadius — некая величина, в пределах которой проверяется столкновение с поверхностью.

В итоге, строчка grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround); проверяет, пересекает ли groundCheck с радиусом groundRadius поверхность и, допустим, запрещает прыгать в нужных случаях.

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

Герой прекрасно двигается (хотя, возможно, и не совсем прекрасно), и это создает для нас отличные предпосылки продолжить создание платформера.

А в следующей части мы разберемся как управлять камерой, узнаем кому нужно зажигание звезд и создадим самого первого врага. И да, попутно исправим один критический баг, беспечно пропущенный в статью во время этого урока. Догадаетесь, какой?

Если эта статья вдруг пробудила в вас желание написать собственную игру, то не растрачивайте его впустую! Прямо сейчас проходит конкурс, стать участником которого слишком просто: достаточно зарегистрироваться, выложить свою игру в store и дождаться объявления результатов. А победителей ждут Xbox One и великолепные Lumia 930!

Пойду дописывать свой Angry Flappy Swompy 3 Deluxe. Stay tuned, вторая часть статьи в ближайшие дни!

А вот и другие наши статьи по схожей тематике:

  • Супер-полное руководство по публикации в Microsoft Store;
  • Программируем в мире Minecraft;
  • Другая реальность финансового рынка.

При подготовке материала использовались источники:
https://dspace.susu.ru/xmlui/handle/0001.74/22957?show=full
https://elar.rsvpu.ru/handle/123456789/20405
https://habr.com/ru/companies/microsoft/articles/236125/