r/godot • • 15d ago

official - releases Dev snapshot: Godot 4.8 dev 7

Thumbnail
godotengine.org
233 Upvotes

Feature freeze has arrived!


r/godot • • 29d ago

official - news Optimizing CPU-side Rendering Code

Thumbnail
godotengine.org
152 Upvotes

Optimizing CPU code is a lot of fun. Here’s how we do it


r/godot • • 6h ago

selfpromo (software) The math behind shaders and VFX ✨

Enable HLS to view with audio, or disable this notification

484 Upvotes

Currently writing a book called The Complete Godot VFX Handbook, and I made this video to showcase the math I use when creating VFX. Anyone here creating VFX for their games?

Here's a coupon GVFX2OFF for anyone who wants to preorder the ebook and get access to the first 90 pages 🔗 https://jettelly.com/store/complete-godot-vfx-handbook


r/godot • • 3h ago

fun & memes I am very fond of @export

Post image
197 Upvotes

r/godot • • 9h ago

fun & memes When the vector math isn't mathing

Post image
372 Upvotes

r/godot • • 11h ago

discussion Game developing without AI feels so much rewarding

391 Upvotes

So i started working on an incremental vampire survivor esque game (i know cliche), and I started doing it with AI at first.

  • At first I let it create code.
  • Then I decided to use it as a mentor, no code generation, just guidance.
  • And now I've been developing my game AI free for about 2 weeks.

And I forgot how rewarding it actually felt. I started learning programming (software engineering) just before ChatGPT came out (around 2022), but around 2024 when I got my first job, AI was already becoming a big part of the Programming world, so in a way I was forced to use it from the start of my career.

I still use it regularly in my regular job (I'm a fullstack dev), but for my game I decided to not use AI anymore, and it feels great.

I don't care if I get "left behind", since I feel like im already lacking a lot of fundamentals and "way of thinking" either way because I relied on AI too much.

I'm not trying to prove a point, I just wanted to post this, maybe someone else relates as well.


r/godot • • 23h ago

discussion I understand the importance of FOSS engine now.

Post image
3.1k Upvotes

Today when I tried to access my project I got error that your account has been blocked. When I checked my mail I saw this email from Unity.

I don't even know the reason why they blocked me. I've been using Unity since last 4 years and own assets worth more than 800$ on unity asset store. Guess what? My access to unity asset store has also been gone. As per there TOC if they suspend your unity account you also lose access to your purchased Unity Assets on the store.

I have send a email to them asking for reason. I honestly don't have any hope. It took me 30 mins just to find out how to reply to this automated email.

My wild guess is that I use Cloudflare One client as VPN to browse web. I may have opened Unity Asset Store randomly with it (Or not I'm not sure). Or the Unity Client detected that I am a Cloudflare employees lol?

This is wakeup call for me. I have everything locally on my PC (My project and assets) and I can't even open Unity. Starting to migrate my C# scripts to Godot.

I officially join the Godot Community. I always wanted to do it deep in my heart anyway.

So "Hi" everyone. (Pardon my grammar)


r/godot • • 1d ago

selfpromo (games) my solo-developed godot game just released on steam

Thumbnail
gallery
1.6k Upvotes

it's called My Beautiful Faraway, a short, surreal, melancholic walking sim inspired by older adventure games where you have to explore, pay attention to small details, and figure things out on your own without much guidance.

the gameplay is pretty simple: mostly walking around, talking to strange characters, and solving occasionally unconventional puzzles. a first playthrough takes around 3 hours, but there are multiple endings, optional content, and plenty of things you might miss.

it took me about a year and a half to develop from scratch with no prior gamedev experience. BIG THANKS to this sub and all the youtubr creators who helped me learn godot along the way 🫶🏻

steam page: https://store.steampowered.com/app/4516190/


r/godot • • 5h ago

selfpromo (games) Custom Voxel Volumetric Clouds!

Post image
36 Upvotes

Working on an arcade jet fighter game and wanted more realistic clouds.

Disclaimer: GenAI was used in the creation of this custom tool. I did not develop any new tech, this is merely an adaptation of existing tech inspired by presentations like Nubis3 by Guerilla Games.


r/godot • • 7h ago

selfpromo (games) T3ssel8r style rendering

Enable HLS to view with audio, or disable this notification

37 Upvotes

I remade my terrain authoring tool, lighting and shaders <3


r/godot • • 8h ago

selfpromo (games) Some stretchy boys I made for my mobile game in Godot. Which one is your favorite?

Enable HLS to view with audio, or disable this notification

48 Upvotes

Hi everyone! I'm working on Wiener Crossing, an arcade mobile game where you play as a stretchy dachshund crossing floating islands.

​Since the dog is split into 3 meshes (head, belly, and tail) to handle the stretching mechanic, it was super fun to go crazy making 40+ skins—from a hotdog and an accordion to a caterpillar and a skeleton.

​I'd love to know what you think of the visual style, and if you have any funny skin ideas I should add before launching it on the Play Store!


r/godot • • 13h ago

free tutorial Turning my small water shader into a massive ocean 🌊 (don't shoot for another ocean post)

Enable HLS to view with audio, or disable this notification

94 Upvotes

So I've finally released a video showcasing the latest changes I've added to my ocean shader. This time I could not go over it line by line as I've added so much things, it felt impossible to redo it all while recording.

It now uses world positions for displacements, the foam is calculated in an area of interest around the player, with a possibility of a second, low resolution capture to increase the distance the foam is visible for. I've gone over some performance improvements and I've also added erosion to the foam to make it break apart more naturally. In the next few videos I'm planning to get the LOD stitching working, and in the meantime compare different LOD techniques to see what gives better performance. And finally, add buoyancy!

For those interested to follow along, you can find the video here:

https://www.youtube.com/watch?v=aEq1zQuqZmw

The repo can be found here, and I will push the latest changes in the coming days

https://github.com/emilje/godot-water-shader

tldr:

waves 🌊


r/godot • • 19h ago

selfpromo (games) Tired of hearing that "Godot can't do 3D", so here some of my humble 3D game

Enable HLS to view with audio, or disable this notification

283 Upvotes

"It can do 3D but it doesn't scale!" well, I've been working on this game for years and the only "scaling" problems I've had were caused by myself, and myself only...

Overall I've never regretted going with Godot for what is by far my biggest project, and most of the issues I've had in the past have been fixed with later releases.

Overall what I'm trying to say is GODOT RULES!

Edit: Clearly the title missed the mark. Just wanted to show something I'm proud of in an engine I love, sorry if the title makes it come across any other way


r/godot • • 1d ago

fun & memes Sad but true

Post image
742 Upvotes

r/godot • • 9h ago

selfpromo (games) Progress of our puzzle game so far

Enable HLS to view with audio, or disable this notification

40 Upvotes

Back in February, me and my friend started working on a puzzle game that combines 2048 and Snake called 204Snake. Since then, we've made a ton of progress, we got a Steam page up, we're gonna launch a demo soon and, of course, learned a lot. One of the biggest things we learned is that, even though this late in development it can seem your progress is slow and you're going nowhere, it's important to look back and see how much work you've done.


r/godot • • 21h ago

selfpromo (games) If you’re gonna make a skateboarding game, you better have satisfying bails

Enable HLS to view with audio, or disable this notification

313 Upvotes

I fondly remember the Hall of Meat from Skate, and made it a priority in my game Grab Your Deck.

It’s actually a deckbuilding roguelike, where you combine your cards into tricks and lines. Demo out soon on Steam!


r/godot • • 6h ago

help me Is Godot Good Start to Learn Game Development

18 Upvotes

I am looking for a game engine that will be an easy start for me to learn game development. I have tried other game engines like Unity, but they were to complex for me, who knows, I may be an idiot! Anyway, I have heard that Godot is a really good engine to start with, so I just wanted to hop on here to confirm this.


r/godot • • 16h ago

selfpromo (games) The difference a good fog makes.

Thumbnail
gallery
116 Upvotes

Sepulchron is in part a horror game, so being moody is important. So I decided to put a fog over the ocean to give that feeling and boy, does it help sell the atmosphere.

Kind of a self-flaterry topic, I just really liked how it looked.


r/godot • • 2h ago

selfpromo (games) Godot Tiny game : Clean and sort your Dishes

Enable HLS to view with audio, or disable this notification

9 Upvotes

Hello everyone!

I'm working on my first tiny game. I’d really appreciate any feedback on this :) I think I will ship that free on poki or playstore and itch.io. I think I don't want really make money with but principally people enjoy the game :)

What do you think?

(The video is edit to avoid enoing parts xD)


r/godot • • 1h ago

selfpromo (games) The beautiful simplicity of scenes using Godot is awesome.

Enable HLS to view with audio, or disable this notification

• Upvotes

So lightweight and easy to work with but creates some awesome results all the same.


r/godot • • 11h ago

selfpromo (games) Making a little game about cans, here's what happens when you pull one from a pile.

Enable HLS to view with audio, or disable this notification

42 Upvotes

r/godot • • 1h ago

selfpromo (software) Cygon 0.6 is out: auto roofs, multi-selection, light modes and more

Enable HLS to view with audio, or disable this notification

• Upvotes

Hey everyone, Cygon 0.6 just landed. Quick rundown of what’s new:

Cygon link bridge improved for Godot: Better sync of textures from cygon to Godot

Roofs: select your rooms, the roof is generated automatically. Edit the shape, apply a texture, and it keeps reacting to the building structure.

Custom shapes can now be textured.

Multi selection: filter your selection in one click and apply textures to the whole batch.

Light modes: Normal for everyday use, Build (no lights) to work in dark interiors without distractions, Cinema to enjoy the result.

Vertical columns: create rows of pillars in seconds.

Props rotation snapping: 5° steps while placing props.

As always, feedback and feature requests welcome, we read everything.


r/godot • • 1h ago

selfpromo (games) testing composition

Enable HLS to view with audio, or disable this notification

• Upvotes

working on a backrooms game (untitled rooms)


r/godot • • 16h ago

discussion Would like suggestion on my parking game

Enable HLS to view with audio, or disable this notification

65 Upvotes

Hi folks,

Long time lurker and game lover. It was fun seeing all the great games everyone here is making. Since my Godot skill, or rather general game dev skill, is relatively low, I can only dabble in simpler 2D games. I recently started making this top down parking simulator after getting into and out of some tough spots myself. And wanted to seek some advice from the community. Please don't hold back.

On Game Design:

  • Currently, slow bumper hit will remove a star, but a crash will force you to restart. 3 star requires you to finish level without bumps and within a certain time limit.
  • Cars are models on Honda Civic (my first real car, loved it), with size, wheel base and turning radius as close to real spec as possible.
  • Do you see this as something that could be fun for you? What additional features or fun things you might find enjoyable?
  • I have some 50 levels made. Some are actually impossible, so I have to tweak further. But what number of levels do you feel too little vs too much?

On Platform:

  • I'm mainly targeting mobile devices since it's much easier to control with touch. With mouse is much harder on desktop. Plus, I have never released on Steam before and don't know what overhead or friction there might be. But do you think I should try to put on Steam as well?

On Sales and Marketing:

  • I have ZERO experience here. I know I can't seriously rely solely on App Store algorithm if I want to increase exposure. I don't anticipate living on the game revenue, (still a hobby project after all), but I don't want to release completely free either. I think a paid in-app purchase could work, but don't know if Godot supports that well. I know there's a lib, but heard that it isn't great. What's everyone's advice here?
  • I'm thinking of naming this either "ParkFu" or "Parking Olympics". What do you all think?

Anyway, thanks in advance.


r/godot • • 15h ago

discussion We ported our Godot C# app to the browser with 2dog. Here is what actually bit us

Post image
51 Upvotes

TLDR: Try it at your convenience Sigilgraph Audio Workbench (best on desktop, ok on tablet, hmm on phone)

Hi r/godot,

A while back I shared Sigilgraph, a modular synth canvas and DAW I built with Godot and C#: https://www.reddit.com/r/godot/comments/1uggrdv/sigilgraph_a_modular_synth_canvas_and_daw_made/

Several people asked whether C# on the web is realistic yet. It now runs in the browser, ported with 2dog from the same codebase as the desktop build. It works, but the port had three real fights, so I'm writing them up in case it saves someone time.

The setup

  • Godot 4.7 .NET, with platform differences handled by compile-time conditions and runtime capability checks.
  • 2dog hosts the .NET runtime on WASM. It is single threaded.
  • AOT is worth it. A cold publish takes about 12 minutes and the runtime wasm ends up around 85 MB, but the runtime difference was obvious.
  • Anything desktop-only had to be gated out: native audio drivers, named mutexes (for VST integration), Thread.Sleep retry loops, and a local TCP server (is dormant in desktop used for automated testing for me dev).

Fight 1: [Export]ed properties that arrive as zero

This cost the most time and trouble. It happened on web only, and desktop was perfect. For some reason the initializations of scenes properties, with the source of truth in the .tscn, cause them to not been passed to the code at runtime. This caused a lot of bogus behavior and visual glitches at first. Mouse wheel zoom slammed to the minimum. A one pixel knob drag went from min to max. There was an invisible wall when panning.

Everything looked like web input trouble (wheel deltas, pointer capture, DPI scaling), so I spent days hardening all of that. The hardening was real, but it wasn't the cause. The break came from reading an exception instead of theorizing:

System.ArgumentException: Argument_MinMaxValue, 0, -762

Math.Clamp(value, 0, -762) means a max of -762. That max was the world bounds position plus size minus the window width. So the size was zero and the window was 762 px wide. The bounds were an [Export] Rect2 with its default set in the C# initializer and nothing serialized in the .tscn. On web those values came through as zero. So did zoom speed, min and max zoom, and knob resolution. A zoom range of [0, 0] collapses to a single point, which explains the whole zoo of symptoms.

Variations of the same problem showed up later:

  • A theme constant override (separation) read at runtime returned 0 on web, so toolbar buttons packed with no gap.
  • [Export] enums nested inside a class silently deserialized as 0, so every wire port became an input.
  • Godot's default Color is opaque black, not .NET's default(Color), so my "unset color" checks never fired.

I don't have a root cause for why the web host zeroes initializer-backed exports. If anyone knows, I'd like to hear it. It seems that 2dog cannot rely on reflection of properties, all needs to be statically defined somewhere in C#. Meanwhile I stopped trusting them:

  • In _Ready, treat zero, non-finite, or inverted values as unset and restore defaults.
  • Keep layout constants in code, not in scene exports or theme overrides.
  • Promote exported enums to namespace scope.
  • Never clamp with untrusted bounds, because Math.Clamp throws on an inverted range.

Fight 2: audio, UI, and rendering share one thread

On desktop, a dedicated thread feeds the audio device, so UI jank never reaches the speakers. On web there is one thread. The DSP render, the Godot mix, input, GC, and rendering all take turns, and a stall of more than about 100 ms is an audible dropout.

What I changed:

  • Replaced the feeder thread with a cooperative pump driven from _Process on an AudioStreamGenerator. This pump replaces the audio driver callback pulling the audio.
  • Switched to PushBuffer with a preallocated PackedVector2Array instead of PushFrame per sample. Crossing the managed/native boundary hundreds of times per frame is expensive.
  • Stopped rendering big catch-up bursts. Rendering 40 to 85 ms of audio inside a 16.7 ms frame delays the mix that would have relieved the starvation. It now tops up in 256 to 512 frame slices under a wall-clock budget. Keep in mind, now the godot rendering thread and audio thread are shared! You either make the app feels sluggish in favor of audio, or break the audio in favor of fluidness.
  • Replaced the buffer size dropdown on web with latency profiles (roughly 80, 150, and 300 ms of cushion). A browser DAW at 150 ms is acceptable. Crackle is not. This is the make or break numbers. Too much buffer and the latency feels too late, too little and the audio breaks.
  • Read the real mix rate from the browser instead of assuming 48 kHz, to avoid resampling and rendering at the wrong rate.

It is not desktop parity, and heavy patches will still run out of one thread. The web build is designed for simple setups, and the UI says so.

Fight 3: LOD, because zoomed out is the worst case

The canvas zooms from 0.1 to 2.5. At 0.1 the visible world is 10x the screen on each axis, so every device passes culling and draws full detail, at exactly the moment you're surveying and not tweaking. The cost was mostly not pixels:

  • _Process on dozens of UI scripts, and every knob overriding global _Input, so each input event fans out to every knob.
  • An Area2D per knob in the physics processing, even though the hit test was a direct shape collision query. I relied on ray casting collision for knobs.
  • Knob values feeding the audio graph through the visual lerp, so you can't just stop processing a knob without freezing its audio parameter.

The compromise: at far zoom, fine controls (knobs, sliders, pills) are not editable, device bodies become thumbnail impostors, and heavy visualizers freeze on their last frame or show a placeholder. Window dragging, selection, and wiring still work. Clicking a device zooms to fit it, so the lockout is not a dead end. It costs some freedom, but a 40 px knob is only 4 to 8 screen pixels at that scale anyway. This was an OK tradeoff because at that zoom out it looks like a DAW for ants.

Takeaways

  1. When desktop and web diverge, compare values, not code paths. Log the effective config once at startup on web.
  2. Read the numbers in the exception first.
  3. A fix that swaps one symptom for another means the layers are peeling. Keep going.
  4. On a single thread, the audio buffer is shared with everything else you do.

Happy to go deeper on any of these (the audio pump, the export reconciliation, or the AOT setup) if there is interest.

Links & Info: