Нажмите ОК, если Вы выражаете свое согласие на обработку Ваших персональных данных в соответствии с Согласием на обработку персональных данных и Политикой конфиденциальности. Вы можете запретить обработку cookies через браузер.
ОК

Godot для детей: бесплатные уроки по созданию игр

Создать свою игру значит перевести в виртуальную реальность свои интересы, идеи и фантазии. Сегодня это может сделать не только взрослый, но и увлеченный играми ребенок. Один из инструментов, который помогает разработать интересный и увлекательный игровой проект и сделать его занимательным – это Godot. В статье расскажем про этот движок и курс в школе PIXEL, который поможет ребенку разобраться с ним на практике, а также опишем по урокам преподавателей школы для новичков, как создать в Godot базовое управление персонажем и ландшафт.

Попробуйте бесплатно!

Оставьте свой номер: мы позвоним, чтобы записать на бесплатное занятие и ответить на все ваши вопросы.

Что такое Godot и чем интересен для юных разработчиков игр?

Это современный движок с дружелюбным интерфейсом, на котором создают 2D и 3D игры разной сложности. Инструмент популярен по нескольким причинам:
  1. Простой интерфейс с минимумом панелей: легко разобраться и писать код игры.
  2. Оптимизированный для игр и легкий по синтаксису по сравнению с другими язык программирования GDScript.
  3. Можно создавать двухмерные и трехмерные игры.
Эти качества делают Godot, который можно изучать на русском языке, популярным при изучении в детских онлайн-школах, а ребенок воспринимает его как инструмент-помощник, который позволяет не разбираться в сложностях кода, но получить собственный занимательный игровой проект.

Урок №1: Базовое управление персонажем

В этом видео я покажу тебе, как создать базовое управление персонажем от первого лица для твоей 3D-игры.

Создание сцен
Начнём с того, что создадим новый проект с настройкой Forward Plus. Если твой компьютер не поддерживает этот формат, просто используй совместимость.Также в метаданные контроля версии укажем Нет. Godot имеет систему сцен, а это значит, что всё, что более-менее работает отдельно, стоит делать отдельными сценами. Делаем три сцены. Для мира подойдёт обычный Node 3D, для игрока будем использовать Character Body 3D, а для платформы Static Body 3D. Все сцены будем хранить в папке Scenes.

Начнём с платформы, потому что это самое простое. Главный узел здесь – Static Body 3D. Наша платформа должна уметь делать две вещи: показывать какую-нибудь Mesh и не давать игроку провалиться через неё. Здесь нам помогут два узла: MH instance 3D и Collision Shape 3D. Для Collision Shape 3D настроим форму Box Shape 3D.

Для Mesh Instance 3D в качестве сетки тоже выберем куб. С помощью инструмента растяжения можно будет превратить её в любую прямоугольную форму. Сохраняем сцену и идём дальше. 

Настройка игрока
Теперь настроим игрока. С ним уже всё посложнее: во-первых, игрок должен иметь модель, во-вторых, должен уметь касаться объектов, в-третьих, должен уметь двигаться и прыгать, в-четвертых, должен уметь видеть, то есть нужно будет помучиться с камерой. Добавляем игроку Collision Shape 3D. Её можно выбрать из недавних. Также добавляем Mesh Instance 3D. Убедимся, что Mesh Instance 3D именно в игроке. Выставим Shape для Collision shape 3D. Для Mesh выставим Capsule Mesh.

Добавляем узел камеры. Вид выставляем сбоку. Выбираем инструмент позиционирования и выставляем камеру на уровне глаз игрока. Сохраняем сцену, добавляем скрипт. При добавлении скрипта убедимся, что включен шаблон. И как видишь, Годот написал у нас большую часть кода.

Давай протестируем его. Заходим на наш уровень и добавим сюда несколько платформ. Настраиваем размеры платформы. Дублировать платформу можно при помощи комбинации клавиш Ctrl D. После этого положение платформы можно поменять и сделать небольшой уровень. Вот такой уровень получился. Теперь добавим игрока. Убедимся, что игрок что-то видит. Также на уровень добавим Directional Light. Это будет наше солнце. Поднимем повыше и инструментом прокрутки наклоним солнце вниз. Запустим сцену. Отлично: игрок может двигаться и прыгать, но управлять им пока неудобно. Поэтому давай доработаем наш скрипт.

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

Далее пропишем функцию обработки событий. Эта функция знает, когда мышь двигается. Если мышь двигается и курсор мыши заблокирован, тогда прокручиваем персонажа. Поскольку камера является частью персонажа, она будет прокручиваться вместе с ним. Также камера должна уметь крутиться вверх и вниз, но с ограничениями.

Для ограничения используем функцию clampf. И вот наша функция целиком.
Теперь сделаем так, чтобы на старте игры курсор блокировался. Также, если мы нажимаем левую кнопку мыши, курсор тоже должен блокироваться. Напишем это условие функции Physics Process. А если мы нажимаем Escape, то тогда курсор должен появляться.
По стандарту, когда мы нажимаем на escape, активируется действие UI Cancel, поэтому используем его, чтобы отследить нажатие Escape. Если Escape нажат, то курсор должно стать видно, поэтому используем действие input.mouse mode visible. Давай проверим, как работает наша сцена. Теперь, как видишь, можно покрутить камеру и также можно двигаться персонажем.

Добавление действия игрока
Но это делать не совсем удобно, поскольку по стандарту для движения используются стрелочки. Давай добавим в наш проект новые действия. Заходим в проект, настройки проекта и выбираем пункт список действий. Здесь добавляем четыре действия: move left, move right, move forward и move back. Теперь настроим эти действия.

Нажимаем плюсик возле каждого действия, а после нажимаем на клавишу на клавиатуре, которая будет отвечать за это действие. Я использую стандартную раскладку для игр VASD. После настройки действий нужно поменять название действий в коде. Заменяю UI на move, а в UI up и UI down меняю на move forward и move back. Проверим, как работает. Теперь управлять персонажем гораздо удобней.

Что можно сделать еще?
Итак, мы сделали базовое управление от первого лица, настроили повороты камеры и даже разработали свои действия. Но что можно сделать дальше? Во-первых, можно найти модели для платформ персонажа и использовать их. Во-вторых, можно настроить окружение и свет в нашем проекте, чтобы уровень был красивее. В-третьих, можно добавить персонажа какие-нибудь новые суперспособности, например, ускорение или двойной прыжок.
Скрипт, разработанный на этом уроке, поможет тебе и в других проектах.


Скидка 10% для новых клиентов при записи в день обращения*
Отправьте заявку, и мы свяжемся с вами для консультации
* Скидка действует по промокоду на покупку первого абонемента от 12 занятий и более в день обращения. Новым считается клиент, прежде ни разу не приобретавший абонемент в школе.

Урок №2: Создание ландшафта

Отвечу на вопрос-комментарий с прошлого видео, как установить Godot. Всё просто: в Google можно написать Godot, зайти на официальный сайт и скачать самую последнюю версию. Оставлю ссылку в описании. После скачивания распаковываем архив и просто запускаем программу. Ничего устанавливать не нужно.

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

Создадим несколько нужных папок. Во-первых, создадим папку со сценами, назовём её Scenes. Также создадим папку со скриптами. Далее добавим папку для моделей. И также нам понадобится папка для данных Terrain. В папку со сценами переносим сцену с персонажем, который мы создавали в прошлом видеоролике. Если ты его не видел, обязательно посмотрите.

Открываем сцену с персонажем. Несмотря на предупреждение, всё равно открываем его. Как видишь, скрипта здесь нет. Нам также нужно перевести скрипт, который мы делали в прошлом видео. Выставляем скрипт в нужное поле в инспекторе персонажа, и он готов. У нас будет управление.

Для создания террейна понадобятся определённые текстуры и модели. Мы нашли очень хорошие, бесплатные в интернете. Можешь скачать их тоже по ссылке. Разрабатывать ландшафт с нуля для нас было бы очень трудно и, но можно не изобретать велосипед и воспользоваться плагином кодов, который поможет создать красивый ландшафт. Переходим на вкладку Assets Lib. Здесь в поиске напишем Terrain3D и выберем самый первый вариант.
Ждём загрузку. Для плагина в комплекте всегда идёт демо. И если оно тебе не нужно, его можно убрать. Жмём Установить. Теперь заходим в настройки проекта, находим здесь модули и включаем наш плагин. При создании скрипта персонажа мы составляли свои действия, поэтому пока мы в настройках, давай сразу же их добавим.
Отлично, всё готово.

Создание ландшафта
Теперь мы можем приступать к созданию ландшафта. Открываем новую сцену и добавляем обычный узел Node 3D и переименовываем его. Сразу же сохраняем сцену. Добавляем узел, который отвечает за рельеф местности. Он называется Terrain 3D. Как видишь, стоит предупреждение о том, что он не знает, где хранить свои данные, поэтому указываем папку, которую мы создали ранее.

Теперь мы можем использовать основные инструменты для террейна, чтобы менять рельеф. Основные инструменты – это поднять рельеф, сгладить рельеф, поднять высоту рельефа, чтобы делать плоские зоны или, наоборот, сделать ямы и также сделать наклон. Внизу, как видишь, есть дополнительные инструменты: размер и сила кистей.

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

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

AlbedeTexture
Но самое интересное наступает тогда, когда мы заменяем AlbedeTexture. Для стандартной текстуры я выберу dry. Переношу материал с названием div. AlbedeTexture. И как видишь, текстура нашего рельефа сразу же преобразилась.
Но сейчас пока текстура очень плоская. Для того, чтобы это исправить, можно также добавить Normal Map. Сразу скажу, что добавление NormalMap заметно снизит мощность компьютера, если у тебя нет дискретной видеокарты. Поэтому с этими картами лучше быть аккуратным. Тем не менее, если нужно качество и мощность компьютера позволяет, используй как AlbedeTexture, так и Normal Texture.

Добавляем ещё одну текстуру для того, чтобы нарисовать землю. Передаю в эту текстуру Albedo Texture. Беру любую кисть, которая нравится. И здесь можно указать дополнительные настройки. К примеру, можно ограничить наклон, под которым кисть будет рисовать. Сейчас я сделал так, что кисть не будет рисовать на пологих склонах, потому что обычно трава и земля осыпается с них. Таким образом террейн будет выглядеть гораздо лучше.

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

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

Декорации ландшафта
Ландшафт готов. А теперь перейдём к декорациям. Под ними понимают растения, трава и деревья. Добавить их на сцену очень просто. Открываем инструмент instance. В меню внизу нажимаем на плюс. Это добавит новую Mesh или сетку для рисования декорации. Теперь берём любую модель и перетаскиваем её в поле Scene File.
Далее настраиваем кисть и рисуем траву. Обрати внимание, что скорее всего придётся немного поработать над масштабом модели, потому что, к сожалению, нет единой системы создания размеров, так что её реальные размеры в движке приходится подбирать непосредственно при работе с ней. Для изменения масштаба просто нажми на инструмент Масштаб и выбери новый размер процентов. К примеру, для этой модели отходит размер 1000%.

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

Добавление окружения и света
И также на нашу сцену обязательно нужно добавить environment и свет.
Это нужно, потому что при запуске игры стандартный свет на сцене обнуляется. Добавляем узел World Environment. Добавляем на него новый environment и настраиваем бэкграунд. Как Sky создаём процедурно генерируемое небо. Добавляем в World Environment узел Directional Light Red. В его трансформе в Rotation по X или по Z можно поставить наклон, но стоит ставить с минусом для того, чтобы свет смотрел вниз.

Если видишь, что у тебя немного подлагивает, можно попробовать в узле Terrain 3D настроить размер сетки. Найди там поле Mesh size и уменьши его. К примеру, я уменьшил с 48 до 12, и FPS увеличится. Перейду на вкладку Game и сделаю так, чтобы сцена запускалась прямо в редакторе. Так управлять гораздо удобнее. Запускаю сцену и посмотрим, как выглядит наш мир.

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

Курс Godot для начинающих в школе Pixel

Школа программирования PIXEL приглашает учеников 2-5 классов на курс по Godot, который научит работать в этом инструменте, чтобы создавать собственные игры.

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

Что дает ребенку изучение движка Godot?

Инструмент очень интересный, несмотря на простоту и поможет развить множество навыков:
  1. Уметь создавать двух- и трехмерные игры с захватывающей механикой.
  2. Представлять разработку игры изнутри и иметь базовое представление о гейм-дизайне: ребенок узнает, как делать игру по-настоящему захватывающей.
  3. Знание инструментов анимации и графики, которые дают широкие возможности и помогут сделать фантазию реальностью, дополнив деталями.
  4. Знание, как писать код игры и добавлять в нее анимацию.
  5. Умение тестировать игру и находить ошибки, чтобы она стала интересной для пользователя.
  6. Навык презентовать свою работу и давать обратную связь по проектам других учеников.
  7. Умение работать в команде, когда нужно распределить роли, доводить до конца доверенную тебе задачу, обмениваться предложениями, как сделать проект лучше.
Изучение Godot на курсе и по видео-урокам станет интересным досугом, даст полезные навыки, сформирует тип мышления, когда ребенку интересно фантазировать и создавать уникальный игровой проект.

FAQ

Обычно на обучение приходят дети, которые увлекаются играми и фантазируют, как можно сделать более захватывающими уже реальные игровые проекты. Ребенок может любить дополнять игру новыми персонажами или рассказывать идеи, как улучшить ее ландшафт, каким уровнем дополнить. Обычно ученики курса – очень креативные дети, которые хотят быть не только пользователями цифрового мира, но и создавать его сами.
Понравилась статья?

Читайте также:

    Подборка курсов

    Заполните заявку
    на доступ
    кбесплатным
    курсам для детей
    После заполнения формы вы получите доступ в личный кабинет
    Понадобится помощь взрослого*