No video

GDNative is Dead. Long Live GDExtension!

  Рет қаралды 36,060

Gamefromscratch

Gamefromscratch

Күн бұрын

Today Godot have just merged changes to the GDNative extension system. This is a way of binding native C or C++ code to work with the Godot Engine in a dynamic way (without requiring recompiling the game engine). This new system replaces GDNative and is called GDExtension.
Links
gamefromscratc...
-----------------------------------------------------------------------------------------------------------
Support : / gamefromscratch
GameDev News : gamefromscratc...
GameDev Tutorials : devga.me
Discord : / discord
Twitter : / gamefromscratch
-----------------------------------------------------------------------------------------------------------

Пікірлер: 80
@gamefromscratch
@gamefromscratch 2 жыл бұрын
Links gamefromscratch.com/gdnative-replaced-with-gdextension-in-godot-4/ ----------------------------------------------------------------------------------------------------------- *Support* : www.patreon.com/gamefromscratch *GameDev News* : gamefromscratch.com *GameDev Tutorials* : devga.me *Discord* : discord.com/invite/R7tUVbD *Twitter* : twitter.com/gamefromscratch -----------------------------------------------------------------------------------------------------------
@pranavpg101
@pranavpg101 2 жыл бұрын
At 6.20 you say that the GDExtension exposes the same as GDScript. This is not true. From the article - "This allows dynamic libraries to be used by Godot in a way that is much better integrated than its predecessor, GDNative. Together with the godot-cpp library, GDExtension introduces a system that allows extending Godot to nearly the same level as statically linked C++ modules can.". So all of the internal c++ codebase is exposed via the headers.
@GenericInternetter
@GenericInternetter 2 жыл бұрын
Making Godot more C++ friendly is a huge step forward.
@Bruh-hd4rj
@Bruh-hd4rj 2 жыл бұрын
Yes. 🗿
@onichan6897
@onichan6897 2 жыл бұрын
also Rust friendly
@aatkarelse8218
@aatkarelse8218 Жыл бұрын
Nim freindly!
@SrObser
@SrObser 2 жыл бұрын
gdnative was a bit of a pain to use. I hope this will be more streamlined.
@NymezWoW
@NymezWoW 2 жыл бұрын
gdnative is so terrible to work with i abandoned godot because of it. I dont wan‘t to use some engine specific scripting language that has no ecosystem worth mentioning. And last time i tried C# it crashed on starting the game (simply the default new project on Linux). So i left. Maybe it‘s time to give Godot another chance now.
@markwiering
@markwiering 2 жыл бұрын
I have made several C++ programs with mathematical questions. These programs heavily rely on classes and overloaded operators, which is difficult to translate to GDscript, so I now prefer to integrate these C++ programs into Godot, for my educational game. :-) My idea was to put the classes filled with the mathematical operations into Godot using the GDnative method and then use these classes inside of GDscript, to ease my life as much as possible. :-D
@mcp613
@mcp613 2 жыл бұрын
Just saw the post from godot. Looks like a good improvement
@Diveji
@Diveji 2 жыл бұрын
Oh, so now the extensions are written exactly the same way as normal in-engine classes? That's very nice. I've been writing in C++ in Godot using a custom module and it was annoying me that whenever I wanted to look something up, I'd get results for GDNative, which would be named directly and still left me to figure out everything on my own by reading other classes from deep in engine code. Hopefully now searching for some Godot C++ related stuff will be useful thanks to that change
@HonsHon
@HonsHon 2 жыл бұрын
This is freaking amazing holy shit can't wait for 4.
@Smaxx
@Smaxx 2 жыл бұрын
Definitely have to try it now. Creating bindings for our company developed library was a breeze with GDNative (so much more relaxed to debug etc. compared to Unity), going to be interesting what one can do with GDExtensions.😀
@snesmocha
@snesmocha 2 жыл бұрын
Gdnative just got trolled
@4R8YnTH3CH33F
@4R8YnTH3CH33F 2 жыл бұрын
We do a little trolling
@prozacgodretro
@prozacgodretro 2 жыл бұрын
Edit: wait... maybe not...? This will finally make some of the more interesting engine add-ons an actual add-on... Like there was this really cool voxel add-on that you had to build the entire godot system to get working. Now it sounds like this will be capable of being an actual extension to the engine.
@SoftBreadSoft
@SoftBreadSoft 2 жыл бұрын
@@tarunchand3159 a (fast) voxel renderer requires hooking to the engine's renderer which might not be exposed fully to gdextensions
@kayomn
@kayomn 2 жыл бұрын
@@SoftBreadSoft The rendering engine and physics servers have been reworked so they are able to be fully exposed to GDExtension for supplying custom implementations.
@SoftBreadSoft
@SoftBreadSoft 2 жыл бұрын
@@kayomn that is great news
@sphixy8577
@sphixy8577 2 жыл бұрын
R.I.P GDNATIVE
@blackcitadel37
@blackcitadel37 2 жыл бұрын
F
@luisz0339
@luisz0339 2 жыл бұрын
Never got to use GDnative, but hey if this better then nice. My previous comment just got erase for no reason lmao. Btw, Dragonruby is free right now.
@gamefromscratch
@gamefromscratch 2 жыл бұрын
I've heard this a few times from people. Think something glitchy is happening with comments for the last week or so.
@luisz0339
@luisz0339 2 жыл бұрын
@@gamefromscratch Ah I see. I thought it was something I said lol.
@Megalomaniakaal
@Megalomaniakaal 2 жыл бұрын
Did you perhaps include a link with the original comment?
@dhombios
@dhombios 2 жыл бұрын
It would be great if they consider implementing automatic recompilation of gdextensions, so, if the source files get changed, scons is called automatically when running or exporting the project
@comedyclub333
@comedyclub333 2 жыл бұрын
That would be a pain in the ass to use. Imagine you have to change a .h and the corresponding .c file at the same time (e.g. changing a function signature). What do you save first? Saving either of those would trigger the autorecompilation resulting in a compilation error (since they don't match anymore). Based on the project size compilation and error catching might take a while. Let's say it takes 30 seconds to compile your code. You would have to wait one minute just ebcause the autorecompiler thinks it is a good time to stupidly start compilation although your source files were not ready yet. There's a reason this is rarely used for C/C++ development. Autorecompile is mainly used in single-filetype based languages like typescript or with some python packages (if at all). Anyway, this is not a matter of the Godot team, it's a matter of the build sytem you use. In the case of Godot it will likely be SCons, but you are free to use CMake or whatever you prefer. The one you choose might actually have that feature. On the other hand, automatically recompiling/restarting your Godot project when the compiled libraries change may be a nice feature, though.
@dhombios
@dhombios 2 жыл бұрын
@@comedyclub333 Autorecompilation just needs to be executed when the project is going to be run (a build and run option) or exported. Recompiling each time a .c file or a .h one has been changed wouldn’t make sense, as more changes might be needed before being able to execute the project
@comedyclub333
@comedyclub333 2 жыл бұрын
@@dhombios Well, I understood it that way since you wrote that if your source file changes SCons should be triggered.
@porky1118
@porky1118 2 жыл бұрын
I just want to use Rust with Godot in an easy way. This would make Godot much more interesting than it already is.
@_remblanc
@_remblanc 2 жыл бұрын
Well this does at least expand the possibilities for the godot rust project quite a lot
@andermetalbrasil
@andermetalbrasil 2 жыл бұрын
I'm also eager to use the GDExtentions bindings for Rust when it's ready.
@DarkShroom
@DarkShroom 2 жыл бұрын
if you want to waste time playing with programming languages why use Godot
@user-ck8kp8vb4l
@user-ck8kp8vb4l 2 жыл бұрын
@@DarkShroom Why do anything ever? Godot has cool features, Rust has cool features, and humans are curious beings.
@mr.mister311
@mr.mister311 2 жыл бұрын
@@DarkShroom In my opinion, the developers have built a great engine architecture and an amazing editor, but made an absolutely horrendous decision on which type of language to mainly support. Not only is Rust literally about 100 times faster, you also won't have a complete mess of a codebase after adding like 5 files to your project. The problem with GDScript it is just like python (well, it's even slower actually). It's a language created with a focus on writing up code quickly with barely any thought as to how to go about organising said code. No proper enums, no structs, nothing to organize your code in another way than simply having 50 properties or lists that on a script, properties that aren't even typed mind you. There's not even a way to make private functions or variables. It's simply not an enjoyable way to work for a lot of game developers.
@captainswing4040
@captainswing4040 2 жыл бұрын
It would be great if Godot used C++ like unreal
@comedyclub333
@comedyclub333 2 жыл бұрын
@Addmix No, you cannot. I mean, yes cou can use C++, but not "like unreal", where C++ is/was the main programming language integrating into the engine nearly the same way GDScript does with Godot.
@comedyclub333
@comedyclub333 2 жыл бұрын
@Addmix Yeah, I think the term "like unreal" is lacking a proper definition to say whether Godot's approach is similar in look and feel or not.
@abendroid
@abendroid 2 жыл бұрын
I'm learning Godot 3.x.x while also learn to code (I'm don't have programming background). Should I wait for this Godot 4 instead?
@killercrazy21c
@killercrazy21c 2 жыл бұрын
Question, is that working also like any C++ project when we want to add DLL or other types of Libs ? For exemple, It would be very great and powerfull that we can have heavy third parties like OpenCV or other C++ libs but it's lacking documentation for this subject. Any idea if it's possible ?
@saul8510
@saul8510 2 жыл бұрын
well with this you can use other physics engine like physx
@user-js7ud9du2y
@user-js7ud9du2y Жыл бұрын
unity has il2cpp that coverts c# to c++ i think its great.. but having to write direct c++ is probably better because writing a parser is complicated would be nice to have though
@geshtu1760
@geshtu1760 2 жыл бұрын
Will Godot 4 still support other languages? I believe GDNative also previously allowed you to port your GDScript code to other languages like Rust?
@Hacker_lyx
@Hacker_lyx 2 жыл бұрын
yeah the old system wasn't hard to get set up but had a lot of quirks. and lack of documentation. hoping this "just works" but honestly it seems just using c# or GDscript is the way to go imo.
@comedyclub333
@comedyclub333 2 жыл бұрын
Yeah, GDScript is definitely the way to go for most cases (maybe C# too). All those C/C++ options Godot offers are mainly there for the purpose of dealing with computational heavy tasks and bridging with SDKs (e.g for Steam) or other libraries (e.g. some fucked up shit like FFT or file en/decoding, etc.).
@skaruts
@skaruts 2 жыл бұрын
Someone ought to make a playable first-person funeral, though. :)
@clonkex
@clonkex 2 жыл бұрын
"libaries"
@arshamshayan
@arshamshayan 11 ай бұрын
Oh my god that's why I can't use c++ . I'm a beginner and I'm struggling😭
@publicmmi
@publicmmi 2 жыл бұрын
How "mature" is 4.0? Is it good enough for prototyping and playing with the engine or too unstable?
@gamefromscratch
@gamefromscratch 2 жыл бұрын
It seems to vary day by day. I'd wait till the first alpha or beta release for some stability
@comedyclub333
@comedyclub333 2 жыл бұрын
Actually, as @Gamesfromscratch said it seems to vary day by day. But in the master branch on GitHub you can definitely find a compiling version of Godot 4 (it runs, but does not have to be stable). What I have heard in some forums by now you can use it for development without any concerns, but you should not use it for production since it is not yet meant to run stable.
@WorstDeveloper
@WorstDeveloper 2 жыл бұрын
Can't wait to use Godot with Rust.
@sslaxx
@sslaxx 2 жыл бұрын
Seen people been doing that for months via GDNative.
@WorstDeveloper
@WorstDeveloper 2 жыл бұрын
@@sslaxx Yeah I know, but I'd rather wait until Godot 4 is out and they have added support for that.
@arthank1263
@arthank1263 Жыл бұрын
"the instructions here are pretty straightforward" me, trying to set .ccls for vim. an entire day. and I still haven't figured it out am I stupid? it just won't see godot_cpp using beta 10 pls help
@tinyBigGAMES
@tinyBigGAMES 2 жыл бұрын
Hmm, I can't seem to get this to work. I got everything built, loaded the project, get reference errors (signals, invalid index, etc.). Does it actually run for you?
@ryan651
@ryan651 2 жыл бұрын
I have a question, stems from descriptions I've heard of GDNative and now this successors name. Is this designed mostly as a way to extend the engine as opposed to programming game logic?
@gamefromscratch
@gamefromscratch 2 жыл бұрын
Yes, for the most part. I mean you could implement game logic in GDNative, but it probably wouldn't be an efficient use of your time.
@Tala2n
@Tala2n 2 жыл бұрын
A video that capture the full procedure to set a GDextension could be interesting.
@guru332
@guru332 2 жыл бұрын
Will this expose C++ methods to C#?
@frankhuurman3955
@frankhuurman3955 2 жыл бұрын
It seems that one Godot Android question is hard to solve(or isn't implemented as far as I can tell from all the unanswered community questions) and I'm curious if you have an idea how to do it. Is it possible to run a process in the background on Android for a game made in Godot? Like notify the user if some X event happened or happens in game while you've got it running in the background. Or not even that, but keep on calculation some event by chance every second so when the user comes back the chance thing might have happened?
@mibaatwork
@mibaatwork 2 жыл бұрын
What is about Rust Programming in Godot now?
@Kintah
@Kintah 2 жыл бұрын
The fact that you did not cover the EAC and Battleye proton compatibility update makes me extremely disappointed.
@igorthelight
@igorthelight 2 жыл бұрын
Yep, that's strange :-)
@HonsHon
@HonsHon 2 жыл бұрын
Then again he is only one dude. Probably will get to that eventually
@Kintah
@Kintah 2 жыл бұрын
@@HonsHon he said on twitter that it wouldn't make for a meaningful video
@gamefromscratch
@gamefromscratch 2 жыл бұрын
In terms of the news Epic anti-cheat is now on Linux, well... "Epic's Anti-Cheat software is now on Linux" would basically be the extent of the video. If I hadn't already covered it... twice ( gamefromscratch.com/epic-add-voice-and-anti-cheat-to-free-epic-online-services/ ++ gamefromscratch.com/epic-games-acquire-kamu-anti-cheat-software-maker/), I could probably make a video of it going over exactly what it involves, but the last video on the topic was just a few months back. To cover it on the channel (and have KZfaq algorithm support), it's basically got to be about 5 minutes worth of content, with 8-10 being preferable. I just can't fathom how to turn that news into 5+ minutes of content. I could use KZfaq shorts I guess... but do you guys really want me using their TikTok clone?
@riufq
@riufq 2 жыл бұрын
@@gamefromscratch it's ok. keep it simple.
@poopfungus5097
@poopfungus5097 2 жыл бұрын
i love c c c c c c cc c c c c c
@moose43h
@moose43h 2 жыл бұрын
This is not gdscript ,right?
@snesmocha
@snesmocha 2 жыл бұрын
It’s basically an extension system that let you use another programming language
@sphixy8577
@sphixy8577 2 жыл бұрын
No its c++
@jakecb6396
@jakecb6396 2 жыл бұрын
:(
@WerIstWieJesus
@WerIstWieJesus 2 жыл бұрын
This would be much cleaner in pure C. No need for C++. You can always encapsulate C in C++ classes if you really want.
@peterjohnson9438
@peterjohnson9438 2 жыл бұрын
It would not be cleaner, it would be a long mess of complex function and struct names because of the internal structure of Godot. There are places where a C API is better. This ain't it, chief.
@fakeusertas721
@fakeusertas721 2 жыл бұрын
flax -> C++ is more really scare right now, randomly C++ dead
@techpriest4787
@techpriest4787 2 жыл бұрын
There is one native language to rule them all: Rust is C/C++/C#/F#
@mistreaper2149
@mistreaper2149 2 жыл бұрын
"g-DOUGH" "Go-DOT"
Godot's Popularity Explosion!
7:28
Gamefromscratch
Рет қаралды 9 М.
Godot 4.3 is Here!
19:20
Gamefromscratch
Рет қаралды 79 М.
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 33 МЛН
天使救了路飞!#天使#小丑#路飞#家庭
00:35
家庭搞笑日记
Рет қаралды 86 МЛН
Setting Up Rust in Godot 4.1! Advanced Godot 4!
35:40
FinePointCGI
Рет қаралды 15 М.
Godot & C++ -- How, What and Why?
12:56
Gamefromscratch
Рет қаралды 115 М.
Don't use VSCode
35:31
PyCon South Africa
Рет қаралды 221 М.
Using C++ with Godot (GDNative Tutorial) "Ten Thousand Subs"
27:09
Thoughtquake
Рет қаралды 58 М.
SDF -- The Future of 3D Modelling?
11:20
Gamefromscratch
Рет қаралды 56 М.
the TRUTH about C++ (is it worth your time?)
3:17
Low Level Learning
Рет қаралды 675 М.
Wicked Engine in 2023 - This Engine Blows My Mind!
11:49
Gamefromscratch
Рет қаралды 32 М.
How do non-euclidean games work? | Bitwise
14:19
DigiDigger
Рет қаралды 2,4 МЛН
Tierlisting the BEST (and worst) GAME ENGINES
33:51
BiteMe Games
Рет қаралды 216 М.
Intro to Goal Oriented Action Planning (GOAP)
9:47
This Is Vini
Рет қаралды 16 М.
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 33 МЛН