Developing Godot Projects with Neovim
devpoga.org
devpoga.org
- https://www.youtube.com/c/MartinDonald/videos
It makes a huge change from the tsunami of "I made pong for breakfast" level of material on youtube.
For people who are less graphically inclined, but still want to check out godot, here's a great 2D simple code-along from the channel HeartBeast - https://www.youtube.com/playlist?list=PL9FzW-m48fn16W1Sz5bhT...
It's a pixel platformer, and is intended to show you the various 2D features of godot as well as be a tutorial.
GDQuest made an excellent web"app" (also available as a desktop application, I believe all versions are made in Godot) that provides an interactive introduction to GDScript: https://gdquest.github.io/learn-gdscript
It's my favorite resource for learning Godot and I can heartily recommend GDQ's channel https://youtube.com/channel/UCxboW7x0jZqFdvMdCFKTMsQ/playlis...
I dont like GDQuest, as he uses every fancy/advanced technique he knows in his free and paid courses, which means its very hard to understand whats going on.
Heartbeast only focusses on one concept at a time, which makes it easy to follow whats going on. People criticising Heartbeast are the same type of people who make fun of beginners programming tutorials "Lol, doesnt even use Kubernetes, deploying manually. Teaching bad practices lol"
GDquest makes a type 2 mistake (from my blog[0]) where he uses advanced techniques, more it seems to me to impress others rather than to help readers. I bought their courses, but couldn't finish any as I struggled to follow the 20+ concepts being taught at the same time.
0. https://new.pythonforengineers.com/blog/the-problem-with-mos...
Even if you don’t go for godot as your main engine, the speed with which you can prototype is really nice.
I do not believe that this ironSource thing or the comments from the CEO will cause a real downfall of Unity but I do believe that VR is the area where Godot has the chance to sidestep the huge lead of Unity and shine as a real competitor.
Because the technology is still changing very rapidly and no one has too big a lead on others (especially with standalone headsets).
Godot even had support for Oculus hand tracking in late 2019 when it was not officially released for Unity and Unreal.
At the moment everyone manufacturer is building for Unity first and everything else second (if at all), but when OpenXR finally has established itself that will be a lot less of a factor
Right now the most successful game made with Godot Engine is Cruelty Squad (https://store.steampowered.com/app/1388770/Cruelty_Squad/). Regardless of if you would call it “professional” or not, it was one of the most noted indie games of 2021, had great reviews, and probably was much more commercially successful than your average Unity/Unreal “professional” indie title (given how so many of them flop). Same goes for some highly successful RPG Maker games, which usually people would not call it a “commercial-quality” engine.
I think there’s a lesson here: don’t care that much if you’re using a “commercial” quality engine or not, just care if the engine will give the right tools to make the game that you envision.
Here's an absolutely beautiful commercial game made in Godot.
But even aside from that, I'd argue Godot probably had little to do with the quality of the port. There's ample evidence that you can make buggy games with any engine, and the Sonic franchise in particular seems to have a long running problem with SEGA pushing releases out half-baked.
You can use both languages in one project, so I'd recommend trying GDScript at first. It's a very simple language so it can be picked up quickly, but as soon as you feel yourself reaching for LINQ or wanting a proper type system then switch that script to C#.
The engine code is great. It's structured logically and navigating it is intuitive. Building the engine is simple, customisable, and documented well. Significant chunks of the engine are integrated as compiled in 'modules'. You can add your own modules and the build system lets you select which modules to include. Adding new node types and working with the scripting/binding system is pretty straight-forward.
I think the documentation for working on the engine[0] and contributing to the project[1] (as well as the code itself) are areas where Godot is doing exceptionally well.
GDNative can be used to integrate external libraries, add support for other languages[2], without compiling the engine. You can use it as a scripting layer, add node types, etc. I haven't used GDNative non-trivially.
* [0] https://docs.godotengine.org/en/stable/development/cpp/index...
* [1] https://docs.godotengine.org/en/stable/community/contributin...
Text from Godot home page:
"Use the right language for the job:
Keep your code modular with an object-oriented API using Godot's own GDScript, C#, C++, or bring your own using GDNative."
But my memory was that last time I tried about a year ago, something was patchy about c++ documentation.
My doubt still is if c++ is a first class citizen in Godot at par with GDScript and c#.
It's really nice to be able to just create some game object, then immediately take advantage of anything else I need to do on the c# side.. whether it be some basic classes for player objects, helpful static data structures etc.
* no C/c++ main(), but the sysv ABI entry point (which is basically main() anyway). When the libc will be libdl-ed, the init functions are called with the same arguments stack than the sysv ABI entry point.
* interact with system TLS-ized variable with only the sysv ABI __tls_get_addr(), for instance if there is a need to use errno. I have to admit, I did not get really into this issue yet (but there my be seriously nasty things related to the "TLS offset").
* fork the static gcc/clang libstdc++ in order to libdl-ize it, because even with -static-libstdc++/-static-libgcc options, it won't libdl what it requires from the system libs (gcc devs 100% at fault here, they have been carefully ignoring the availability of games on linux OSes for a decade). rant[on], to avoid this and the dependency on the very few c++ compilers (because c++ syntax is beyond sanity), godot should have been a simple and lean C project, rant[off].
Currently, the only way to mitigate the GNU symbol versoning abuse from the glibc devs (100% their fault), is to compile/link against a years old glibc (_REALLY_ old).That said, they should od exactly the same on other OSes, which means the code structure would be the same, only different compile-time and runtime function tables.