Найти тему
Deryo

Разработка игры без специальных навыков

Здравствуй, мой дорогой читатель! Если ты открыл этот пост, то скорее всего, хочешь создать свою игру, при этом не имея навыков. Однако стоит сказать, что кнопку «Нажать и создать компьютерную игру» человечество пока не изобрело. Зато создано много программ, которые превращают этот процесс больше в творческий, чем в технический. Начнём!

Для начала нам нужен инструмент, на котором мы и будем делать наш игровой проект. Unity, Unreal Engineможно сразу отбросить. Ведь даже сами разработчики этих движков позиционируют их как профессианальные инструменты, а мы ищем что-то простое. Я искал бесплатный коструктор, который сейчас должен быть в активной разработке. И нашёл – GDevelop, его я и предлагаю использовать. https://gdevelop-app.com/ - это ссылка на него.

Установив его, мы можем приступить к самой разработке. Заходим в программу, и видим вот это меню:

Нажимаем кнопку нового проекта, и видим целую панель шаблонов небольших проектов. Однако из всего этого, нам нужен только пустой проект. Тут можно увидеть путь к файлу:

-2

Мы создадим проект и увидим панель сцен, на которой создадим 2 сцены, перейдём на вторую(позже расскажу зачем).

-3

Вот, собственно, редактор сцены:

-4

Что бы она не казалась пустой, предлагаю добавить новый объект через панель справа, нажав на которую мы откроем специальное меню.

-5

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

У нас появится целое окно с разными опциями, включая имя и добавление спрайта. Предлагаю переименовать объект в "player".

-6

Далее нажимаем на кнопку «Edit with piskel» и делаем в редакторе обычный квадрат, это и будет игрок.

-7

Добавив спрайт, переходим во вкладку "behaviors", а в ней нажимает добавить новое.

-8

Поведения – это шаблоны элементов игры. Для игрока предлагаю добавить "Platformer character", потом возвращаемся к редактору сцены, перетаскиваем персонажа из панели объектов на неё:

-9

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

-10

После этого можно приступить к событиям, условиям и действиям, которые будут в игре. Рядос со вкладкой названия уровня видим вкладку его событий. Переходим и видим это меню:

-11

Добавляем новое событие и видим вот это:

-12

То, что слева – условие, а на против то действие, которое будет выполняться при его соблюдении. Если условия нет, а действие есть, то действие будет выполняться само по себе. Нажимаем добавить новое условие, и в полученном списке выбираем "Left key pressed". Потом добавляем действие "Flip horizontaly" и ставим "Yes". Потом добавляем нечто подобное, но с правой кнопкой, и отменяем поворот(на скрине я забыл добавить flip no).

-13

Теперь мы добавим новое действие без условия, но без определённого объекта, а через вкладку "Other conditionals". Там мы ищем камеру через поиск, выбираем "центрировать" на игроке.

-14

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

-15

Но и до кучи предлагаю третий тип платформы – хрупкая. Она будет ломаться при касании игрока. Добавим новый объект, который идентичен платформе за исключением цвета, и добавим событие, где при касании игрока объект удаляется. Из этого уже можно составить уровень. Однако, многие заметят, что при падении персонаж не умирает, а просто продолжает падать. Поэтому добавим событие, согласно которому мы будем менять сцену при падении, путем проверки позиции. У меня это >777(в GDevelop чем выше объект, тем < его позиция по Y). И да, мы меняем сцену на эту же, тем самым просто перезагружаем её. Вот все события:

-16

Потом добавим ещё один объект в виде треугольника без поведения, и при касании его игроком перезагрузим сцену, по сути это препятствие.

-17

Потом можно составить уровень получше.

-18

А вот дальше нам предстоит поработать с переменными, ведь мы добавим врага, который будет патрулировать зону. Для этого добавим объект(у меня это зелёный квадрат) и добавим ему поведение как у игрока, однако уберём галочку о стандартном управлении. Теперь он не управляем игроком, но подвержен гравитации. А теперь переменные! Объявлять их тут не обязательно. Просто добавим условие врагу, которая будет проверять значение переменной(пусть 0).

-19

Потом добавим действие, согласно которому мы добавим врагу толчёк(сила будет с отрицательным значением, из-за чего враг будет двигаться влево).

-20

Потом добавим похожее условие, но значение переменной должно быть 1, а сила движения положительной.

-21

Но как мы изменим направление врага, при этом не меняя значение переменной? Поэтому добавим в проект два одинаковых объекта с разными названиями. У меня это velocity_changer1 и velocity_changer2. Далее добавим условие при старте сцены, и сделаем их невидимыми.

-22

Потом добавим событие, согласно которому враг будет менять переменную, касаясь то одного, то другого velocity_changer’а.

-23

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

-24

Добавим событие, что бы монета исчезала при касании игрока.

-25

А вот с текстом всё чуть сложнее. Нам будет нужна переменная, ведь текст будет показывать кол-во собранных монет. Для начала нажмём на значок в верхнем левом углу, потом на троеточие рядом с названием сцены, для которой создаём переменную(эта сцена с игроком).

-26

Потом выберем "Edit scene variables":

-27

Тут создадим переменную coins, которой присвоим значение 0.

-28

После этого мы опять идём к событию, в котором монетка касается игрока. Добавим действие, что к переменной coins будет добавляться 1.

-29

Вот события в игре после этого:

-30

Теперь привяжем текст к значению переменной: добавим для текста действие без условия, что бы текст модифицировался под значение переменной(название переменной пишем в кавычках).

-31

Теперь мы можем перетащить текст на сцену, и он будет показывать кол-во монет у игрока. Однако, можно заметить, что он не будет «висеть» как UI на экране. Что бы это исправить, создадим через редактор слоев, который находится снизу, новый слой, после чего нажав на текстовый объект на сцене, в левой панели изменим ему слой на название нового(если нет редактора слоёв, то это пятая кнопка на верхней левой панели, если считать с левой стороны). Я назвал этот слой ui. Теперь текст будет "висеть". Осталось немного. Создадим новый спрайтовый объект, и в событиях добавим смену сцены, если его коснётся игрок. Но сцену мы будем менять на первую(да да, которую создали в самом начале), а не на ту же самую. Разместим этот объект в конце уровня, это финиш.

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

-32

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

-33

Готово! Теперь при нажатии кнопки игрок переместится на уровень, а после его прохождения в меню.

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