Godot 4.8 is a HUGE update! — Transcript
Full transcript
- 0:00GDO4.8 has now entered feature freeze.
- 0:03So, it's the perfect time to talk about
- 0:05the best new features from quality of
- 0:08life improvements to new very requested
- 0:10nodes and huge features that will be
- 0:13very useful for bigger games.
- 0:17[music]
- 0:19Let's start with the rendering side. 4.8
- 0:21[music]
- 0:22finally introduces texture streaming.
- 0:24It's a feature that lets the engine load
- 0:26lower quality versions of a texture
- 0:28based on the camera distance to save
- 0:30VRAMm and improve load times. This can
- 0:33be very useful, especially for openw
- 0:35world games that often have to render
- 0:37many high-res textures at once. The
- 0:40feature is marked as experimental, but
- 0:42I've tried it and it works fine. There
- 0:44were a few smaller bugs, mostly related
- 0:47to error spamming, but they've already
- 0:49been fixed. You have to enable this
- 0:51feature in a project setting under the
- 0:53rendering and texture section. There's
- 0:56an option to set a memory budget,
- 0:58forcing the game to lower the
- 0:59resolutions of the textures to stay
- 1:01within that limit. After you enable it,
- 1:03you should see a new textures button in
- 1:05the toolbar containing a submen with
- 1:08quick quality presets you can apply to
- 1:10the project settings. You should also
- 1:12make sure to import all the textures you
- 1:14want as textured 2D streamed, not just
- 1:18textured 2Ds. otherwise they will not be
- 1:20affected by the texture streaming. While
- 1:22there's no quick function to apply a
- 1:24preset at runtime, in case you wanted to
- 1:27add texture quality settings in your
- 1:29game, you can just set the corresponding
- 1:31values in the new texture streaming
- 1:33singleton and it should work at runtime.
- 1:36That's how I've managed to integrate it
- 1:38with my modular setting system. If
- 1:40you're interested in how that one works,
- 1:42leave a comment and I'll make a video
- 1:44about it. It might not seem like it, but
- 1:47setting systems in games can be their
- 1:49own rabbit hole once you start to have
- 1:51dozens of these with different values,
- 1:53translations, and implementations.
- 1:56Moving on to another rendering feature,
- 1:58directional light 3D nodes have added
- 2:00support for screen space contact
- 2:02shadows. It renders precise small
- 2:05shadows with detail that traditional
- 2:07shadow maps may miss. This is especially
- 2:09useful for things like foyage, fences,
- 2:12or other smaller detailed objects. Of
- 2:15course, as with any screen space-based
- 2:17technique, some detail will be lost if
- 2:20the object is not completely visible,
- 2:22but still it can vastly improve the
- 2:25depth of a scene. It's something that I
- 2:27personally don't want to have. Keep in
- 2:29mind that you have to enable this in the
- 2:31directional light 3D node, but also in a
- 2:34new project setting under rendering
- 2:37lights and shadows. One of the most
- 2:39requested 3D nodes in GDAU has always
- 2:41been line 3D. This release doesn't have
- 2:44that, but it does introduce a new trail
- 2:463D node that shares some of the codebase
- 2:49a future line 3D node should have. Trail
- 2:533D resizes itself based on movement,
- 2:56leaving a trail behind. This is useful
- 2:58for velocity lines, bullet trails, wind
- 3:02trails, and those types of effects that
- 3:04are actually more complex to implement
- 3:06than they seem. There's options for
- 3:08width, a color gradient, a custom curve
- 3:11if you want to change the shape a bit,
- 3:14and even a custom material. Even though
- 3:16this last option is a bit limited
- 3:18because trails already rely on custom
- 3:21shaders, I think I'll be using this for
- 3:23glide and ship trails in my game. By the
- 3:26way, this is Project Neon Wild, the
- 3:28cyberpunk survival sandbox game I'm
- 3:31working on. You explore an infinite
- 3:33procedural high-tech world in decay and
- 3:36survive by scavenging resources, raiding
- 3:39survivors, installing body implants, and
- 3:42upgrading your ship. It's still in
- 3:44pre-alpha, so I know it looks bare
- 3:46bones. I want to finish the basic
- 3:48systems first and then focus on making
- 3:50it pretty before releasing a demo or a
- 3:53Steam page. If you're interested in my
- 3:55game or general game development deep
- 3:57dives, you can subscribe or follow me on
- 3:59Blue Sky. Let's keep [music] going.
- 4:01Previously, you could only use decals in
- 4:04the 4 plus renderer. 4.8 now allows you
- 4:07to have them in the compatibility
- 4:09renderer as well, which is great for
- 4:11compatibility with older devices. One of
- 4:14the main limitations decals also had was
- 4:16that they were static. Gado draws decals
- 4:19in a single draw call to improve
- 4:21performance by grouping all of them in a
- 4:24single texture, a decal atlas. Now the
- 4:27rendering server is able to update a
- 4:29single texture in that ad class without
- 4:31needing to rebuild the entire thing. In
- 4:34practice, you can use this to create
- 4:36animated decals via drawable textures
- 4:39and even animated light projectors too
- 4:41because they work in the same way. This
- 4:43is useful for effects like water
- 4:45costics, animated puddles, animated
- 4:48movie projectors, etc. Finally, for this
- 4:51section, multibounce ambient occlusion
- 4:54has been merged for 4.8. This one also
- 4:58has to be enabled in the project
- 5:00settings. GDAU already had SSAO, adding
- 5:02drop shadows between corners to give
- 5:05scenes more depth. However, this could
- 5:07also lead to certain areas being over
- 5:10darkened. Multibounce ambient occlusion
- 5:13reads information from the albido
- 5:15texture to simulate color bouncing off
- 5:17the surfaces, making those shadows look
- 5:20more natural and balanced. It's an
- 5:22industry standard [music] feature other
- 5:24game engines already had, so it's nice
- 5:26to see GDO finally getting it. There's
- 5:29plenty of editor improvements, so I'm
- 5:32just going to mention the most important
- 5:33ones quickly, such as the new find
- 5:36[music] and replace UI. This panel now
- 5:38includes a preview of what the
- 5:40replacement will [music] look like. It
- 5:42allows specifying a folder, a pattern,
- 5:45and you can even have many tabs. This is
- 5:47complemented by a new experimental
- 5:50symbol renaming feature. While the
- 5:52editor was already able to replace
- 5:54strings in [music] text files, it wasn't
- 5:57very smart. It replaced every occurrence
- 5:59of that string, including comments,
- 6:02variables, and other things that you
- 6:04might not want to change. Symbol
- 6:07renaming allows you to select a variable
- 6:09and [music] rename it, respecting its
- 6:11scope. It will also skip comments or
- 6:14other [music] things that aren't direct
- 6:16references to that exact variable as
- 6:18well, even if they share the same
- 6:20string. It's a step forward when it
- 6:22comes to making the code editor more
- 6:24robust and smarter, [music] as it
- 6:26usually lacks behind others or editors.
- 6:30Another feature that improves the code
- 6:32editor is the new support for warning
- 6:34and error underlining. The code editor
- 6:37used to highlight an entire line if you
- 6:39had either of these, which could be
- 6:41confusing if you had a many errors in
- 6:43the same line. The main 2D, 3D script,
- 6:47and asset store tabs have now been
- 6:49turned into docks [music] you can move,
- 6:52make floating, reorder, and close. This
- 6:54will improve the flexibility of the
- 6:56layout even though there are still some
- 6:58limitations. [music] These docks can
- 7:00only be centered for now, and the game
- 7:02tab can't be made into a floating
- 7:04window. Below those tabs, you'll find
- 7:06the new 2D, 3D, [music] and game
- 7:09toolbars. They feature a new design that
- 7:11groups some icons into related actions,
- 7:14grouping things like the transform
- 7:16[music] actions, the snap buttons, and
- 7:18the environment options. I like this
- 7:21change. I think it [music] makes them
- 7:22more legible, and especially for the
- 7:24Game Tap toolbar. That one used to have
- 7:26the window options kind of hidden. By
- 7:29the way, the embedded game view has now
- 7:31become the default instead of a floating
- 7:33window. So, like in most engines,
- 7:35[music] it's just so useful. The tree
- 7:37control has gotten a new feature that
- 7:39makes an item stick to the top of the
- 7:41tree if it's the parent of a foldable
- 7:43section. Because the editor is made with
- 7:45GDO's UI toolkit, this works for both
- 7:48tree controls you have in the editor's
- 7:50lists like the scene tree panel that now
- 7:53supports track toggles for visibility
- 7:56like in Blender. The add node dialogue
- 7:59or the [music] file system dock, which
- 8:01speaking of, I get a new shortcut that
- 8:03lets you zoom in and out by holding down
- 8:05the control key while moving the scroll
- 8:08wheel, emulating how many file managers
- 8:10do it. There's been two menu bar options
- 8:13that stood out to me because of how
- 8:14convenient they are. First, there's a
- 8:17new option to clear the project cache.
- 8:19Sometimes import settings or assets
- 8:22break or the project cache gets too
- 8:24bloated. You could delete the Dodo
- 8:27folder to remove the cache, but it also
- 8:30removed other things like colored and
- 8:32favorite folders. This option keeps
- 8:34those while still moving the rest to the
- 8:37trash. Another new option lets you
- 8:39automate the setup of the Android SDK
- 8:42when you want to export your game to
- 8:44Android. This was annoying as you had to
- 8:47do the entire process all over again
- 8:49when the version changed. The engine
- 8:51should now take care of installing the
- 8:53export template and setting up the SDK
- 8:56properly. You can now assign different
- 8:58audio streams to theme event because it
- 9:01uses a regular audio stream. You could
- 9:03also pass an audio stream randomizer to
- 9:06make the pitch and volume vary a little
- 9:08each time they're played. It's a nice
- 9:11feature. You could already do this, but
- 9:13it required you to make a manual
- 9:15implementation, and you also had to
- 9:17assign it to all controls you wanted to
- 9:19be affected. This already affects all
- 9:21instances of that [music] control
- 9:29labels. Enriched text labels only
- 9:31allowed hard-coded sizes. This could
- 9:34quickly become an issue if you had long
- 9:36text, user input, or when translating
- 9:39strings to other languages, as the
- 9:41formatting of the text may change and
- 9:44break the labels bounds. You can now
- 9:46enable automatic label resizing, making
- 9:49the engine adjust the font size to
- 9:51ensure the text fits within the label's
- 9:53bounds by specifying a min and max size.
- 9:57One of the most requested visual shader
- 9:59features was support for group nodes. I
- 10:02wouldn't really call myself good with
- 10:03shaders, but I've made a few of my own,
- 10:06and visual shaders make it easier, but
- 10:08they can also be messy. I often found
- 10:11myself duplicating setups or logic with
- 10:14barely a few changes because there was
- 10:16just no way of reusing them. Not
- 10:18anymore. As good 4.8 adds group nodes.
- 10:22These let you reuse a visual shader
- 10:24subgraph with custom input and output
- 10:27values. As you can see, I used them to
- 10:30reuse the texture UV shifting logic with
- 10:33different [music] parameters for this
- 10:34water shader. It works fine, but I have
- 10:37noticed a few smaller bugs and quirks.
- 10:40For example, default values don't work
- 10:42and you have to pass them to the
- 10:44subgraph because otherwise it breaks the
- 10:46shader. I'm not sure if this is a bug or
- 10:49intended behavior. Sometimes the life
- 10:51editor shader updates break, [music] but
- 10:54they work fine at runtime. Still, it's a
- 10:56very useful feature I'm sure I'll be
- 10:59using a lot, and these smaller issues
- 11:01should be fixed in upcoming releases. A
- 11:04gripe I had with GDAU's animation system
- 11:06was that waiting for animation events
- 11:08wasn't straightforward in all cases.
- 11:10While state machine playback objects had
- 11:13signals, if you used an animation node
- 11:15transition, a oneshot node, or a blend
- 11:18space, you were on your own. I don't
- 11:20like using state machines for animations
- 11:22that much because they're messy and
- 11:24unreliable in my experience. So, I used
- 11:27transition and oneshot nodes and had to
- 11:29resort to using timers, custom animation
- 11:32tracks, and other hacks to know when an
- 11:35animation finished and this didn't cover
- 11:37all cases. Fortunately, with animation
- 11:40node observers, this shouldn't be an
- 11:42issue anymore. There are new resource
- 11:44you can define in the editor and get it
- 11:46via code. As with any other animation
- 11:49tree parameter, connecting to its
- 11:51signals to run custom code when an event
- 11:54occurs. I can imagine this being very
- 11:56useful for setups with many animation
- 11:58events like combos or to emit a sound
- 12:01effect after an animation has finished.
- 12:04GDAU already had an internal class to
- 12:06handle fuzzy surge. You know, being able
- 12:09to find results even if the input has
- 12:11subtle typos or the wrong order. But
- 12:14this was only for the quick load window.
- 12:16not anymore as it's been exposed as an
- 12:18API you can use in your game. This is
- 12:21going to be very useful if you have,
- 12:23let's say, an inventory menu with a
- 12:25search bar. There's been several
- 12:27performance improvements in this new
- 12:30version. If you've ever tried to perform
- 12:31a physics query without notes, you'll
- 12:34know that the physics server returned
- 12:35the results by allocating a dictionary,
- 12:38which was slower and prone to typos. New
- 12:41physics result classes and functions
- 12:43have been added that let you perform the
- 12:45same queries faster, skipping the
- 12:47dictionary and returning a typed object.
- 12:50Mice with high polling rates were
- 12:52causing severe performance issues on
- 12:54Windows. [clears throat] This has now
- 12:55been fixed. We've also seen considerable
- 12:58performance improvements when removing
- 13:00many nodes as well as when updating a
- 13:02Polygon 2D. There were many smaller
- 13:05features I skipped because if I included
- 13:07them here, the video would be like 30
- 13:10minutes long and I have to work on my
- 13:12game and other videos. So, I do
- 13:14recommend you to read the blog posts in
- 13:16the change logs if you're interested in
- 13:18all the features, fixes, and changes.
- 13:21I've been using 4.8 for about a month or
- 13:23so, and so far there were a few small
- 13:26bugs here and there. They've been fixed
- 13:28now, and I do find it to be mostly
- 13:30stable, just in case you want to give it
- 13:32a try. Of course, unless you really need
- 13:34the new features, I would recommend you
- 13:36to just wait for the stable version or a
- 13:39beta at least and make lots of backups
- 13:42just in case. The future of the GDAU
- 13:44engine looks promising, that's for sure.
- 13:46I started working on this game since
- 13:48like 4.2 or 4.3, and I've seen every
- 13:52feature I needed get added over time. I
- 13:55can only imagine the stuff we'll have in
- 13:56a few years. But anyway, what was your
- 13:59favorite feature and what would you like
- 14:01to see in the next releases? Thank you
- 14:03so much for watching the video. See you
- 14:06in the next one.
About this transcript
This page contains the full transcript of Godot 4.8 is a HUGE update! by ByteSeb, generated from the public captions YouTube serves with the video. The transcript has 2,382 words across 355 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.