Разработка компьютерной игры в жанре «платформер» на базе 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 |
Файлы в этом документе
Имя: 2018_401_shalagin .
Основы разработки компьютерных игр в жанре платформера
- Электронный архив РГППУ
- Общеуниверситетские коллекции
- Выпускные квалификационные работы
Пожалуйста, используйте этот идентификатор, чтобы цитировать или ссылаться на этот ресурс: 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/