Godot

6047 readers
62 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
1
 
 

Then you can easily move to bookmarks using the go to button at the top or using ctrl+b and ctrl+shift+b

2
 
 

If you also just have a large block of text it lets you see a large amount of the text instead of only a small part at a time

3
 
 

Hello everyone! This is the first video I'm recording in 2025, so I hope it turns out well. This time, I’d like to show how we can use a shader to create a digital clock, which we will then control using a script. So, let’s get started.

4
 
 

you cant nest export_subgroups within each other but you can use slashes for nesting

5
 
 

You will need to close and then reopen the node to see the changes and icon must be put before the class declaration

6
7
 
 

i wanted to add a cool background to some game i'm making for a friend, so i had a lil fun with glsl and made this.

i uploaded a short screen recording on all the parameters, but apparently catbox doesn't work well with that anymore. So I replaced it with this image.

here is the code, use it however u want <3

shader_type canvas_item;

uniform sampler2D gradient : source_color;

uniform vec2 frequency = vec2(10.0, 10.0);

uniform float amplitude = 1.0;

uniform vec2 offset;

// 0.0 = zigzag; 1.0 = sin wave
uniform float smoothness : hint_range(0.0, 1.0) = 0.0;

float zig_zag(float value){
	float is_even = step(0.5, fract(value * 0.5));
	float rising = fract(value);
	float falling = (rising - 1.0) * -1.0;
	
	float result = mix(rising, falling, is_even);
	return result;
}

float smoothzag(float value, float _smoothness){
	float z = zig_zag(value);
	float s = (cos((value + 1.0) * PI)) * 0.5 + 0.5;
	return mix(z, s, _smoothness);
}

void fragment() {
	float sinus = zig_zag(((UV.y*2.0-1.0) + smoothzag((UV.x*2.0-1.0) * frequency.x - offset.x, smoothness) * amplitude * 0.1) * frequency.y - offset.y);
	COLOR = texture(gradient, vec2(sinus, 0.0));
}

if u have any questions, ask right away!

8
 
 

This shows up when there’s no value and disappears when you start to type

Works for Strings, Arrays of Strings and PackedStringArrays

9
 
 

It removes what you set as the prefix from the name for the variable in the inspector

10
12
submitted 5 days ago* (last edited 5 days ago) by GammaGames@beehaw.org to c/godot@programming.dev
11
 
 

You can nest as many subfolders as you want using this

12
 
 

From the description: "After years spent in Unity I have finally made the decision to move to Godot starting next year."

13
 
 

Hey everybody! And welcome to the last tutorial of this year. Of course, this is definitely not the absolutely final tutorial, as I will continue with a new batch of learning materials in January. So, how are we ending the year 2024? We will be implementing blobby objects, also known as metaballs. Yes, exactly what you see on the screen right now. So, let's get started.

14
 
 

@export_group("Text") is used to make a group and you can break out of the group using @export_group("")

15
 
 

This pops it out into a new window that you can move around separate from the main window (e.g. onto other monitors)

16
 
 

in this case I selected res so its showing everything in res on the right

17
 
 

*(unless the subfolder explicitly has another color set)

Useful for finding certain folders quicker

18
 
 

Putting a backslash after a part of the statement basically means ignore any newlines between this and the next characters so you can indent it however you want

19
 
 

Hi everyone! Let's add a simple effect simulating a TV signal disturbance to our collection. It actually resembles typical artifacts when playing recordings from a low-quality VHS tape, but it's up to each programmer to find a suitable use for it. And because it's a very simple algorithm with just a few lines of code, this video will be relatively short as well. So let's create it.

20
21
 
 

I am experimenting with creating a pixel-art mobile game in Godot. I am having trouble with the viewport size regarding the pixel art assets. I've learned that I should set the scaling mode to integer, which adds black bars to the screen. My plan to get rid of the black bars is as follows:

  1. Find a way to resize the main viewport dynamically in runtime
  2. Calculate, based on the device's size, what size the viewport should be
  3. Apply that calculation when appropriate

Before I even try to get a calculation like that going, I want to make sure I can change the viewport's size in the code, which I couldn't figure out myself. I have tried the following:

  • Changing the project settings in a _ready function: Does nothing
  • Changing the project settings in a _process function: Does nothing
  • Setting get_viewport().size in a _ready function: Does nothing
  • Setting get_viewport().size in a _process function: Changes the size of the viewport, but without expanding it
  • Setting get_window().size in a _ready function: Does nothing

What else can I try?

22
 
 

This lets you type parts that are differentiated from the other variables quicker while still having enough to smart pick it

23
24
 
 

Hey everyone! The end of 2024 is slowly approaching, so I thought it would be good to add at least one more post-processing effect before diving into something more complex next year. This time, it’s again about layering, with each layer shifted differently using a noise texture and rotation. With a bit of imagination, the result can resemble a painting where the colors have blurred and blended together slightly. Let’s take a look at how this algorithm works.

25
 
 
view more: next ›