Godot from godot Engine... a legend ?

urieluriel Posts: 59Member

hi, i would like to discuss that point with you guys.
from my first look at godot, i have seen various peope who are saying that godot is made from godot itself.. which sounds very good if you think at the process of creating software from an onother, compiler,etc...

but then... i found that this is not exact (with my limited knowledge).
you cannot make godot from godot, or with a lot of work and without the specs that godot has.

i would have a question, regarding my concerns, what if ? and why every single features of godot cannot be re-used in our games ? i mean.. if something exists in the software, how to access every parts of the software to implement our dev ?

at this time i have only 2 answers:
the api is not complete enough to access all the source code
this is a head dev directive to limitate the access of specific features (maybe in a futur release...)

if you have any idea or experience, related to some missing methods and how you fix them to accomodate your project.. you know :) we cannot be stopped by a few lines of code, right ?

cheers
uriel


Tags :

Comments

  • TwistedTwiglegTwistedTwigleg Posts: 1,943Admin

    @uriel said:
    but then... i found that this is not exact (with my limited knowledge).
    you cannot make godot from godot, or with a lot of work and without the specs that godot has.

    You can make something pretty close without needing to modify the source code. For inspiration, take a look at RPG in a box, which is made entirely in Godot. From what I remember reading, RPG in a box is without any modifications to the Godot source code or C++ code.

    That said, if you want to make Godot the game engine in Godot, then I would agree that is isn't quite as straightforward as it may seem. There is quite a bit of functionality that is only accessible through C++, with no exposed bindings to GDScript (or C#).

    ... why every single features of godot cannot be re-used in our games ? i mean.. if something exists in the software, how to access every parts of the software to implement our dev ?

    I think the reason why a lot of Godot's source code is not accessible through GDScript or C# is to help streamline the workflow for most game developers and/or to keep engine bloat at a minimum. Exposing all of the functions/classes/etc to GDScript (or C#) could make it harder to find the more "general game dev" functions/classes/etc. Since many game developers will not need all of the functions/methods/etc involved in making a game engine editor, I think a lot of that functionality is kept behind to help make Godot more focused for typical game development.

    Another issue could be performance. Some of the Godot editor functions take up a lot of processing time, and so they are not really suitable for most Godot projects.

    It is also quite possible there is some technical reason why things are the way there are. It maybe be possible to access a lot more of Godot's functionality through GDNative, though I have not tested. Since GDNative is C++, it should be theoretically be much easier to use (or convert) Godot editor code in exported games.

    That said, this is all idle speculation on my part. Only those leading Godot's development really know where Godot is heading and why some choices were made over others. I'm sure there are good reasons for why some things are not exposed to GDScript/C#. You should probably ask the Godot development team if you want a definitive answer, though I'm sure they are busy with Godot 3.2 and Godot 4.0 development, so it may take a bit to get an answer one way or another.

    this is a head dev directive to limitate the access of specific features (maybe in a futur release...)

    From what I have seen of Godot's development, almost every new feature gets included in the next Godot release. As far as I can tell, if a feature isn't ready for release, then it is pushed back, but once it is ready they are generally pulled into the Godot source as soon as is feasible. I do not think features are limited or held back, at least not intentionally.

    Again, this is speculation on my part.

    if you have any idea or experience, related to some missing methods and how you fix them to accomodate your project.. you know :) we cannot be stopped by a few lines of code, right ?

    You can modify the source code and expose functions to GDScript in a pull request. That is what I did in this PR I made a couple years ago, which exposed the create_from_mesh function. All I needed to do was make some minor modifications, and then I could use the function in GDScript without any issues. Not all missing functions will be that easy, but it might be something to look into.

    You can also look at the source code for the missing methods and convert the C++ code to GDScript. I've done that a few times, though how feasible it is depends on the complexity of the missing methods and how deeply integrated it is. I do not really do this anymore, as I find the amount of time I invest into wrapping my head around how it works is generally not worth the results. Instead, I generally use a different reference.

    Another thing I find that helps with implementing missing functionality in Godot is to search " functionality name here". Sometimes I found a nice code snippet that I can convert to GDScript that does exactly what I need.

  • urieluriel Posts: 59Member

    thank you TwistedTwigleg for your long answer, very interesting and motivating.
    i do agree with all your points, basically as making my life easier :) and not going to loose myself into some esoteric development :) and as you said for not so much inprovement..
    on my side, as you did see my regular post on audio, i would need to expose various features from the sources... and for sure, i will try to do some code manipulation.

    GDnative looks very nice, even if at the moment.. i got some fear to enter the gate :anguished:
    anyway... if someone else as in the process of modifying the source for a specific purpose, i would like to hear you :)

    bye
    uriel

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file