Создал свою первую в жизни игру

Создал свою первую в жизни игру

Всем привет, это Денис Вебер.

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

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

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

Можно подумать, что мои попытки написать пару строчек кода в кадрах программы Macromedia Flash привели меня к успешной и счастливой жизни разработчика игр, но это не так. Передвигать объекты и отслеживать нажатие кнопок было для меня конечно круто, но на этом всё и закончилось. Ну, а снова к созданию игр я подошёл только сейчас.

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Не буду скрывать, у меня уже был некоторый опыт программирования. Я создавал приложение для Android и немного писал код для Unity. Но полноценную игру я не пробовал делать никогда.

Создал свою первую в жизни игру

Я решил выбрать один из трёх своих проектов. И выбор пал на Super Mario Brosthers 3. В этой игре достаточно простая механика, минимум анимации и интуитивно понятное управление. И делать я её решил конечно в 3д.

Создал свою первую в жизни игру

Так как я никогда не разрабатывал игры, то иногда мне было ой как непросто. Но обо всё по порядку.

Как я и говорил, у меня был какой-никакой опыт работы в Unity и опыт написания кода на языке C#. Но, в общем, это всё, что мне могло помочь. Я решил начать с простого: подготовить графику для загрузки в движок.

Несмотря на то, что вся графика была готова, мне всё равно пришлось многое доделывать и переделывать. Где-то была неподходящая геометрия или размеры, а в других местах путаница с материалами.

Создал свою первую в жизни игру

Если раньше научиться программированию во Flash можно было по книгам, то теперь всё то же самое, а то и больше делает для нас YouTube.

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

Поэтому я решил, что все объекты будут в 3д, но сама игра всё-таки должна походить на классическую версию, с камерой, которая передвигается по одной траектории. Соответственно и сам Марио будет передвигаться только влево и вправо. Можно будет придумать как дать Марио запрыгнуть на эти большие блоки, но оставлю это на потом.

Создал свою первую в жизни игру

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

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Как и в 3д, разработчикам игр бывает полезно посмотреть референсы, поэтому я открыл эмулятор оригинальной игры и какое-то время поиграл в него, пытаясь уловить непонятные мне раньше моменты.

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

На самом деле, несмотря на схематичность геймплея, игра понемногу начинает обрастать своей механикой.

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

Для 8битной игры врагов здесь действительно много. Только в первом уровне их целых шесть видов. Я решил ограничиться всего тремя, но для начала их вполне хватит.Цветок вылезает из трубы и плюётся огненным шаром.Я написал таймер, который заставляет врага появляться и исчезать бесконечное количество раз.

Создал свою первую в жизни игру

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

Для прошлого видео я не создавал модельку Марио, поэтому в этот раз пришлось делать и её. Я не повторял все модели из игры точь-в-точь, только, скажем так, вдохновлялся оригинальным артом. Будем надеяться, что Нинтендо закроет на всё это глаза.

Создал свою первую в жизни игру

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

Я добавил в Blender анимации бега и прыжка и отправил Марио прямиком на сцену игры.

Создал свою первую в жизни игру

Настроить анимацию в Unity ещё та задача. Даже для человека, который уже долгое время работает в 3д программе и настраивает анимацию в ней. Здесь всё совсем по-другому. Большую часть времени всего создания игры ушло именно на добавление и редактирование анимации. И последний найденный баг был именно в анимации. Уверен, что вы, поиграв, без проблем найдёте ещё десяток багов.

Создал свою первую в жизни игру

Один из самых узнаваемых врагов всей серии Марио - это конечно же Гумба. Я до сих пор не понимаю кто это, но Гумба по-прежнему напоминает мне сову.

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

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

Создал свою первую в жизни игру

А теперь бесконечный поиск багов. Хочется показать сразу на сто процентов рабочую версию игры, но с первого раза такое никогда не получится. Я в любом случае рад, что смог создать свою первую в жизни игру. В неё уже сейчас можно поиграть, скачав по ссылке под видео, в моём телеграм канале.

Создал свою первую в жизни игру

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

Кто знает, может моим следующим проектом станет игра по мотивам Battletoads.

Создал свою первую в жизни игру

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

Оригинальное видео:

7777
23 комментария

А где созданая игра? Увидел марио. Или сегодня спиздить чужую игру называется "создал свою игру"? Ещё и монетизировать как-то хочешь. Зачем прям считай один в один копировать? Оставь геймплей и поменяй скрины у моделек. Всем будет понятно что очередная копия марева, но люди хотя бы увидели что ты можешь что-то и сам, а не просто копировать. Не мог гг, врагов и задний фон сам придумать?

24
Ответить

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

6
Ответить

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

16
Ответить

Мои поздравления! Только сегодня на Habr читал)

https://habr.com/ru/post/675736/

7
Ответить

В чём молодец?

2
Ответить

Молодец, что осваиваешь геймдев. Только вот такие поделки выкладывать не стоит и тем более пытаться их монетизировать. Сделал, друзьям показал, начал делать новую игру. И показывать уже тогда, когда это будет не неумелая копия чужой игры , а оригинальная задумка, с твоим собственным геймплеем/идеей и твоими собственными ассетами.

Существование же этой "первой игры" не несёт никакого смысла, хотя бы потому что игра про марио уже существует, она лучше твоей "первой игры" и в неё играют игроки.

5
Ответить

ну ёмоё, а моей первой была одна из этих (смотря как считать), умеют же люди https://store.steampowered.com/app/1629150/Gazmatera_Return_Of_The_Generals/

3
Ответить