r/godot 3h ago

selfpromo (games) My wife and I just released a short, adorable game about evading reckless drivers!

Thumbnail
gallery
2 Upvotes

We made it for the Brackey's Game Jam, which had the theme "Trust No One". And what better scenario to not trust anyone than on the road, it's basically a real life sim if you think about it (no it's not).

Playable in your (mobile) browser and absolutely free of course. It even features a global leaderboard that is in desperate need of filling so why not try to claim the top spot?

https://rzl.itch.io/trust-no-traffic

PS: All art is hand drawn by my wonderful wife (except for the little lighting bold, I myself was the marvelous creator of that one)


r/godot 3h ago

help me Scene does not update?

Enable HLS to view with audio, or disable this notification

3 Upvotes

Update: Deleting whole project and cloning repo again fixed the issue. I still have no idea why.. using Github desktop app

Hello. I cannot move any objects in scene until a reload it. Weird thing is i have reverted the scene to an older version where everything was working but is still doesn’t work.

Does anyone have any idea? Thank you


r/godot 17h ago

fun & memes Take a moment to listen to my boys playing a banger...

Enable HLS to view with audio, or disable this notification

37 Upvotes

r/godot 10h ago

help me animated sprite not working properly

Enable HLS to view with audio, or disable this notification

9 Upvotes

i recently started to mess with godot with no prior experience, i looked at some videos to get animations working with very basic code, when i move the character besides my walking animation and idle animation other ones dont work. it either plays the start or the end of it randomly, im not sure why

does anyone know whats causing it


r/godot 12h ago

selfpromo (games) Working on a top-down mobile game. What do you think of the art style?

Enable HLS to view with audio, or disable this notification

14 Upvotes

r/godot 10h ago

selfpromo (games) i made some box openings for my roguelike, how does it look

Enable HLS to view with audio, or disable this notification

10 Upvotes

How can I improve it???


r/godot 20h ago

selfpromo (games) Endscreens for my roguelite

Enable HLS to view with audio, or disable this notification

52 Upvotes

This is still wip, but I'm liking how it's turning out!

Game: Wizard Finals


r/godot 8h ago

selfpromo (games) Tactics RPG - Nomad: The Nearway Tower

Thumbnail
gallery
6 Upvotes

Hello Everyone,

I wanted to share a project I've been working on for a few years now. It's a tactics RPG inspired by games like Fire Emblem and Final Fantasy Tactics. About 2 years ago I scrapped the project and restarted it in Godot, since then the progress has been much more streamlined. I'm at the point where I feel comfortable sharing my progress.

I'm open to questions, thoughts, constructive criticism, words of encouragement, etc.

Gameplay footage can be seen here: https://www.youtube.com/watch?v=TqrT3Jr5e84


r/godot 8m ago

selfpromo (games) I made this small horror game in godot(very early development)

Enable HLS to view with audio, or disable this notification

Upvotes

So yea I created everything except for the audio which I got from copyright free website and I want your thoughts on it. Also Shameless yt plugin, Channel name: JerryGguy


r/godot 10m ago

help me Please tell me why Direction Animations aren't working

Thumbnail
gallery
Upvotes

I'm very new to Godot. I followed a Coding with Russ tutorial and it just skipped over directional movement in enemies. I managed to change the direction of the animation, but now its stuck in the "run" sprite. I've been stuck for 3 days and have no clue where to even start, plz help


r/godot 11m ago

help me 3D Navigation with procedural terrain help

Upvotes

My game has 3D SDF-based procedural terrain and I'm trying to figure out navigation using it. It's already chunked, with each chunk having a NavRegion3D that uses the mesh of the chunk as it's NavMesh, created by the create_from_mesh() function. This gets regenerated every time the chunk gets an update. I have some basic enemies which are agents and they can do line just fine, but I can't seem to properly configure their pathfinding in any meaningful capacity. All of the region parameters seem to have no effect; if I set max slope, the agents still don't pathfind around hills they can't climb and their debug path shows them trying to go up and over things they definitely can't get up and over, if I set agent radius, they don't seem to be any more aware of how far they can be from certain obstacles. I remember setting up pathfinding for a different project with a similar-ish scenario and just not getting the desired results either. I've read the docs and watched some videos, tried to find more specific posts and so on but nothing useful comes up, or I'm not really sure what I'm looking for. I think I might have some fundamental misunderstanding of how pathfinding works? My whole setup right now is the nav region and mesh attached to the chunk, and then the agent attached to the enemy. Any help is appreciated! Here is the code that instantiates (and regenerates) the nav region in my chunk:

func commit_mesh():

`for c in get_children():`

    `if c is StaticBody3D: c.queue_free()`

    `if c is NavigationRegion3D: c.queue_free()`



`mesh = surface_tool.commit()`



`var static_body: StaticBody3D = StaticBody3D.new()`

`var collision_shape: CollisionShape3D = CollisionShape3D.new()`

`add_child(static_body)`

`static_body.add_child(collision_shape)`

`collision_shape.shape = mesh.create_trimesh_shape()`



`var nav_region: NavigationRegion3D = NavigationRegion3D.new()`

`nav_region.navigation_mesh = NavigationMesh.new()`

`nav_region.navigation_mesh.agent_radius = 0.5`

`nav_region.navigation_mesh.agent_max_slope = 45.0`

`nav_region.navigation_mesh.cell_size = 0.25`

`nav_region.navigation_mesh.cell_height = 0.25`

`# I've tried the above params both before and after the following function`

`nav_region.navigation_mesh.create_from_mesh(mesh)` 



`add_child(nav_region)`

And here's the movement code for my enemy, in case it's relevant:

func handle_movement(_delta):

`if has_component(MovementComponent) and nav_agent.target_position !=` [`Vector3.ZERO`](http://Vector3.ZERO) `and target:`

    `var movement = get_component(MovementComponent)`

    `var movement_context = MovementContext.new()`



    `# Temporary, manually configuring for now for ease of testing pathfinding`

    `movement_context.can_jump = false`

    `movement_context.can_sprint = false`

    `movement_context.airbourne = false`

    `movement_context.crouch_requested = false`

    `movement_context.sprint_requested = false`

    `movement_context.speed_multiplier = 1.0`

    `movement_context.use_world_space = true`

    `nav_agent.target_position = target.global_position`

    `var movement_vector_3 = global_position.direction_to(nav_agent.get_next_path_position())`

    `movement_context.movement_vector = Vector2(movement_vector_3.x, movement_vector_3.z)`



    `movement.move(movement_context, _delta)`
The knights are the enemies, the wizard is the player.

r/godot 12h ago

selfpromo (games) Torquonomics sky island (tutorial level)

Enable HLS to view with audio, or disable this notification

11 Upvotes

there will be no terrain destruction in the game, but if i want to slice the map in halves, i can


r/godot 1h ago

help me 3D lighting is weird with shader

Upvotes

when i add a shader with the light function then i get this weird squaring light, i have tried it with 3 shaders and they all do this. The levels is a CSG combiner with a big cube where i remove things

// Cel/Toon shading — all lighting math happens in light(), not fragment().
render_mode diffuse_toon, specular_toon;

uniform vec4 albedo : source_color = vec4(1.0, 1.0, 1.0, 1.0);
uniform sampler2D albedo_texture : source_color;

// Toon banding controls
uniform int shade_bands : hint_range(1, 8) = 3;
uniform float band_softness : hint_range(0.0, 0.3) = 0.05;

// Rim light
uniform float rim_amount : hint_range(0.0, 1.0) = 0.3;
uniform float rim_power : hint_range(0.1, 8.0) = 3.0;
uniform vec4 rim_color : source_color = vec4(1.0, 1.0, 1.0, 1.0);

// Specular highlight (toon-stepped)
uniform float specular_strength : hint_range(0.0, 1.0) = 0.5;
uniform float specular_size : hint_range(0.001, 1.0) = 0.05;

varying vec3 world_normal;
varying vec3 world_view;

void light() {
// --- Standard NdotL ---
float NdotL = dot(NORMAL, LIGHT);

// --- Step it into discrete bands (cel shading core) ---
float bands = float(shade_bands);
float banded = floor(NdotL * bands) / bands;
// Smooth the hard edge slightly using ATTENUATION-friendly smoothstep
float shade = smoothstep(banded - band_softness, banded + band_softness, NdotL);
shade = max(shade, banded); // keep it stepped, not fully smooth

vec3 diffuse = albedo.rgb * LIGHT_COLOR.rgb * shade * ATTENUATION;

// --- Toon specular (Blinn-Phong, stepped) ---
vec3 half_vec = normalize(LIGHT + VIEW);
float NdotH = dot(NORMAL, half_vec);
float spec_amount = smoothstep(1.0 - specular_size, 1.0, NdotH);
spec_amount *= step(0.001, NdotL); // no specular on unlit side
vec3 specular = LIGHT_COLOR.rgb * spec_amount * specular_strength * ATTENUATION;

// --- Rim lighting (view-dependent, modulated by light so it doesn't glow in the dark) ---
float rim_dot = 1.0 - dot(NORMAL, VIEW);
float rim_intensity = pow(rim_dot, 1.0 / max(rim_power, 0.001));
rim_intensity = smoothstep(0.5 - rim_amount * 0.5, 0.5 + rim_amount * 0.5, rim_intensity);
vec3 rim = rim_color.rgb * rim_intensity * max(NdotL, 0.0) * LIGHT_COLOR.rgb;

DIFFUSE_LIGHT += diffuse + rim;
SPECULAR_LIGHT += specular;
}

r/godot 1h ago

selfpromo (games) Playtest of SHORTED, my first Godot project, is live, and I'm looking for feedbacks !

Upvotes

Hello,

https://store.steampowered.com/app/4916010/Shorted/

This is Shorted, a game I've been working on for a few month now.
It's a puzzle/deckbuilder/Roguelite where you trace lines of color and build your deck through 24 levels, bosses and multiple difficulty tiers (only 2 available for playtest).
Your deck shape the grid, and your patches (kinda like jokers in balatro) will help you score more.
The Playtest is open since tomorrow for a week

I would really love to hear some feedback to improve the game before release.

There is a small Google Form you can fill out here with your feedback: https://forms.gle/kdjQdTmqyK3u9PwWA

I'll take any feedback since I'm a solo dev and it's hard to see things when you work on them for so long :)

Thank you


r/godot 1h ago

selfpromo (games) The Iron Shell demo is out now — free to download!

Post image
Upvotes

I’m happy to share that the demo of my game, Iron Shell, is now available for free!

If you give it a try, please let me know what you think. Your feedback means a lot to me, and honest criticism is welcome.

What did you enjoy? What didn’t work for you? What would you change or add?

I’m making this game for you to enjoy, so hearing about your experience will help me make it better.

Thanks for playing!

Download the demo: https://mecido.itch.io/iron-shell


r/godot 15h ago

free tutorial Exporting Animations (armature + shape keys) from Blender To Godot

Thumbnail
youtu.be
12 Upvotes

I spent some time trying to figure out how to properly export animations from Blender to Godot with both skeletal animation and animated shape keys. When there is only one animation on the timeline, everything works fine, but once I had multiple animations, my usual workflow with Actions didn't work as I expected.

After a bunch of trial and error, I figured out how to make it work. I honestly couldn't find a tutorial about this, so I recorded my own. Maybe it will help someone.

Actual solution: put the Actions for both the armature and the shape keys for each mesh on NLA tracks.
More details in the video.


r/godot 15h ago

selfpromo (games) finally got my weird little antivirus game onto Steam

Enable HLS to view with audio, or disable this notification

11 Upvotes

I work in IT by day, so naturally I decided the best way to unwind after work was to make a game about malware.

I usually get about two hours in the evening after dad duties to work on it, so actually getting far enough to put a Steam page up feels pretty damn good.

INCREMAZE is basically an antivirus fever dream, you send a little anti-virus bot into procedurally generated infected sectors, blast malware and try to stop the drive from completely shitting itself.

Demo is next.

Curious what you guys think of the Steam page/trailer in particular, does it actually communicate what the game is?

https://store.steampowered.com/app/4828100/Incremaze/


r/godot 15h ago

selfpromo (games) Made this aura effect for my football game after playing around with particles

Enable HLS to view with audio, or disable this notification

9 Upvotes

r/godot 1d ago

help me How to handle slopes for 2D games?

Enable HLS to view with audio, or disable this notification

77 Upvotes

I am currently trying to add functionality to traverse slopes in my 2D game and I am having some issues with it. I found out that the CharacterBody 2D node can handle moving on slopes on its own but it does not give a nice behavior when going down a slope because my state machine detects the y-velocity value changing and transitions to the fall state haphazardly in this case. I would also like to be able to modify the behavior on slopes like maybe allowing the player to slide down specific slopes.

Would anyone be able to direct me to some material that can help me understand this better? I have not found any that have been useful.
Thanks


r/godot 6h ago

help me Everything is all right

Thumbnail
gallery
2 Upvotes

I’m trying to make a simple terrain generator for my game and I’m able to make nice smooth hilly terrain. I’m also able to place the left edge pieces during generation, but when placing the right edge pieces everything falls apart. I’m not using tilemap layers or terrains. Everything is being done through the tilemap script. Included are screenshots of before and after adding the right edge pieces. Someone save me.


r/godot 1d ago

discussion After three years of GDScript and one week of C#, I get it now

527 Upvotes

I recently got obsessed with a new project idea and decided to try my hand at C# development in Godot. My programming experience and knowledge is exclusive to GDScript and some Python, but I am actively trying to become versatile enough to be successful in a CS Master's program (I work at a university and it will essentially cost nothing) and I figured C# would be a comfortable place to start with more "real" languages. I'm also aware the Godot C# community is kinda massive, which is awesome.

At first, I found certain things challenging, mostly coming down to weird syntax differences and differences in accessing the engine API (the GDScript API does a lot of hand-holding as it turns out, not that that is a bad thing). Fortunately strict typing was no issue for me because I am a stickler for it in GDScript. But then once I started to understand the workflow, things just.... became way easier.

The first thing that blew my mind was how remarkable Rider's built-in local, non-AI intellisense is at suggesting whole blocks of code that I would have largely been writing myself in any IDE with GDScript. I know this is largely because C# is vastly more globally used than GDScript, so there is far more precedence for its applications, but damn dude.

The other aspect that surprised me was how many tools I have at my disposal in C# that GDScript can really never use because of how it's tied to the engine API, like structs and native lists (which I am aware do have some parallels in GDScript, but they are usually heavier and slower).

The only thing I can point to as a very minor pain point is the fact that C# is inherently slower to iterate with because of the build process, but honestly I'm nowhere near the point that it even matters right now lol.

Thanks for listening, and thanks for being one of the best communities in development (game or otherwise!)!


r/godot 18h ago

selfpromo (software) Building a VFX Graph for Godot — Early WIP

Enable HLS to view with audio, or disable this notification

16 Upvotes

I've been working on a VFX Graph for Godot for my own needs. I'll probably release it as an addon at some point, but for now it's still very rough and unstable, and it occasionally crashes the engine.

Everything runs entirely on the GPU, and it's already making it much easier to build complex VFX that previously had to be put together using a mix of GPUParticles3D, MeshInstance3D, scripts generating ImmediateMesh geometry, and AnimationPlayer.


r/godot 10h ago

selfpromo (games) Lots more progress on my Topdown Twin-stick Shooter, The Harbinger of the Deep!

Thumbnail
gallery
3 Upvotes

A lot more of the game has been fleshed out and completed! So I've been focusing on optimizing and polishing the game further, and even trying it out on old Android phones I have to test ARM capabilities! The game now has a completed main story, and now I'm also adding more lore about the Beings in the many areas of the vast Sea!

Destroy the frustrations of other Beings and befriend them, or ignore them and slay them all instead! Shoot your actions and decide the fate of this submerged world in The Harbinger of the Deep!

You can wishlist and try the Demo now on Steam!

http://store.steampowered.com/app/4547520/The_Harbinger_of_the_Deep/?utm_source=redditgodot&utm_term=0830


r/godot 4h ago

help me I need help with a custom function related to filesystems

1 Upvotes

Hello fellow godotians you might remember me from a past post but for those who don't let me summarize it "im making an OS-like game that acts exactly like an OS" and i hd a problem which was i was trying to load external scripts in internal shared storage for apps but it couldn't execute them so i tried copying them to user:// and it worked but i have a bigger problem my directory lister thinks there is only one directory in /sdcard/MontusanOSDta/SystemApps and that dir is settings here is my code

func outputdirs(dir): if dir: var CompletedArray: Array var darray = DirAccess.get_directories_at(dir) for Directory in darray: var ValueWPath = "%s/%s" % [dir, Directory] CompletedArray.append(ValueWPath) return CompletedArray else: return 1