«Робот — Гобот» или изучаем азы программирования видеоигр в Godot

59354c02e19f5c2654bbd11e193d61d7.png

Давным-давно, в далеком далеком подростковом возрасте, я загорелся идеей разрабатывать компьютерные игры. 

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

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

Героем обзора станет интерактивный учебник с открытым исходным кодом Learn GDScript From Zero, который плавно погрузит абсолютных новичков в основы программирования для игрового движка Godot.

Оглавление:

Введение

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

Godot — open source движок для разработки видеоигр. 

На мой субъективный взгляд он менее популярен чем Unity или Unreal Engine, но зато полностью бесплатный, кроссплатформенный и легковесный. Теоретически есть даже версия среды разработки для смартфонов на Android. Не могу сказать, что в версии для смартфона удобно работать, но с ее помощью действительно можно запустить проект с игрой.

Актуальная на текущий момент версия Godot 4 для реализации логики официально поддерживает свой собственный язык GDScript (почти Python), C#, C++, C. Поддержка других языков программирования может быть реализована энтузиастами.

Стоит ли начинать изучение разработки игр с Godot? Честно скажу — не знаю. 

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

Лично мне кажется, что попробовать стоит.

Godot очень легко установить и на мой взгляд он дружелюбнее к новичку чем Unity (больше мне сравнить не с чем).

Как минимум его можно освоить просто «для души».

Но сегодня все же речь пойдет не о движке, а всего лишь о небольшом интерактивном учебнике. Если вы никогда не писали свой write («Hello world!»), эта статья для вас.

GDQuest’s Learn GDScript From Zero — можно запускать прямо из браузера, а можно скачать версию для ПК, обе версии позволяют сохранять прогресс обучения, но версия для компьютера мне показалась более шустрой.

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

Давайте познакомимся с нашим героем поближе.

Теория

В настоящий момент учебник содержит 28 глав, которые плавно начинают рассказ с самого понятия «программный код», затем плавно объяснят базовые концепции функции / переменная, научат писать условия и циклы, а затем расскажут о разных типах и структурах данных.

5eab4c5178450749278a33ec448d50af.png

Учебный процесс в общем случае построен следующим образом:

  • читаем текст;

  • запускаем интерактивные примеры;

  • отвечаем на простой вопрос «викторины»;

  • ниже открывается следующий кусочек страницы с теорией;

  • после каждого урока практическая часть.

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

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

Посмотрим на пример одной главы.

Текстовая часть. Иногда дополняется спойлерами и всплывающими подсказками.

95e54a5d3743afc21f709f60833c79b8.png

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

b7d69df76473380535052982750efe86.png

Или популярная ныне черепашка (аналог Кенгуренка ROO из моего детства).

ff4da2f3b7d79b2f0ead59b73da1b303.png

И даже элементы инвентаря.

6e2865aad69bf8ab012896a94916ed09.png

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

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

31e87f61e2388b09a7f6ac628cdcc8f7.png

После правильного ответа, откроется следующая секция урока.

a787ada763e9961b0f707df8d2bfaf9c.png

В конце теоретической части всегда будет одно или несколько практических заданий.

275645d2051264ce3aa68bbdc2f99706.png

Практика

Практический блок выглядит достаточно стандартно.

На мой взгляд интерфейс данного модуля как-то неуловимо готовит вас, к работе непосредственно с движком. 

Можно запустить сцену и посмотреть результат, есть консоль, подсветка кода и блок с документацией.

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

Первые задания будут простые. В данном случае буквально надо убрать знак комментария перед return.

a7c412b22de1f43a91c62d8f5474364c.png

Пример успешно выполненного задания из более поздних тем.

42a0228e9d6b94cb6c0b1b94243bf879.png

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

4eb084ea8a6af16d86d7b379169d8b83.png

Если вы совсем застряли всегда можно загрузить готовое решение.

9697769bb6ad4ff3a250e5cdd4a012b9.png

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

Что дальше?

Я думаю, что пройти данный учебник вполне реально за один день. 

Поэтому если вы на кураже от успехов, захотите и дальше погружаться в разработку видеоигр на Godot, авторы учебника предложат вам записаться на платный курс (около $80). Поскольку у меня нынче нету карт заморских-платежеспособных, я не проверял возможность оплаты. Но приятно что на курс для региона РФ дают скидку 40%.

Не хотите проходить платный курс? Ничего страшного. Автор учебника, написал отличные стартовые туториалы в разделе «Getting started» официальной документации. 

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

Даже не смотря на то, что не все страницы адаптированы под Godot 4.0 в процессе их освоения я ни разу не застревал надолго. Все что нужно описано текстом, продублировано скриншотами и примерами кода.

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

Думаю, что это не последняя статья про Godot. Поэтому если мне удалось вас заинтересовать предлагаю подписаться. Также милости прошу в комментарии, обсудить статью и сам учебник.

Для самых терпеливых — ностальгическая картинка с роботами — гоБотами

b00761e308ddf2808e67f9ee5752b768.png

© Habrahabr.ru