Как интегрировать новые языки программирования в Godot Engine (в частности Lisp)?
Интересуюсь движком Годо Энджен. Одна проблема, он не поддерживает мой любимый Каммон Лисп, а тратить время на освоение предложенных языков я не готов. Можно ли интегрировать Лисп в Годо, и при этом не писать новую реализацию с нуля? При этом, должны работать все встроенные функции и библиотеки, а так-же созданные другими пользователями. Есть ли способ подключить хоть какой-то язык, кроме встроенных?
- Вопрос задан более двух лет назад
- 282 просмотра
9 комментариев
Средний 9 комментариев
Уроки Godot Engine

#1 – Введение в движок Godot. Почему про него все говорят?
Представляем вам курс для новичков по изучению игрового движка Godot Engine с нуля. В ходе данного курса для начинающих мы с вами разработаем несколько полноценных проектов, научимся строить мультиплеер и разберемся в написании кода внутри движка Godot.
Видеоурок
Полезные ссылки:
- Официальный сайт Godot ;
- Статья на нашем сайте .
Информация про Godot Engine
Игровой движок Godot появился относительно недавно. Его первый выход в свет был в феврале 2014 года. На момент релиза движок обладал минимальным необходимым набором функционала без перегруженной системы вкладок и настроек.
За эту простоту он быстро стал любимчиком многих молодых разработчиков. На сегодняшний день Godot Engine постепенно перерастает из формата любительского движка в формат полноценного движка для разработки как 2Д, так и 3Д проектов.
Сам движок написан при использовании языков Си и C++ . Курсы по этим языкам вы также можете найти на нашем сайте.
Стоимость использования
Godot Engine является полностью бесплатным игровым движком. Можно сразу сказать, что и Unity и Unreal тоже предлагают бесплатно свои движки, но есть существенная разница. Они оба предлагают бесплатно движки до определённого момента. В Unity цена стартует от 100 долларов за версию Pro и вам придется платить эту цену, если ваши игры приносят более 100 тысяч долларов в год. В Unreal нужно платить определенный процент от прибыли если вы привесили сумму дохода в размере 1 млн долларов.
Простое написание кода
Godot схож с движком GameMaker в плане простоты написания кода. GameMaker заявляет что он движок, на котором можно делать игры без знания программирования, что отчасти является правдой, а отчасти нет, ведь программирование может и не нужно знать, но вот методы что используются внутри движка знать нужно.

Godot – это один из простейших игровых движков в плане написания кода. И если сравнивать с GameMaker, то нужно выделить большую разницу между ними. GameMaker позволяет создать лишь 2Д проекты, а Godot может позволит вам создать как 2D, так и 3D проект.
План курса
В ходе курса мы с вами с нуля разработаем несколько полноценных игр на основе игрового движка Godot Engine. Мы будем создавать как 2Д проекты, так и 3Д проекты. К концу курса «Уроки Godot Engine для новичков с нуля» у вас будут достаточно хорошие навыки в создании проектов на основе данного движка.
Дополнительный курс
На нашем сайте также есть углубленный курс по изучению игрового движка Unity . В ходе огромной программы вы изучите не только движок Unity, но также научитесь писать консольные и интерфейсные программы на языке C#. Также вы изучите сам движок Unity, включая создание 2D и 3D игр, а также игр и приложений с дополненной реальностью.
Задание к уроку
Ответьте на несколько вопросов:
- Какая стоимость использования Godot?
- Какой язык используется в движке?
- Возможна ли разработка 3Д проектов с мультиплеером?
Godot Engine
Godot Engine — открытый кроссплатформенный игровой движок для разработки 2D/3D-видеоигр и приложений для ПК, мобильных устройств, веб-платформ. Адаптирован ко всем распространенным операционным системам, включая Linux, macOS, Windows, Android и iOS.

Освойте профессию «Разработчик игр на Unity»
Godot разработали в 2007 году два программиста из Аргентины — Хуан Линецкий и Ариэл Манзур. Первоначально его использовали несколько игровых студий Латинской Америки. В 2014 году разработчики выложили движок на GitHub по лицензии MIT. В декабре того же года вышла первая стабильная версия 1.0. С этого момента началось развитие проекта и его распространение в других странах.
Возможности Godot
Встроенный функционал «Годо» позволяет разработчику с нуля создать полноценную игру или приложение без использования внешних инструментов.
- Работа с двух- и трехмерной графикой — поддержка эффектов отражения, динамических теней, статичного и динамичного глобального освещения, полноэкранной постобработки (засветки, глубины резкости, гамма-коррекции и т.д.).
- Поддержка реалистичной физики — системы частиц (дыма, тумана, пара, взрывов и т.д.), свойств динамичных и статичных тел, столкновений и разрушений, трассировки лучей и других физических процессов.
- Работа с анимацией — опции создания скелетной анимации, наложения объектов, кат-сцен в реальном времени.
- Сетка навигации (Navigation mesh) — алгоритм нахождения игровым агентом оптимального маршрута в сложном пространстве.
- Поддержка мультимедиа — воспроизведение аудио- и видеофайлов с помощью подключаемых кодеков Theora, OGG Vorbis, WAV.
- AR/VR — встроенный мобильный интерфейс дополненной и виртуальной реальности с использованием 3DOF-датчиков на телефоне.
- Подключение устройств ввода — клавиатуры, мыши, геймпада и сенсорного экрана.
- Процедурная генерация — автоматическое создание внутриигрового контента (окружения, NPC, объектов, оружия и т.д.) с помощью алгоритмов.
- Поддержка языков — «Годо» имеет свой собственный высокоуровневый язык программирования GDScript, также можно использовать С# и C++.
Профессия / 18 месяцев
Разработчик игр на Unity
Создавайте виртуальные миры

Возможности Godot можно расширить с помощью плагинов и сторонних приложений. Например, движок позволяет импортировать сцены из Blender с настроенным освещением, камерами, физикой столкновений, анимированными персонажами и т.д. Также есть возможность подключать разработанные самостоятельно или сторонние плагины виртуальной/дополненной реальности, кодеки для воспроизведения видео и аудио, визуальные редакторы.
Ключевые концепции Godot
Работа движка Godot основана на представлении игры как дерева узлов, которые группируются в сцены и взаимодействуют друг с другом с помощью сигналов и других способов.
Узлы. Минимальные функциональные единицы игровой архитектуры, «кирпичики», из которых собирается вся игра. Каждый узел может выполнять несколько специализированных функций и имеет следующие атрибуты:
- уникальное наименование;
- изменяемые свойства;
- способность расширяться и получать новые функции;
- обратную связь для обработки кадров;
- способность присоединяться к другим узлам в качестве дочернего.
Узлы различаются по своему назначению. Одни показывают изображение, другие отображают 3D-модели, третьи воспроизводят звук. Подключая один узел к другому, можно получать дерево узлов, обладающее более сложным функционалом. На этом строится основной принцип разработки игры.
Сцены. Это дерево иерархически соединенных друг с другом узлов. Имеет следующие атрибуты:
- один корневой узел, к которому, подобно ветвям, подсоединяются дочерние;
- возможность сохранения на диск и загрузки обратно в редактор;
- возможность создания экземпляров (реплик);
- возможность подгружать одни сцены в другие в runtime.
Сценами могут быть персонажи, оружие, локации, целые уровни и другие объекты игрового мира, пользовательский интерфейс в приложениях и т.д. Они обладают двумя важными свойствами:
- выступают в качестве префабов — «заготовок», задающих изначальную структуру и свойства для экземпляров;
- вкладываются друг в друга — например, персонажа можно разместить на уровне, а в руки ему дать оружие или магический посох.
Дерево сцен. Это совокупность иерархически связанных сцен. Создаваемый в Godot проект (игры, приложение) — последовательность их выполнения. А сам движок — редактор, в котором разработчик продукта определяет порядок и способ исполнения взаимосвязанных сцен. При запуске проекта сначала инициируется основная (корневая) сцена, которая последовательно запускает остальные.

Разработчик игр на Unity – одна
из самых творческих профессий в IT. Создайте виртуальные миры уже через полгода обучения
Сигналы. Это сообщения, отправляемые узлами, когда с ними совершается какое-либо действие. Например, когда пользователь кликает на кнопку, она испускает сигнал. Подключенные узлы реагируют на него и вызывают ответную функцию. При этом узлы, взаимодействующие с помощью сигналов, не ссылаются друг на друга. Это ограничивает их связанность и делает код более гибким.
Вместо программирования по строгим шаблонам Godot предлагает разработчику более гибкий, интуитивно понятный метод создания игр и приложений. Но для использования потенциала движка потребуется знать основы объектно-ориентированного программирования.
Преимущества Godot
Простота. Godot — сравнительно простой в освоении и использовании игровой движок. Работать с ним могут как опытные разработчики, так и начинающие энтузиасты. Встроенный язык программирования GDScript имеет почти такой же синтаксис, что и Python, и прост для изучения. Интуитивно понятный редактор, возможность интеграции со сторонними плагинами и приложениями также снижают порог вхождения.
Дополнительные функции, шаблоны, плагины и прочий контент можно скачивать по мере необходимости, не перегружая компьютер. Особенность «Годо» — одинаковый уровень производительности движка и созданных с его помощью игр.
Поддержка сторонних языков. В ядро Godot уже встроена возможность работы на GDScript, C# и C++. Также модуль GDNative позволяет привязать к ядру движка код, написанный на других языках программирования. С помощью системы VisualScript программировать можно без кода, работая на уровне узлов. Это подходящий вариант для новичков не только в геймдеве, но и в программировании в целом.
Гибкость. Система деревьев узлов и сцен позволяет разрабатывать игры на интуитивно понятном уровне. Хотя тем, кто работал с другими игровыми движками, подход кажется непривычным.
Независимое 2D и 3D. Godot создавался как двухмерный игровой движок, 3D-редактирование появилось позже. Разработчики оставили для каждого режима свой редактор, а не стали использовать псевдодвухмерный. Возможность работы с пиксельным 2D упрощает разработку и оптимизацию двухмерных игр. Это ценят разработчики небольших инди-проектов.
Открытый исходный код. Godot — бесплатное программное обеспечение, распространяемое по лицензии MIT. Созданные игры и приложения являются собственностью разработчика. Кроме того, открытость движка способствует появлению множества расширений и инструментов. При отсутствии функции в ядре «Годо» ее можно получить, скачав подходящее дополнение с официального сайта или ресурсов, входящих в экосистему.
Кроссплатформенность. Godot существует в версиях для Windows, Mac, Linux, Android, iOS. Также есть поддержка универсальной платформы UWP от Microsoft, на которой можно разрабатывать приложения для Windows 10, Windows Mobile, Xbox One и виртуальной среды HoloLens без необходимости переписывать код под каждую ОС.
Обширная документация. По «Годо» есть множество информационных материалов (мануалов, справочников, статей и т.д.) от официальных разработчиков, сторонних профессионалов и энтузиастов-любителей. На любой вопрос по работе с движком можно найти ответ в сообществе.
Недостатки Godot
Недостаточная проработка 3D. По этому параметру Godot уступает конкурентам вроде Unity или Unreal Engine. «Годо» развивался как 2D-движок, трехмерный редактор был добавлен позже. В последних версиях работа с 3D значительно улучшена.
Сложности с разработкой консольных приложений. Разработчики отмечают проблемы при создании или портировании «Годо»-игр на консоли. Это требует использования сторонних инструментов и большого опыта. Одна из возможных причин проблемы — закрытый характер консольных инструментов, что противоречит открытости самого движка.
Использование Godot
Открытый исходный код, простота и особенности редактора «Годо» сделали движок популярным в среде разработчиков инди-игр. Из известных гейм-девелоперов, использовавших его в своих проектах, — аргентинская компания OCAM Studio и LRDGames, Inc., выпустившая в 2021 году сатирическую стратегию Rogue State Revolution. Также этот движок применяется в разработке:
- мобильных игр, в том числе многопользовательских (платформеров, пазлов, головоломок);
- приложений — мультиплееров, планировщиков, музыкальных редакторов и т.д.
Godot популярен в качестве учебного пособия для обучения азам компьютерной графики, программирования и геймдева. Он часто используется в специализированных и общеобразовательных учебных заведениях.
В сегменте игр категории АА и ААА игровой движок Godot Engine пока не получил распространения. Но в последних версиях начал развиваться 3D-редактор, появились функции и встроенные инструменты для работы с трехмерной высокополигональной графикой.
Разработчик игр на Unity
Все главные навыки разработчика игр на одном курсе. Вы освоите все этапы геймдизайна, научитесь программировать на С# и создадите 7 игр во время курса.
«Робот — Гобот» или изучаем азы программирования видеоигр в Godot

Давным-давно, в далеком далеком подростковом возрасте, я загорелся идеей разрабатывать компьютерные игры.
К сожалению доступ в глобальную сеть Интернет тогда был в дефиците, а опытного наставника среди знакомых не было. Поэтому я хаотически вычитывал интересные мне главы из самоучителя по турбо паскалю, который чудом оказался на книжной полке.
Вы наверняка догадались, что чуда не произошло и такой подход не привел к достойным результатам. Однако, любовь к процессу осталась. Поэтому сегодня я расскажу вам об интересном способе начать свой длинный и увлекательный путь в мир разработки компьютерных игр.
Героем обзора станет интерактивный учебник с открытым исходным кодом 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 глав, которые плавно начинают рассказ с самого понятия “программный код”, затем объяснят базовые концепции функции / переменная, научат писать условия и циклы, а затем расскажут о разных типах и структурах данных.

Учебный процесс в общем случае построен следующим образом:
- читаем текст;
- запускаем интерактивные примеры;
- отвечаем на простой вопрос “викторины”;
- ниже открывается следующий кусочек страницы с теорией;
- после каждого урока практическая часть.
Повествование идет последовательно, материал не очень сильно разжевывают и дают в несколько сжатой форме достаточной чтобы воспроизвести всё на практике, но при этом чтобы голова не взорвалась от объемов новой информации.
Кстати несмотря на то, что я не совсем новичок и могу «накостылить» какой‑нибудь скрипт, даже я узнал для себя что‑то новое. Оказывается в некоторых случаях проверку условий можно просто заменить на остаток от деления.
Посмотрим на пример одной главы.
Текстовая часть. Иногда дополняется спойлерами и всплывающими подсказками.

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

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

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

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

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

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

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

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

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

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

Как правило, даже на последних уроках задания будут простыми и у подготовленного человека, не займут больше 5 минут.
Что дальше?
Я думаю, что пройти данный учебник вполне реально за один день.
Поэтому если вы на кураже от успехов, захотите и дальше погружаться в разработку видеоигр на Godot, авторы учебника предложат вам записаться на платный курс (около $80). Поскольку у меня нынче нету карт заморских-платежеспособных, я не проверял возможность оплаты. Но приятно что на курс для региона РФ дают скидку 40%.
Не хотите проходить платный курс? Ничего страшного. Автор учебника, написал отличные стартовые туториалы в разделе «Getting started» официальной документации.
Пройдя данный раздел вы познакомитесь с базовыми концепциями движка и соберете простенькие 2D и 3D игры. Прямо чувствуется, что туториалы написаны профессионалом с любовью к делу.
Даже не смотря на то, что не все страницы адаптированы под Godot 4.0 в процессе их освоения я ни разу не застревал надолго. Все что нужно описано текстом, продублировано скриншотами и примерами кода.
Если у вас совсем плохо с английским можно попробовать русскоязычную версию, но мне кажется, что она слегка устарела.
Думаю, что это не последняя статья про Godot. Поэтому если мне удалось вас заинтересовать предлагаю подписаться. Также милости прошу в комментарии, обсудить статью и сам учебник.
Для самых терпеливых — ностальгическая картинка с роботами — гоБотами