Найти тему
Unreal Engine

Часть 3: Создание игры на движке Unreal Engine.

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

Начало работы:

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

Теперь нам надо создать новый проект с шаблоном Blank.

После того как, мы это сделали у нас откроется проект. Сейчас нам надо открыть панель исходных текстов и перенести наши заготовки в Content Browser.

-2

Теперь нам надо создать новую папку под названием Maps и нажимаем cntr + s. чтобы сохранить текущую карту. В этом окне создаём идентификатор без имени, потому что у нас будет только одна карта. После этого создаём папку Blueprint. В ней мы создаём пользовательский интерфейс, то есть виджет.

-3

Открываем его и заходим в Palette. В ней мы ищем горизонтальную рамку и перетаскиваем её на панель. Это будет нашими очками. Устанавливаем её куда хотим. Теперь нам надо, чтобы там был текст. Заходим в палитру и ищем Text. Перетаскиваем его в наш виджет очков и называем его Score title. После меняем название самого текста на Очки: . Можем поменять цвет и размер, если захотим. Теперь сделаем счётчик очков. Теперь нам надо отфильтровать панель холста. Переходим в панель, и ищем Canvas Panel. Это будет панелью завершения игры. Я решил сделать её по середине. Настраиваем её расположение. Название будет 'Конец Игры'

-4

Далее настраиваем цвет. После этого создаём текст Restart. делаем всё тоже самое. Название будет " 'Нажмите 'R', чтобы начать сначала' ". Теперь будет делать анимацию конца игры. Нажимаем на панель завершения игры и находим кнопку Animation. Добавляем анимацию и нажимаем на кнопку Track. В ней мы выбираем Game Over Panel. У нас появится слот и на нём, мы выбираем Layout Data Offsets. Теперь у нас появились четыре значения: Left, Top, Right, Bottom. Справа у нас появилась панель и на ней мы отодвигаем стрелку на одну секунду. Выбираем любое из четырёх значение, которые вам понадобиться и настраиваем удобную высоту.

Теперь нам надо включить функцию is Variable для таких вещей: Restart, панель конца игры и счётчик очков.

-5

Теперь переходим в графы и устанавливаем видимость наших панелей и сделаем счётчик обновления очков.

-6

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

-7

Теперь нам надо создать Blueprint уровня. Чтобы это сделать надо нажать на верхний значок Blueprint и выбрать open level blueprint. Теперь нам надо установить цель просмотра камеры.

-8

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

Чтобы сделать перечисление надо создать Blueprint Enumeration. Нажав правую кнопку мыши на панели Content Browser и внизу будет написано blueprint и в ней надо выбрать Enumeration. Заходим и добавляем четыре цвета.

-9

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

-10

Когда мы закончили, нам надо перейти в Event Graph и создать пользовательское событие SetFood. В нём будет код, с помощью которого еда будет менять свой цвет со временем.

-11

-12

Когда мы закончили с едой. Нам нужно создать стены для ландшафта, чтобы змея не ушла за карту.

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

-13

После этого снова создаём Blueprint Snake Body. Добавляем компонент Paper flipbook и добавить новую переменную is head.

-14

Когда мы с этим закончили создаём Blueprrint MainGame. Заходим и создаём новый массив под названием Snake Parts. Далее создаём два направления: X и Z(integer). Далее создаём функция направления движения(boolean). Создаём два значения: X и Z(float). Создаём два массива: food actor и wall brick. К food actor мы присваиваем blueprint FoodActor. а к wall brick blueprint BlockActor. Добавляем функцию Delay(float) это будет нашей задержкой перед изменением цвета. Также добавляем значение is dead. Далее делаем значение. которому мы присваиваем значение blueprint WG_Hud, то есть это будет нашим худом. И добавляем значение очков. И должно получиться это:

-15

Теперь перейдём к созданию кода.

Для начала создаём пользовательское событие появления змеи.

-16

-17

После создания нашей змеи делаем создание нашей еды для змеи, использовав всё тоже пользовательское событие.

-18

-19

Теперь создаём пользовательское событие смерти змеи.

-20

-21

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

-22

Теперь, нам надо сделать событие начала игры. В нём мы делаем свёрнутые графики. Чтобы это сделать надо нажать правую кнопку мыши на объект из которого вы хотите сделать график и выбрать Collapse Graph.

-23

Свёрнутые графики:

1. Create Hud Widget

-24

2. Select Random Start Direction

-25

3. Set Update Delay

-26

4. Spawn Snake Head

-27

5. Spawn 1st Food

-28

6. Spawn Walls

-29

-30

-31

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

-32

-33

1. Check Death Condition 1

-34

2. Restart Sequence

-35

-36

3. Wait

-37

4. Sequence 1

-38

5. Check Head-Self Collision

-39

-40

-41

6. Check Death Condition 2

-42

7. Sequence 2

-43

8. Check Inputs

-44

-45

9. Move Snake

-46

-47

-48

10. Check Head-Food Collision

-49

11. Update Score

-50

12. Destroy Current Food

-51

13. Spawn Snake New Part

-52

14. Spawn New Food

-53

15. Speed up Snake

-54

На этом игра почти закончена. Осталась самая маленькая часть. Когда мы проигрываем и перед нами всплывает окно поражения, нажав 'R' ничего не происходит. Чтобы это починить надо нажать на BP_MainGame в World Outliner. И внизу будет Input в ней будет строка Auto Receive Input. В ней надо поменять на Player 0.

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

Snake 2D 4.17.2.rar

В ней находится Проект и Спрайты.