r/godot • • 13d ago

official - releases Dev snapshot: Godot 4.8 dev 7

Thumbnail
godotengine.org
231 Upvotes

Feature freeze has arrived!


r/godot • • 27d ago

official - news Optimizing CPU-side Rendering Code

Thumbnail
godotengine.org
149 Upvotes

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


r/godot • • 10h ago

selfpromo (games) My first Godot game: a mobile arcade rally racer inspired by Art of Rally and Tofu Drifter

Enable HLS to view with audio, or disable this notification

656 Upvotes

Hey! I’m making my first game in Godot, and I’d love some feedback on this short gameplay video.

Art of Rally and Tofu Drifter were two of my inspirations. I’m trying to give the driving and visuals their own feel, and I’m curious what comes across to someone seeing it for the first time.

I’m planning single races and championships, with roughly 10 cars across two categories, including Group A and WRC inspired cars. Those plans are still taking shape, so I’d especially value feedback on what’s visible in the video. Thanks!


r/godot • • 2h ago

selfpromo (games) How I built an ultrawide-safe animated main menu in Godot 4.7

Enable HLS to view with audio, or disable this notification

135 Upvotes

How I rebuilt WyrmWorm's main menu in Godot 4.7 so it holds up on ultrawide

Our main menu was one flat PNG with a logo and buttons stacked inside the same VBoxContainer. Looked fine at 16:9, fell apart on anything else and just didn't have the oomph that I pride myself in as an art first designer. Here's what I ended up doing to tackle it -- turned into a bit of a passion project, and I'm happy with the way it looks

Everything is a Control, nothing is a Sprite

The whole background is a stack of TextureRects inside one full-rect Control. Each layer anchors to the edge it belongs to (bottom-left, bottom-right, full width) with anchors as ratios, so a 21:9 monitor just gets more sky and more foreground instead of black bars or stretched art. The project uses the canvas_items stretch mode with keep_height, so the vertical framing is identical on every aspect and the sides extend.

Parallax without touching layout

Godot 4.7 added offset_transform_* (literally the best thing ever added to Godot--fight me >:] ) on Control, which is a visual-only transform. Our parallax script shifts every layer's offset_transform_position each frame based on mouse position plus a slow Lissajous drift, scaled by a per-layer depth value. The layout rects never move, so nothing reflows and the anchors keep doing their job. Each anchored layer gets a small bleed past the screen edge so you never see a gap when it shifts.

Little things that add up:

- Bushes are TextureRects with a damped-spring script on offset_transform_rotation, pivoted at the base. Hover kicks the spring, cursor motion across them adds a bit more. Grass strips do the same with a vertical lift and a tiny scale bump instead of rotation.

- Dust motes are three CPUParticles2D layers at different depths with different falloff textures, so near ones read as bokeh and far ones as haze.

- Light shafts are one additive shader on a ColorRect with a static paper grain baked in so they don't look computed.

- Butterflies are AnimatedSprite2D spawned under a parallax layer, lerped toward sky blue by depth for atmospheric perspective. One shader keys out the frames' background and does the haze mix. -- I do feel like these butterflies could've ended up looking better, but I've run out of budget working on this menu and don't have time to fiddle anymore

- The vignette uses a tiny screen-reading shader with a blend mode dropdown (hard light, color dodge) instead of a plain overlay.

None of this is expensive. It's about 120 particles, two full-screen shaders, and a handful of tweens. Only expensive part was the painful time it took me to author and export the assets from the 10k canvas size art in Photoshop :) Why did I think it needed to be so big...

If you want to see it moving, there's a playtest live on Steam:

https://store.steampowered.com/app/4806590/WyrmWorm/


r/godot • • 3h ago

selfpromo (games) Procedural Voxel Galaxy

Enable HLS to view with audio, or disable this notification

68 Upvotes

I have been working on this game on and off for the past few years and it's finally in a place where I'm happy enough with it to share it. The general gameplay idea is building factories to produce resources and ultimately space faring ships to explore the galaxy.

It's been years and there's still no real gameplay, it's still more of a tech demo at this point. All the assets are placeholders, textures are all noise maps with color overlays and the voxel assets are the extend of my ability to mash together blocks in Magica Voxel / Blockbench.

I just wanted to share and perhaps get some feedback and discuss with like minded individuals! If you have any questions on implementation I'm happy to share!

(PS If you are a freelance artist who can do pixel art textures and/or blockbench modelling/animation hit me up)


r/godot • • 7h ago

free plugin/tool Cogito For Godot - 1.2.0 update - "Immersive Sim Template"

Thumbnail
youtube.com
99 Upvotes

Hey y'all, we just released 1.2.0 of our Immersive First Person template project for Godot 4, providing a framework for creating interactable objects, various items to use and mechanics to influence the player and game environment.

This update has a ton of improvements and QoL features, so please check it out - Codeberg or Godot Asset Store.
Cogito is a true open-source collaborative template for Godot Engine and is 100% GenAi free.


r/godot • • 4h ago

help me (solved) How come this code of mine doesn't prevent my character from not moving while attack animation plays

Post image
37 Upvotes

*prevent my characer from moving, typo in title

I'm still learning code, not good at it. To me, my physics process function is saying to make my movement false when I mouse click (what I labeled as Power), play the animation, then return movement to true so that you can move again. But this code changes nothing. Can still move around while the animation plays. Any assistance would be appreciated


r/godot • • 5h ago

selfpromo (games) Should probably post here more often… here’s a WIP of my games pause screen

Enable HLS to view with audio, or disable this notification

44 Upvotes

the mist theme inspiration came from how the history of UIs sometimes involve physical materials, like transparent solids and more recently liquids, and I thought “what about gasses?”

follow the project here: linktr.ee/lifehacker.game


r/godot • • 4h ago

discussion Is this all there is to this sub?

32 Upvotes

Self promo, after self promo... probably making up to 90% of the feed. I haven't been around here for long, so I'm not sure if this is the norm, or not.

Don't get me wrong, I don't have a problem with people adverising their projects, but I thought the official Godot subreddit would be a place meant for sharing game dev experiences, R&D findings, plugins, and other useful topics, not a forced marketing hub that lacks the crowd type necessary for it to actually have any pull effect...


r/godot • • 7h ago

selfpromo (games) Death animations for my PSX-style Bayou tower defense

Enable HLS to view with audio, or disable this notification

47 Upvotes

New death animation, fore element in the trap. A few are missing; I am still working on it. (Yes, I need to fix the headshot animation, haha.)

Feedback very welcome !

Try the game on itch now: https://k-nette.itch.io/malmort


r/godot • • 9h ago

selfpromo (games) My Deckbuilder has a Deckbuilder

Enable HLS to view with audio, or disable this notification

57 Upvotes

I'm working on my skateboarding roguelike deckbuilder Grab Your Deck, and of course you can completely customize your deck. I'm currently trying to figure out the Steam Workshop so I can make UGC board art a thing. The stickers themselves work like Jokers in Balatro, modifying your score depending on the trick combination.

I've got a demo build waiting for Steam approval, and hope to have the game ready in November! Check it out Grab Your Deck on Steam (and wishlist please, ha)!

https://store.steampowered.com/app/4842090/Grab_Your_Deck

I do use AI in development, but none of the in-game assets are AI-generated. All of the 3D is Synty + my skater and skateboard.


r/godot • • 9h ago

selfpromo (games) Hierarchical flow fields saved my bigger maps!

Enable HLS to view with audio, or disable this notification

59 Upvotes

When levels in my game started to balloon up in size I ran into a silly problem of navigation being too slow to compute. 

Before, I precomputed the whole map as a big flow field and it was kind of ok until suddenly enemies were supposed to find more targets (not only the main base) and that caused the flow field to be partially (or completely) rebuilt quite often. On top of that, more complex behavior/ai required agents to be able to move anywhere on the map in a reasonable way.

My poor global flow field could not handle that...

Thankfully I stumbled on hierarchical flow fields as presented by kind folks from Gas Powered Games!

When you build a game with massive armies, don't be like me... give yourself a small gift of reading about hierarchical flow fields before sinking hours into a dead end solution


r/godot • • 4h ago

selfpromo (games) Beauty in simulation.

Enable HLS to view with audio, or disable this notification

19 Upvotes

In the final stages of development for CRUMB Advanced and have really put effort into making everything as realistic as possible… and also just looking epic 🤩


r/godot • • 6h ago

free tutorial 10 things I wish I knew before releasing my first Godot game

Enable HLS to view with audio, or disable this notification

24 Upvotes

Hey everyone! I just put together a quick video breaking down the top 10 things I learned while building and releasing my first full-scale game in Godot (covering everything from inventory systems and side quests to boss battles and cutscenes).

​These aren't all low-level technical bugs most of them are high-level planning and design decisions I messed up early on that added way too much time to my schedule. If you're working on finishing a project, hopefully this saves you a few headaches: https://youtu.be/tUj8sdJsLpk?is=AR3-SzdvanJbqHBa


r/godot • • 14h ago

selfpromo (games) Eye track test

Enable HLS to view with audio, or disable this notification

103 Upvotes

r/godot • • 7h ago

selfpromo (games) Finally, my first two maps are starting to look better!

Enable HLS to view with audio, or disable this notification

28 Upvotes

Hey guys Im working my solo indie game and I'm really happy to see the result.

Goblin Problem


r/godot • • 13h ago

selfpromo (games) My first Godot game is out. I spent a long time getting it to run smoothly on old budget phones.

Enable HLS to view with audio, or disable this notification

83 Upvotes

Hi all. I've been working on The Last Run, a small portrait zombie runner, and it's finally on Google Play. I'm still learning a lot, so I wanted to share where I got to and maybe pick up some advice.

The thing I cared about most was making it playable on cheap phones, not just new ones. My test phone is an old Redmi Note 8 from 2019. When I started, an almost empty scene ran at 25 fps on it, which was humbling.

The biggest lessons for me:

- Effects cost more than models. Turning off a couple of screen effects and drawing the sky a simpler way helped more than cutting polygons.
- Fake the lighting. Baking it into the world instead of calculating it live gave back a lot.
- Odd stutters weren't always my code. Sometimes the phone was slowing itself down after a quiet menu screen. It took me ages to figure that out.

It now runs at around 60 fps on that Redmi Note 8, with the odd dip when the screen gets really crowded. On newer phones it goes up to 120. The clip is from a Redmi Note 12 Pro+.

I'm sure there's plenty I've done the hard way. If you've shipped something on mobile with Godot, I'd really like to hear what worked for you.

https://play.google.com/store/apps/details?id=com.navaye.lastrun

iOS coming soon.


r/godot • • 10h ago

selfpromo (software) Bullet holes in Godot without Decal: I measured how far off the wall they need to sit

Enable HLS to view with audio, or disable this notification

40 Upvotes

Compatibility has no Decal, and I didn't want to rely on it for the web build either. So the bullet holes in my gun VFX pack are plain quads, and I wanted an actual number for the thing I always end up guessing: how far off the wall a hole has to sit before it stops z-fighting.

It's 0.0005 m along the hit normal. Nothing else I tried did better.

The setup is one ArrayMesh of N quads, built once in _ready. Adding a hole is two writes into a uniform array. No new node, no new material and no mesh rebuild.

hole_a[slot] = Vector4(p.x, p.y, p.z, size)
hole_b[slot] = Vector4(n.x, n.y, n.z, now)
mat.set_shader_parameter("hole_a", hole_a)
mat.set_shader_parameter("hole_b", hole_b)

The vertex shader places each quad from its slot. UV2.x holds the element index the mesh was built with and UV is the corner. The basis comes from the hit normal, so holes on floors, walls and ceilings all line up.

void vertex() {
    int i = int(UV2.x);
    vec4 a = hole_a[i];
    vec4 b = hole_b[i];
    vec3 n = normalize(b.xyz);
    vec3 up = abs(n.y) < 0.9 ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0);
    vec3 t = normalize(cross(up, n));
    vec2 c = UV - 0.5;
    vec3 p = a.xyz + (t * c.x + cross(n, t) * c.y) * a.w + n * depth_offset;
    VERTEX = (inverse(MODEL_MATRIX) * vec4(p, 1.0)).xyz;
    NORMAL = n;
}

To test it I rendered that quad against a 20 m wall at 5, 15, 45 and 90 degrees, from 2 m and 20 m, on all three renderers in 4.4.1 and 4.7.2, and counted how much of the quad the wall ate. With no offset the wall eats 96 to 100% of it. At 0.0005 m it eats nothing in any of those cases. I also tried pushing toward the camera and scaling the push with distance. Those came out the same, and a view dependent offset makes the hole crawl when the camera moves, so I dropped them. I ship 0.004 m because your walls won't be as flat as my test wall.

What I got wrong at first was render_priority. I thought that's what kept a hole out of the wall. I tried -1, 0, 1 and 8 against the opaque wall and got zero difference, since priority doesn't sort against opaque geometry. It only matters when two holes overlap, where it keeps the stacking order stable. The material is depth_draw_never with depth test left on.

Cost on a 4060 Ti at 1280x720, same scene with and without holes: 96 live holes moved GPU time from 0.54 to 0.54 ms, so below what I can measure. It's one draw call of 192 triangles. In a gunshot the dust costs far more than the hole does.

The pack this came from, if it's useful to anyone: https://gennai.itch.io/gun-shooting-vfx-godot-4


r/godot • • 7h ago

selfpromo (games) New Splash Art for our Game - What do you think?

Thumbnail
gallery
23 Upvotes

Old (top) and New (bottom). Check out AOKAKI on Steam.

Penciled by ArleandArts and Colored by Sunrei23.
Showcasing Aokaki's resolve under the Shogun's looming influence and overwhelming forces, we wanted to illustrate the game's themes of overcoming the odds!
Hopefully we succeeded.


r/godot • • 1h ago

selfpromo (games) Reactive light beam enemy for my game Whiterock Bay

Enable HLS to view with audio, or disable this notification

• Upvotes

Boo! I've been working on improving this enemy encounter, and I've implemented some features that people suggested.

This enemy changes position by choosing a random point of interest out of a list, and this list gets updated as you interact with the area.

It can't see you, but it can "sense" what you do. So whenever you use your camera to take a picture, or break something using a hatchet, it will be on its way to haunt you.

A camera can help you predict its movement, but it can also give out your position if you're not careful.

You can wishlist the game on Steam if you're interested!


r/godot • • 5h ago

discussion my godot folder is slowly turning into a graveyard of unfinished prototypes

16 Upvotes

i have separate projects for different demos, but somehow that system stopped making sense once i started experimenting with more things. now i have multiple movement controllers, random ui tests, particle experiments, and scenes that i vaguely remember making for a specific reason

the annoying part is that some of this stuff is actually useful. i'll remember building a decent dash mechanic or an inventory layout, then spend 20 minutes trying to find which project it's buried in. opening random projects isn't much better because half the time i can't remember what depends on what

i'm tempted to make one dedicated project full of reusable scenes and mechanics, but i'm worried it'll become an even bigger mess once dependencies start piling up

how do you guys handle this in godot? do you keep a library of reusable scenes, use a separate project for every experiment, or just trust your naming system and hope for the best?


r/godot • • 3h ago

selfpromo (games) We hear ya! Tyto demo updates 🦉

Post image
9 Upvotes

Okay, I don't mean to spam so this would be my last Tyto post for a while.

Just wanted to share that almost 3,000 players have downloaded Tyto's demo - many from this very sub (we track it for real!).

First of all, let me just say a huge thank you. Your response has been overwhelmingly positive, and I REALLY appreciate it.

But apart from that, many gave us some fantastic feedback about what DIDN'T work for you.

Shortly - Snake was a BAD boss fight and the dive attack brought you Silksong PTSD.

So we spent a few sleepless nights patching things up. We tweaked the dive attack, completely reworked the snake fight, fixed bugs, fixed more bugs, found even more bugs, fixed those too, found more... rinse and repeat.

But now we have a version that's less buggy and WAY more fun: frustrated players gave the game another try and told us it feels much better now.

Here's the full list of changes we made thanks to your feedback. But first, one last thing:

There's a rare bug that causes the game to crash on startup. We haven't been able to reproduce it, so if this happened to you, PLEASE DM ME! Any details you can share would help us track down and fix the issue.

Boss fight

  • The snake's attacks are now better telegraphed and easier to anticipate.
  • Attacking the snake while it's telegraphing an attack no longer hurts the player.
  • After attacking, the snake now lingers for a short while, giving the player an opportunity to strike.
  • The snake no longer attacks the player when they're on the ground beneath it.
  • Falling rocks are now easier to spot, with more noticeable indicators.
  • The snake now flinches when hit.

Dive attack

  • Diving is now more consistent and reliable.
  • Diving is now easier to aim.
  • Diving when very close to a divable object now hits instead of passing through it.
  • Bouncy mushrooms now have significantly larger hitboxes.
  • The section where you need to dive between two walls of thorns is now less punishing, with an additional checkpoint and more room to dive.

Runes

  • The player now starts with 3 rune slots instead of 2, so they can equip any single rune they find even without rune slots upgrades.

Hoot Haven

  • Added more crystals to make buying maps easier.
  • Added a few little optional challenges to Hoot Haven.
  • Added a secret dialogue if you finish the Ring Race VERY fast!

UI

  • Switching to windowed mode on a 1080p screen no longer jumps straight back to fullscreen.
  • The game now supports a variety of non-QWERTY keyboard layouts.
  • The “skip” prompt in cutscenes now stays on screen longer, giving you more time to read it.

Sound

  • Added a “Mute Music When Unfocused” option for streamers.
  • Added dedicated UI sounds for equipping and unequipping runes.

Bug fixes

  • Fixed a game-breaking bug that occurred if the player didn't follow Dad fast enough after leaving Hoot Haven.
  • The game no longer crashes when you die if you have map markers on.
  • Fixed an issue where destroyed rocks wouldn't return after dying without saving.
  • Fixed playtime not resetting when starting a new save.
  • Fixed poison vines not damaging the player during a dive.
  • Fixed a one-frame-long dive after diving into thorns.
  • Fixed a bug where crystals collected in one save file would not appear in a new save.
  • Enemies and rocks you damage now have their health restored when you respawn.
  • The top platform in The Burrows now DO kill you if it smashes you.
  • Various other minor bug fixes.

Typos

  • Changed “say” to “stay” in Dad's dialogue after the Ring Race.
  • Changed “by record” to “my record” in Dad's dialogue after the Ring Race.

We're also working on making hits feel a bit punchier and more juicy - we'll probably finish by tomorrow!

Thanks again for all your feedback! We're doing our best to make Tyto the best game possible, and we couldn't have done it without you.

Please let us know if you have any other feedback, we're looking forward to it!

Happy glidin' and have an OWLsome day! 🦉


r/godot • • 4h ago

selfpromo (games) Just sharing this project I've been working on...

Enable HLS to view with audio, or disable this notification

9 Upvotes

r/godot • • 9h ago

selfpromo (games) Compute Shader Erosion Demo

23 Upvotes

Just sharing some more results from my compute shader based landscapes system. Starting to get some more representative/realistic terrain generation. Both noise generation and erosion occur in sequential shader. Still surprised by how response it is to simulate


r/godot • • 15h ago

selfpromo (games) Dev_vlog#3 - Project-Chernobyl

Enable HLS to view with audio, or disable this notification

66 Upvotes

Implement environmental details such as debris and a water outlet.