I'm a full-time C++ embedded developer, and contributing to/tinkering with Godot's source has really accelerated my learning and has enhanced my skills at work. I think my boss even sees the difference.
@NitroNovaMusic10 ай бұрын
This owns, man. Here are some timestamp chapters. :) 0:15 - Intro 0:59 - core - Engine core summary (typedefs.h, config, crypto, error, extension, io, templates, object, os, string, and variant) 6:00 - server - Internal game engine workings (rendering, display_server.h, navigation, audio, text) 8:12 - scene - Nodes and resources used in the editor (main, main/viewport, 2d, 3d, animation, audio, debugger, gui, resources, and themes). 9:54 - modules - Adds functionality to the engine 10:47 - thirdparty - External libraries bundled in the engine (and he lists off some examples). 12:31 - drivers - A variety of technologies that allow Godot to be exported and run cross-platform. 13:12 - editor - The engine's UI for editing game projects (export, project_manager, editor themes, etc). 14:36 - platform - Specific platform support technologies. 15:15 - main - Main entry point for the engine. The first lines the engine runs. 16:05 - tests - Unit tests of the engine 16:20 - bin - Not shown, generated when you build a project in Godot. 16:35 - misc - Assorted scripts for making the engine compatible with various specific things. 16:55 - doc - Documentation
@reduz10 ай бұрын
Oh thank you so much, I am quite unfamiliar with KZbin, so I need to learn how to do this.
@MihroTwo10 ай бұрын
@@reduz Chapters require an initial 00:00 chapter to be recognised and applied. Just prepend that extra line (or change it like "00:00 Intro") and KZbin will apply chapter markers to the video.
@vid242210 ай бұрын
we really need some documentations for the C++ engine code, it would help contributors be more efficient and save a lot of time. especially the Core part of the engine, I see a lot of PRs where a contributor makes some really impressive changes but end up using wrong data types or using inappropriate classes. I understand that this happens and we have other contributors who know better and can correct each other but having official docs for the engine code is a great long term investment in my opinion.
@reduz10 ай бұрын
This is in large part why I am going to work on this, some things are hard to write in comments regarding to how stuff works, so I will go over everything I can in these videos. Then if someone wants to help out writing code documentation for the core classes, they will have these as reference.
@jayrulez10 ай бұрын
@@reduz This seems like a roundabout way of doing things. Since you are already knowledgeable of the internals, why not just write it in the source code instead of explaining it in a video then hoping someone will then write in the code after watching the video. For one, it will take a long time to cover all the missing stuff in videos. Additionally, videos become outdated as the engine evolves. The written documentation will evolve with the engine, unlike these videos. I appreciate these videos, but you have to really think about the purpose. These videos may be great for beginners, but more experienced people will prefer documentation they can just read and get going. Is the idea behind these videos to get beginners looking into the code? Or is it to get more experienced people contributing?
@reduz10 ай бұрын
@@jayrulez Because a) Technical documentation in the source code takes far more time and effort and b) Can't really comment about everything in code comments, so would still also need a lot of extra supplemental documentation in the docs page. That would take a ton of time I simply don't have, so in the best spirit of a community project, I do my part and others do theirs, like everything has been up to now.
@Dent4210 ай бұрын
@@reduzWould you accept comments written by an LLM trained to generate comments from code? I’ve found that code -> comment has much better results than comment -> code
@Zarial_10 ай бұрын
@@Dent42 llm generated comments are flacky, it would take more time to fix the mistakes than commenting by hand.
@MajikayoGames10 ай бұрын
Awesome video! Can't find this kind of content anywhere else, super valuable for anyone who has poked around in the Godot source code to modify it. Which can be quite the time investment to learn it, so watching a quick 20 min video is nothing for us. Would love to see more of these, even if it's just giving an overview and rambling about whatever you feel is interesting/important to know. Appreciate the awesome engine Juan! I see your name every day when I boot up Godot lol.
@TheKbdering10 ай бұрын
Christmas came early this year! I was really expecting this series
@purplepixeleater10 ай бұрын
This has completely demystified Godot code base to me, I am very grateful for everything you do Juan! Amazing content.
@gnatinator10 ай бұрын
Thank you for having the foresight to simply embed third party libraries into Godot directly. Can't imagine the pain in the ass of having to maintain builds for all those.
@purplepixeleater10 ай бұрын
Like old GDN and Modules? :)
@vectoralphaSec10 ай бұрын
Wow. The original creator of Godot. Awesome.
@emiliotorres377410 ай бұрын
Juan, it’s awesome to see a fellow Latino and the brain behind Godot share these insights. Can’t wait for the next one!
@mono961310 ай бұрын
I planned on contributing to the engines source code for a long time now. This will definitely help a lot!
@squarerootof29 ай бұрын
Juan "I'll get into that later" Linietsky.
@cybermonkey280710 ай бұрын
Much needed thanks for your efforts...please continue this series
@ekings21199 ай бұрын
These videos couldn't have come at a more opportune time. I was just trying to get into contributing, and felt EXTREMELY overwhelmed, even with the bit of experience I have. Thank you.
@collinvisser710810 ай бұрын
Thank you for making the time to make this.
@Temple_Cloud10 ай бұрын
Really really love this video and it's content. Thanks so much! I totally admire Godot and it's communities commitment to not only providing an awesome open source game engine, but also 'opening up the source' so anyone can get started being creative and learning something new. I am really looking forward to this series - not only to learn about the Godot engine, but also to gain an insight into how professional developers go about designing a large complex multi-platform C++ application in practice. Tres excited!
@Temple_Cloud10 ай бұрын
Oh, the just one thing to add... sadly I am a bit old nowadays (probably a bit too old to be dabbling in this sort of thing tbh) - so my eye-sight is pretty awful, so if the font size could be bumped a bit in the next vid then that would be really appreciated! No problem if not though... the content is the important thing!
@Temple_Cloud5 ай бұрын
@KosinsStuff 💛
@David-eb4rp10 ай бұрын
Awesome work, looking forward to more explanation videos!
@Lexie_T6 ай бұрын
Thank you for making this! I would love to contribute to the source, but such a large project is intimidating to jump into. I look forward to seeing more!
@souvikkar551510 ай бұрын
Awesome content man! Looking forward to more such videos
@jostasizzi81810 ай бұрын
Finally somebody so I can really get deep knowledge how things work in 3D also inspire me to make my own fun projects too Thanks Juan
@aboudaladdin860410 ай бұрын
This is/will be very helpful, thanks Juan!
@michaeloconnell14510 ай бұрын
I love Godot! Thank you for making this video!
@RadheSarmiento10 ай бұрын
Este video es oro, siempre quise entender el codigo fuente de Godot para poder empezar a regresarle a la comunidad todo lo que me ha dado
@Fupicat10 ай бұрын
I had the 3.X version of this video on my watch later for so long, guess this is a sign for me to actually start now!
@purplepixeleater10 ай бұрын
at least you didn't waste time on that :) (I did the same lol)
@Pracedru10 ай бұрын
This was a very informative video. Thanks Juan.
@vectoralphaSec10 ай бұрын
Would you ever think about doing a whole course series on Godot game dev?
@Hawthorne-Studios7 ай бұрын
Cool wisdom vibes emerge from the tunes of synth...
@emanvidmaker10 ай бұрын
this is awesome, keep doing them, please
@semaph0re10 ай бұрын
Godot code is pretty easy to work on. I'm not a engine developer but was able to put my own stuff into Godot easily.
@nephew_tom10 ай бұрын
Great Juan! Is this a present coming from Fallas? 😄
@santimachin929410 ай бұрын
Inspiración total. Gracias
@EsmaeilEhsanmanesh-st9ux10 ай бұрын
Best thing could happen for an open source game engine.
@IceCreamPie900010 ай бұрын
Here we go
@FalconFetus810 ай бұрын
This is very helpful!
@mohsenzare251110 ай бұрын
Thanks for Video Juan Most server classes are virtual classes, is it possible to extend them through modules? as an example add a new physics server or rendering server?
@reduz10 ай бұрын
In most cases yes, (or would be easy to add if not). Rendering is harder because you most likely don't want to reimplement the whole thing, so overriding at a more specific point of the rendering code is going to be added also.
@kiyasuihito10 ай бұрын
Awesome thanks! 🎉
@perkarlo10 ай бұрын
Here we go 🎉
@hammer86_10 ай бұрын
Thank you! I would like an overview of the GUI code. Isn't the Godot editor written using it? Is it something I could use in a 2D application? I tried to figure it out years ago but I couldn't find where, for example, it actually draws a line.
@ferxas456010 ай бұрын
Thank you for this!
@leolopezdev10 ай бұрын
Hi thanks for your effort, someday I want to make games with godot.
@kusumaglawe545510 ай бұрын
Thanks 🙏
@Heni_zion10 ай бұрын
Thanks!
@mr.condekua614110 ай бұрын
is that windows?
@vuurmos625710 ай бұрын
This is great! I'm a noob but it's a dream of mine to help contribute to Godot
@comedyclub33310 ай бұрын
Although I really appreciate the effort, I'm not sure what the purpose of this video series is. While the source might seem intimidating at first, it turns out to be very readable and well structured if you take your time diving into it. I had a question the docs did not answer and was able to find the answer after 20 minutes of reading the source code, although I never had a look at it before. That's about the length of this video which covers only the surface. Of course this is highly subjective. Maybe it's just my perception and others have more trouble reading it. It's still nice to hear something from you, Juan!
@mehdimarzban282410 ай бұрын
Do I hear it correct? You pronounce it GODOT? With a "T" in the end?
@reduz10 ай бұрын
I'm a native Spanish speaker!
@el_primer_y_el_ultimo_caiman10 ай бұрын
i think you forgot the scene folder lol
@el_primer_y_el_ultimo_caiman10 ай бұрын
@@senkrouf my bad i was watching on the toilet at 6 am half asleep
@4115steve10 ай бұрын
you should do coding live streams. I think there would be a lot of interest in watching you code
@Ah2o5b10 ай бұрын
Thank you🎉
@mrhyperbit488210 ай бұрын
thanks
@agustinsida887710 ай бұрын
Otra coronacion de gloria
@leolui206110 ай бұрын
Just q: "old" amd/radeon - if can be good use vulcan, then why gl"es"3 exist? old platform? lg backend not work on amd/radeon. intel gpu have many issue. shadows problems, and etc/// and why you not support - i mean, replace as bgfx, or... ogre.... and physycs - WHY? i mean why you nead own iml?
@reduz10 ай бұрын
There is a difference between rendering techniques and rendering APIs. Old rendering APIs are designed for old hardware, which require old rendering techniques, while new rendering APIs are designed for newer hardware which use newer rendering techniques. Using an API wrapper like BGFX is not a magical solution and it does not avoid you from having to use different techniques for different hardware. GLES3 exists in Godot because its supported in much older harware (late 2000s) than Vulkan and the rendering techniques used on that renderer are the ones more ideal for that kind of hardware . Even if some very old hardware supports Vulkan (they added support even if the API came out later than the hardware), it does not mean it supports the more modern rendering techniques, hence you should still aim to run GLES3 on it.
@Kosin-v6w9 күн бұрын
I honestly dont even know why im watching this. I have barely any c++ knowledge and i literally don't understand anything going on in the code lmao
@andrewn71559 ай бұрын
*Promo sm* 😪
@solitudealma3883 ай бұрын
Do you know how lsp sends the generated code to the built-in or external editor? For example, the function added when connecting two nodes. I use the external editor neovim, but when I use this function I get ``` [ERROR][2024-10-16 19:29:29] ...m/lsp/client.lua:974 "LSP[gdscript]" "on_error" { code = "NO_RESULT_CALLBACK_FOUND", err = { error = { code = -32601, message = "Method not found: " }, id = 6, jsonrpc = "2.0" }} ``` This error. How should I fill in the remote-send parameters?