Learn Godot Game Development
godottutorials.pro
godottutorials.pro
I built 3.2, including a fork of the runtime for raspberry pi (frt on github). About 3 hours of youtube videos later, 3 hours of sweat, and I had a functional 3D tech demo of the idea I had.
It's well worth a look, and per geokon's comment, I too was against the team implementing a new language, but have since come to love it. It's Python, with the correct changes for the use case, and it works well.
1: https://docs.godotengine.org/en/stable/getting_started/scrip...
I find the whole idea of a separate language for just developing interactive media a bit off-putting. It's a huge price to pay over just plugging in an existing mainstream language. no more tutorials, zillions of references a robust toolchain, huge community.. etc. but there must be a good reason for it?
It's also why I don't write elisp. only so many hours in a day.. do I want to be futsing around in a language I won't ever use outside of the sandbox? not really...
it's not longer just a library of some language X, but an ecosystem I need to sorta sell my soul to
https://docs.godotengine.org/en/3.2/getting_started/scriptin...
It's not a DSL, it's a full on programming language. It's like claiming Action Script was a DSL, it wasn't.
It means tons of code in that language in order to create custom business logic, it means re-implementing things that were already written in tons of languages and so on and so forth.
So a new language makes sense but it's a trade-off.
Apparently there is the possibility of using other languages, so let's see if the integration is as robust.
There are important assumptions and specializations (e.g. the engine-managed game loop and attaching scripts to nodes) but also a large variety of use cases (for example both low effort and high performance graphics)
Is anyone else bored of the usage of the word language in computer circles?
Most language implementations are fairly poor at being used for extension. You can see that a lot of people use Lua for this purpose. Given how terrible Lua is as a language, there must be a compelling reason why people use it, right? It’s easy to use as an extension language. Same thing for JavaScript.
There are a few other random languages in this space. Squirrel, AngelScript, and Wren come to mind. It’s not a long list. Making your own language seems pretty appealing at that point.
One of the main things you want here is for sandboxed code to stay in the sandbox, and then to be able to destroy the sandbox to get a fresh slate back. V8 and SpiderMonkey do this, as do Lua, Squirrel, AngelScript, and Wren. Most language implementations do not. CPython has tons of global state. Mono, JVM are both huge and make this difficult (you can use Application Domains in .NET but that’s fairly arcane).
Criticisms of GDScript apply to these languages too, with the exception of JavaScript, as far as I can tell.
I’m leaving out a bunch of projects which for various reasons are even less suitable. Guile, TCL, etc.
If you're working a lot with a single game engine, it's nice to have a programming language that's tightly coupled to it.
When Unity moved away from UnityScript (a javascript lookalike but specialised for their purposes) towards C# they had to e.g. change their notation for Coroutines which made it a lot clunkier, so instead of just "yield WaitForSeconds(2.5)" you now do "yield return new WaitForSeconds(2.5f)" AND change your function signature (add an IEnumerable) AND have to change how you call the function - lots of cruft where previously it was all transparent/implicit.
Also, if you're working on your own scripting language you can make it a lot more aware of the particular data and structure of in your own game (games have a lot of data!). I haven't used GDscript/Godot a lot, but I remember the autocomplete being pretty smart and aware of what's going on with your data in a way that would be hard to do with a "commodity" compiler/IDE tool-chain.
It's a lot of work for them to do this on their end, but I think it pays off. It doesn't take much time to learn (especially compared to the api/3d scene interface/etc) and overall it feels slick.
Most of the niceness is sparing on overhead, it's not a fundamentally alien or goofy language. As a games programmer I have to work with a bazillion programming languages anyway; if I'm working on a single project it's a real luxury to have the language be ergonomically fitted to the engine.
There are advantages to using a more general programming language - maybe using Lua would've been a good option, but yeah for here at least I think it's fine (ah, another commenter linked https://docs.godotengine.org/en/3.2/getting_started/scriptin..., which talks about this :) ).
On the other hand, if programming juggernaut Unity couldn't justify keeping Unityscript alive, maybe Godot is also fated to change eventually...
Unity had UnityScript and a C++ engine but is now heavily investing in C#, moving engine parts to C# and focusing on performance in C#. Unity once had a more static and predefined graphics pipeline like Godot, but has now made it more configurable. I'm especially apprehensive about how restrictive the Godot shader language is.
Learning GDScript was natural and might have even helped when you are learning all the principles of Godot at the same time. Programming in Godot was not at all similar to the backend programming I was used to and I had to learn all kinds of gaming specific concepts.
If they had used Python, you'd essentially need to learn a whole new Standard Library anyway, so you might as well get the benefits of a domain-specific language anyway.
I used C#, but kept getting frustrated cause the support isn't at 100% (this is currently expected, I think C# is still declared alpha?). It was pretty easy to fill in the gaps between gdscript documentation vs C#, but certain built in functionality was missing.
My main use case for C# was strong typing, and the community support it has either with libraries or just getting answers online.
Eventually I caved in and tried gdscript. I can develop MUCH faster, and am still able to use types. You can also still use C# in the project, since the languages can communicate.
I think once C# has feature parity with Godot I'll move back to that, but until then, GDscript is great, and really easy to pick up.
Even moving HTML elements with CSS animations triggered by Lua compiled to JS would probably work fast enough...
PS: don't do that, don't create a monster!
I'm not saying they should change their name, but maybe lay low for awhile.
Very simple, but so you learn the basic concepts, without getting side tracked in millions and millions of different libaries and tools.
And if you do things right, your game will then run anywhere, where a modern browser works.
There's much to learn in game development on itself, so using a dedicated library that will make the simple tasks easy is always a good idea.
On the other hand, I also started with Adobes Flash. You could draw and animate and script right away ... and get awesome results right away .. without having to google html audio element.
Easy to use, good documentation, simple API, based off Lua. I suspect it's meant for smaller projects.
You could use Godot if you really like the open-source-ness of it, and don't mind waiting for 4.0 or doing the work to port your game from 3.2 to 4.0. If you want to get going now, use something else.
I like Godot a lot.
https://www.youtube.com/user/uheartbeast/videos
There is no shortage for godot tutorials anymore
The comparison is more about the framework usability vs the quality of the end product.
I’m wondering if Godot is maybe targeting similar audiences as Dreams or if Godot is targeting a more serious developer concerned about things like performance
1: https://www.youtube.com/channel/UCNaPQ5uLX5iIEHUCLmfAgKg/vid...
I did a VR game in Godot [1] which was my first ever VR game and my firt Godot game and it turned out pretty OK without too much friction