Godot как писать на c
Перейти к содержимому

Godot как писать на c

  • автор:

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. Почему про него все говорят?

#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 игр, а также игр и приложений с дополненной реальностью.

Задание к уроку

Ответьте на несколько вопросов:

  1. Какая стоимость использования Godot?
  2. Какой язык используется в движке?
  3. Возможна ли разработка 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 чтоль? Чего такой ответ странный? 😀

vabka

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, чтобы получить более подробную информацию о возможностях и ограничениях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *