Godot 4 gdextension (c++)
В общем, gdextension (C++) как-то устаканилось, и перестало падать. Начал потихоньку переползать на 4,
действительно, gdextension мне нравится больше, чем gdnative.
Падало кстати потому, что официальные бета-релизы самого движка выходят под нумерацией (типа beta 4.xx),
а комиты в репозиторий gdextension (godot-cpp), идут постоянно, по ходу работы, и запросто могут быть несовместимы с
релизнутыми бетами. Чтобы избежать такого, надо смотреть сообщения комитов, и брать те, которые соответсвуют
официальной нумерации.
c20ecea (HEAD -> master, origin/master, origin/HEAD) headers: Sync with upstream commit 45cac42c0 (4.0-beta8)
f74c472 Merge pull request #948 from touilleMan/issue-946
9fb5b76 Add CODEOWNERS so GDExtension team gets assigned for reviews
fe79449 Fix cast on PtrToArg::convert
f9f9a1b Merge pull request #947 from asmaloney/cmake-cleanup
bb13b95 Updates for target-based approach
32859ea Merge pull request #897 from touilleMan/gdextension-fix-gdnative-types-const-qualifier
fe86a94 Fix const qualifier for parameters in GDExtension api functions
f1d501f headers: Sync with upstream commit 0ff874291 (4.0-beta7)
Ну или сам движок билдить конечно можно. Но мне пока лень ))
- Der FlugSimulator
- Участник
#1
18:09, 11 дек 2022
Словом, погорячился я. Копнув внутренности поглубже, пришел к выводу, что очень сырое.
Да (пустой) редактор уже не падает. Но он падает при работе в каких-то рандомных и определенных местах.
Некоторые нужные классы просто не работают, типа PathFollow3D.
Ну и убило, что не могу в gdextension (C++) передать Node как параметр. Ну т.е. можно через Object::cast(), или
я не разобрался как. Но в 3.5 это работает нормально.
В общем отложил я пока новаторство. Подожду пока хотя-бы RC появятся.
- Der FlugSimulator
- Участник
#2
17:46, 25 янв 2023
В общем парни разогнались, и клепают беты чуть ли не каждые 3 дня.
Попробовал 4.0-beta15 — все вышеперечисленные косяки исчезли, у меня всё билдится ок, полёт нормальный.
#3
17:55, 25 янв 2023
Да по любому лучше подождать. Движки как вино — должны быть выдержаны, годами )))
- Der FlugSimulator
- Участник
#4
18:52, 25 янв 2023
stratego
Про продакшн конечно речи не идет, но у меня есть проектик тестовый, чисто для баловства.
Пока пробежался по нужным мне фичям — они вроде работают.
p.s. Но сломался инпут в контролах )))
- Der FlugSimulator
- Участник
#5
0:20, 9 фев 2023
Выпустили RC1. Попробовал.
Пока на удивление, все мои персональные претензии удовлетворены.
Баги конечно есть, но для моих нужд они некритичные. Продолжаем полёты.
#6
8:08, 9 фев 2023
Der FlugSimulator
> Выпустили RC1. Попробовал.
>
Может в декабре уже выпустят релиз и можно будет полностью перейти на годот 4 великий и ужасный
- Der FlugSimulator
- Участник
#7
12:58, 9 фев 2023
FlyOfFly
Весь парадокс в том, что для массы ЦА, как она видна по форумам — 2Д, платформеры, GDScript, никакого принципиального смысла на 4.х ломиться нет.
Всё осуществимо и на 3.x, ну может очень мелкие фичи. Однако именно от школьников идёт вся основная шумиха.
Более того, они видимо не осознают, что четверка пока в основном про вулкан, и дохлые железки (GLES2 мобилы, Raspberri PI, и может даже старенькие ПК)
работать не будут (во всяком случае в первом релизе).
А вот для 3D, для C++ — там очень много правильных инноваций.
#8
13:05, 9 фев 2023
Der FlugSimulator
>
> Весь парадокс в том, что для массы ЦА, как она видна по форумам — 2Д,
> платформеры, GDScript, никакого принципиального смысла на 4.х ломиться нет.
Язык разве не улучшили? свойство не добавили в язык?
- Der FlugSimulator
- Участник
#9
13:16, 9 фев 2023
FlyOfFly
Вопрос не понял. Даже два.
Уроки 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Д проектов с мультиплеером?
Мне требуется переписать небольшой участок кода с C# на C++ для нормальной работы кода однако я не знаю как
Я не давно только начал изучать c++ да и в общем опыт в программировании не большой но что-то делать уже могу однако то чем я сейчас занимаюсь довольно сложно с моими знаниями, я использую Godot Engine для создания игр и раньше писал в встроенным в движок своим языком как python, он GDScript называется, но захотел перейти на другой язык помощнее пока не знаю зачем, я использую gdnative как называют разработчики «Меж-языковые сценарии (скрипты)» то есть можно использовать разные языки однако подключать это для меня было очень сложно, мне просто требуется переписать старый код с другого языка на c++, решение уже найдено однако я не знаю как «конвертировать» с c# на с++ пусть из-за небольшого различия в синтаксисе, или я чего-то не понимаю и компилятор выдаёт ошибку
public class Player : KinematicBody2D < private AnimationNodeStateMachinePlayback _stateMachine; public override void _PhysicsProcess(float delta) < var animTree = (AnimationTree)GetNode("AnimationTree"); //void MyFuncton() < GD.Print(stateMachine.GetCurrentNode()); >>
а так у меня просто скопировано:
void Player::_ready() < Variant animTree = (AnimationNodeStateMachinePlayback)get_node("AnimationTree"); _stateMachine = animTree.get("parameters/playback"); >
и 3 ошибки: 1я не существует подходящего конструктора для преобразования из «godot::Node *» в «godot::AnimationNodeStateMachinePlayback» 2я class «godot::Variant» не содержит члена «get» 3я идентификатор «state_machine» не определен я подумал что ошибки из-за различий в языках
Как писать на c++ в годот?
Недавно я решил перейти в gamedev и в роли движка выбрал Godot.До этого у меня был опыт работы с c++.Я не хотел бы изучать Gdscript или c#, а хотел бы продолжить работать на c++, но не знаю как.
- Вопрос задан 19 июн.
- 1414 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 2
you don’t choose c++. It chooses you
C++ не основной язык для Godot, но есть вот такое расширение, чтобы писать на С++.
https://docs.godotengine.org/en/stable/tutorials/s.
Выберите правильную версию godot и следуйте инструкции. Она оочень подробная + есть несколько видео на известной площадке, где также рассказывают как использовать С++.
Ответ написан 19 июн.
Нравится 2 3 комментария
ChatGPT чтоль? Чего такой ответ странный? 😀

tukreb, не, вообще на чатжпт не похоже.
Да и ссылка легко гуглится в документации
tukreb, Я даже не знаю комплимент это или упрек. Вот вам для сравнения ответ от chatgpt.
Отлично, что вы решили попробовать Godot для своих игровых проектов! Хотя Godot поддерживает Gdscript и C# в качестве основных языков программирования, вы можете использовать и C++ для разработки в этом движке.
Важно отметить, что работа с C++ в Godot немного отличается от обычной разработки на этом языке. Вместо написания всего кода на C++, вам потребуется создать динамическую библиотеку (DLL) на C++, которую затем можно будет использовать в Godot. Взаимодействие с движком осуществляется через его API на C++.
Вот несколько шагов, которые вам понадобятся для использования C++ в Godot:
1. Установите Godot Engine: Перейдите на официальный сайт Godot (https://godotengine.org/) и загрузите последнюю версию движка. Установите его на свой компьютер.
2. Создайте проект: Запустите Godot и создайте новый проект. Выберите пустой шаблон или тот, который лучше всего соответствует вашим потребностям.
3. Настройте среду разработки: Если вы используете IDE, такое как Visual Studio или Visual Studio Code, настройте его для работы с Godot. На сайте Godot есть подробные инструкции по настройке различных IDE.
4. Создайте модуль на C++: В Godot создайте свой C++ модуль. Модуль представляет собой DLL, который будет содержать ваш пользовательский код на C++. Модуль может содержать классы, функции и другие элементы, которые вам понадобятся для разработки игры.
5. Взаимодействие с движком: Используйте API Godot на C++ для взаимодействия с движком. API предоставляет функции для работы с узлами, ресурсами, сигналами и другими элементами Godot.
6. Соберите и подключите модуль: Соберите вашу DLL и подключите ее к проекту Godot. Затем вы сможете использовать свой C++ код в скриптах и компонентах игры.
Обратите внимание, что использование C++ в Godot может быть сложным и требует знания языка C++, а также понимания API и архитектуры Godot. Будьте готовы к изучению документации и примеров кода для получения лучшего понимания процесса.
Также стоит отметить, что Gdscript и C# предоставляют более простой путь для начинающих
1. Установите необходимые инструменты: Убедитесь, что у Вас установлены C++ компилятор и среда разработки, такие как Visual Studio или GCC, в зависимости от Вашей операционной системы.
2. Скомпилируйте движок Godot: Перейдите на официальный сайт Godot и загрузите исходный код движка. Затем следуйте инструкциям по компиляции для Вашей операционной системы. В результате Вы получите исполняемый файл движка, который Вы сможете использовать для разработки.
3. Создайте новый проект: Откройте Godot и создайте новый проект. Выберите пустой шаблон или любой другой шаблон, который Вам нравится.
4. Создайте новый скрипт: В окне редактора Godot выберите «Скрипт» и выберите C++ как язык скрипта. Затем выберите место, где Вы хотите сохранить скрипт.
5. Начните писать код: Откройте созданный скрипт в выбранной Вами среде разработки и начните писать код на C++. Godot предоставляет API для работы с C++, и Вы можете использовать функции и классы из этого API для создания игровой логики.
6. Скомпилируйте и запустите проект: После написания кода скомпилируйте проект с помощью выбранной Вами среды разработки. Затем запустите полученный исполняемый файл и проверьте, что Ваш код работает внутри Godot.
Обратите внимание, что использование C++ в Godot может быть сложнее, чем использование Gdscript или C#, поэтому рекомендуется ознакомиться с документацией и руководствами по C++ в Godot, чтобы получить более подробную информацию о возможностях и ограничениях.