Godot

6005 readers
7 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 2 years ago
MODERATORS
101
 
 

102
103
 
 

Hi everyone! Let’s try to write another shader to enhance our graphics, for example, the background of a scene in a game. I recently made a video about the emboss filter, which is quite similar to the effect I want to implement today, but this time I'll show a shader that may not look as flashy, but can be written in one line and certainly has other good qualities.

104
105
 
 
  • Seal the rift
  • Balocks
  • Duniya Skapare
  • Dungeons & Degenerate Gamblers
  • The Garden Path
106
107
108
21
submitted 4 months ago* (last edited 4 months ago) by KoboldCoterie@pawb.social to c/godot@programming.dev
 
 

I'm sure there's a really simple answer to this, but it's a surprisingly difficult problem to search for.

I've got a RichTextBox control and I'm trying to write text that includes the letters "ff", but they don't show up. This is the specific code in question:

for entry in suffix:
  desc += "[color=darkgray]Suffix (Tier: %s, Quality: %s%%) 'of %s'\n[color=royalblue]" % [entry.tier, entry.quality, entry.mod.name]

This is what it ends up printing:

If I change one or both of the Fs to capitals, they both display fine; it's specifically two lowercase Fs that're problematic. They also display fine elsewhere in the same textbox; it's just this line specifically that's problematic. Even tried escaping it but it didn't like that, either.

Most of the settings on the RichTextBox are default; the font has a lowercase 'f' character; I haven't done anything weird with the font size, or style, or anything else.

I'm tearing my hair out here. Please tell me this is just some stupid bbcode tag or some such.

Edit: For anyone finding this later:

It's a ligature (ffi) that the font is missing a glyph for. To solve the problem: On the Import tab, choose the font you're using, click Advanced, and under Metadata Overrides, expand OpenType Features, click Add Feature -> Ligatures, add whichever option is appropriate (discretionary or standard ligatures), then disable the option. Reimport the font, and the issue is fixed!

109
110
 
 

One of the topics I covered in the new book of shaders is advanced post-processing, which will be the subject of today's video.

111
112
 
 

Available on Linux and Windows (and developed on Linux!)

It was honestly so fun to develop using this engine, it's so lean compared to something like Unity

113
114
 
 

I want to instatiate the inspector of a specific type like int and String into my own inspector plugin. It would be incredibly useful to use the premade inspector types as they are just really well made.

The image is not related, I just wanted to put some visual here.

115
116
 
 

I enjoy doing game jams. Usually I do a retro N64 jam. But I've also done a bad art jam, and a few halloween jams. This time I've decided to do a full 2D SNES jam. Hope to see you there!

117
 
 

Hi everyone! If you watched the video about the simple transition between images using a noise texture, you surely noticed how we used a simple algorithm for a rather impressive effect. Now let's try something a bit different - instead of a regular transition, we'll create a burning effect for our scene, which will be a somewhat more complex algorithm. Let's do it.

118
 
 

Stumbled onto this pack when browsing some new Godot stuff. Figured it might be useful to some people here

In godot you can give nodes custom icons that show up beside their name using @icon("path/to/png") with that pointing to a valid image. These are custom icons similar to the built-in ones you can use to make your custom nodes more visually distinct

119
 
 

Image descriptionThe linked image depicts a screenshot of some snowy terrain I made using the Terrain3D plugin for Godot. On the left there is some differently textured snow and multiple cabins along with some other wooden objects.
.

Why can't I use LightMapProbes without the LightMapGI Node? I don't want to use the shadow-baking, I just need the global illumination!

This is something I though about for quite a while. I keep wanting to use some kind of global illumination and the LightMapProbes are a perfect fit for that. One can place them whereever useful and their customizability makes them an incredibly useful tool! When there is a red wall, I sure want to put a LightMapProbe there, so that the lighting can reflect that reflection there.

But nope, that's not how it works! When you want to use LightMapProbe, you MUST use it with the LightMapGI Node, which is mostly used for baking shadowmaps. That works great for small scenes like insides of houses and such, but it does not work with a large terrain for example. This means that we have loads of lighting methods for small scale scenes (VoxelGI, LightMapGI, ReflectionProbe) but for larger areas we are kinda stuck with SDFGI which only works on the Forward+ renderer.

SDFGI is great and all, but unfortunately it is not yet ready for large scale games I feel and its limitation to Desktop platforms really limits its scope.

Imagine how cool it would be if we could do this in a large scale world:

  • Use a ReflectionProbe for general treversal (that's what The Legend of Zelda:Breath of the Wild and Tears of the Kingdom does too btw!)

  • And use a multitude of LightMapProbes for smaller areas like towns and castles on the overworld to make for better global illumination.

TLDR: I feel that the usage of LightMapProbes and their lighting functionality should be expanded beyond the use in combination with the LightMapGI Node. It could allow for better lighting in large scale worlds.

120
121
122
 
 

I am currently trying to implement a magic system, where a user can construct their own spells using spell components. What are recommended methods / structures to accomplish this?

123
 
 

Learn how to enhance your game’s graphics with impressive visual effects!

This book provides a detailed guide on creating 30 spectacular shaders in Godot 4, including thorough explanations of their algorithms and parameter settings. Each example comes with complete source code that you can use in your projects without restrictions.

So, how can you get it?

Please visit Shaders in Godot 4: Add stunning visual effects to your games for more information and a free sample (50 pages out of 310).

Thank you for reading this. Good luck with your games. 😎

124
 
 

I'd like to create an effect similar to 2 death animations that exist in Crash Bandicoot 3.

In one of them, Crash is disintegrated: all the triangle faces get separated and fly apart. A similar triangle separation is seen when he dies from fire, the triangles fall separately.

The second is a simple separation of the legs and torso. One enemy that exists in the 1st stage can cut Crash in half, which will cause the torso to stay in place while the legs walk away.

125
17
submitted 4 months ago* (last edited 4 months ago) by BentiGorlich@gehirneimer.de to c/godot@programming.dev
 
 

I am coming from a Unity background and there I just had a component of some custom class in the scene which I could then easily get by calling FindInScene<CustomComponent> or something like that. Not in Godot this doesn't work, because I didn't find a way to get the actual class of an attached script. I always just get GDScript as the class name even though I did specify a custom one.

The information I want to save are things like: where to spawn players, how many laps will this race have, maybe save references to the spawned players, etc.

So how would I save this "meta" information to get by another script in Godot?

EDIT: here is an example: I have a main scene which can load different levels. When loading a level I need to get some information about that level, like: the available spawn points. Inside each level I have a node with a script attached to it that defined class_name LevelMeta and holds the meta information that I need when loading the level. How do I detect this script and the associated meta information?

view more: ‹ prev next ›