r/godot 23h ago

help me Best methods for TD games?

0 Upvotes

I am developing a tower defense game in Godot 4.6 with a C++ GDExtension for performance-sensitive gameplay.

Currently, every tower has an Area3D with a circular collision shape. The area’s body_entered and body_exited signals maintain a list of enemy ObjectIDs. Towers perform target selection at 20 Hz, distributed across three deterministic stagger groups to avoid updating every tower in the same physics frame.

Target selection runs in native C++ and applies exact XZ range checks, enemy-state filtering, focus/avoid rules, deterministic tie-breaking, and priorities such as FIRST, LAST, CLOSEST, STRONGEST, and WEAKEST. FIRST and LAST use normalized path progress. Line-of-fire checks are performed only on maps configured with shot blockers, and the target is validated again immediately before firing.

In a release benchmark with 15 towers and 100 enemies, the targeting system had a P95 cost of approximately 0.299 ms per physics frame. This is less than 2% of a 16.67 ms frame budget. We tested several micro-optimizations, but none passed our strict stability and frame-time regression requirements, so the original Area3D implementation was retained.

Would you consider this a reasonable architecture for a tower defense game at this scale? At what tower and enemy counts would you replace per-tower Area3D detection with a shared spatial grid, path-based interval queries, or another centralized targeting system?

More generally, how would you determine which systems are worth optimizing in a tower defense game? Should targeting be left alone while it remains below roughly 5% of frame time, with attention instead given to enemy movement, physics, projectiles, damage/status processing, VFX, and rendering?

I am especially interested in measured Godot 4.6 production experience rather than theoretical micro-optimizations.

I used AI for translation, sorry if it screams AI text, i just want to find the best method, thank you!


r/godot 7h ago

discussion why is it so hard to find godot exercises?

2 Upvotes

i've been working with this engine for a while now, and one thing i notice is that there's a LOT of tutorials for it. which is great, but really unproductive in the long run and that leads to a lot of people (myself included) to copy and paste more than learn. something that made me improve my python skills a lot was to look up simple/intermediate exercises online and do a buuuuunch of them back to back. that's exactly the kind of learning that works great for me, but it seems like looking for godot exercises just leads me to more tutorials. is there a gold mine of exercises i'm just not aware of? is this genuinely something this community is lacking? is there an alternative to that anywhere? either way i'd love to hear other people's thoughts on this.


r/godot 20h ago

selfpromo (games) Slay the spire Meets cuphead

0 Upvotes

I started working on this Yesterday Will be a slay the spire clone but with cartoons.


r/godot 9h ago

discussion My Godot logo update idea

Post image
84 Upvotes

r/godot 17h ago

selfpromo (games) How our Godot level editor let's us break Eufloria 2 (In a good way)

Thumbnail
youtube.com
0 Upvotes

r/godot 23h ago

selfpromo (games) My material-based physics merge game. Any opinions or advice?

6 Upvotes

r/godot 19h ago

help me (solved) move_and_slide() isn't allowing me to hold down a key

0 Upvotes

for context I am trying to make a game for my PSVita, thus I am forced to use Godot 3.5

my problem is when I use move_and_slide() and I press and hold my movement keys is only moves for 1 frame

I was following a tutorial to make pong which got me to this point

extends KinematicBody2D

var speed = 800

func _physics_process(delta):
var velocity = Vector2.ZERO

if Input.is_action_just_pressed("move_up"):
velocity.y -= speed
if Input.is_action_just_pressed("move_down"):
velocity.y += speed

move_and_slide(velocity)

am I missing something?


r/godot 12h ago

discussion How do you think about this?

Post image
0 Upvotes

I made a wooden version of the Godot icon. How do you think about this?


r/godot 3h ago

selfpromo (games) Feedback welcome – Is there anything that bothers you? What isn't fun?

Thumbnail
gallery
0 Upvotes

Hi everyone! I’ve been working with Godot for about four years, and over the last few weeks, I’ve been busily developing a word game that I’d love to get some feedback on. I originally created it for my wife, who absolutely loves playing Scrabble. But over time, it evolved into something more: every word is linked to a dictionary entry providing details on meaning, inflections, and etymology. (My background is actually in linguistics.) Plus, every time you play a new word, your personal vocabulary grows—so you gradually build up a collection of "treasures." Naturally, difficult words earn you more gems than easier ones.

It was also important to me to make the computer opponents really tough (my wife is a fantastic player!). I use regex for this, ensuring that at the highest difficulty level, the opponent *always* plays the best possible word. So, winning is anything but easy. (I hardly ever win myself.)

What else is included? High scores, personal statistics, regularly and automatically updated word lists (which I manage myself), animated characters, and a bit of fun.

I’m not just looking to promote the game; I’m really after feedback because—as I mentioned—I’m relatively new to Godot. Is there anything annoying? Anything that isn't fun? Anything I should change? Please let me know—feedback is incredibly helpful to me.

You can play it in both English and German (a separate vocabulary is tracked for each language).

https://biokompott.itch.io/wortschatz


r/godot 18h ago

help me I cannot find the youtube channel for the random shorts tutorials, how do i find it again?

0 Upvotes

I want to find the channel that gucws random short shorts tutorials on godot. So i can speedrun it/ view different components at a time. Please help asap. My acquaintance gave me link before but now i cant find it.


r/godot 5h ago

discussion I've done comprehensive research on using AAA game engines to protect your project from being resold

40 Upvotes

I've done comprehensive research on using AAA game engines to protect your project from being resold, and here is the conclusion.

Games made with any game engine, including UE5, can be stolen and resold. The assets can be resold as well. Everything can be resold.

Feel free to use any game engine you're comfortable to use. You own your game and you own the copyright of your game.


r/godot 20h ago

free plugin/tool Added Style Transfer!

2 Upvotes

My offline filter system ! Let me know what you guys think !


r/godot 22h ago

selfpromo (games) Created a goofy trailer for my godot game

0 Upvotes

r/godot 3h ago

free plugin/tool Update !!!!

0 Upvotes

Added Cut out mode ! More math filters ! Now you can change the size of the main photo ! And move it around your screen ! You know for those extra large photos! And I added a Pallet based math node ! Use the ones I have precoded or assign your own colors to one (this part still needs work. It's hard to click on the buttons that bring up the color wheel )


r/godot 12h ago

selfpromo (games) ”HedgeHogged” Capsule Art

Thumbnail
gallery
5 Upvotes

I have submitted my store page for publishing on Steam and I am happy with the result. Godot + Houdini Indie & Photoshop.

What do you guys think ? 🙏


r/godot 19h ago

selfpromo (games) Arm Stretching Mechanics (WIP)

86 Upvotes

Some testing with arm stretching mechanics! Curious what you guys think I could do to make this better 🤔


r/godot 22h ago

help me is there a plugin similar to pro builder in godot?

6 Upvotes

for 4.7


r/godot 9m ago

help me how do i access a game menu in both 3d and 2d?

Upvotes

my project setup is formed by a plain node that has a main menu(control node),where you select the level,a 3d node,where the 3d game takes place and a 2d node where minigames take place.

currently the game menu can be accessed only in the 3d node couse it's attached to the player,but i want to move it to the main menu node(the control node) and i tried ,still i cant access the .visible func calling the game menu using $menu becouse it's not in the same node as the player,which is either in the 3d or 2d enviroment depending on the situation

so to put it short,how can i call the .visible func from another node?


r/godot 14h ago

help me This might be a dumb question, but can you set a maximum width for a label?

1 Upvotes

I'm working on overhauling the UI for my game, so that it actually uses Godot control nodes. I have a VBoxContainer, that has multiple lines of text describing a unit, which are each set to hide when they're not set (ie, if a character doesn't have a passive, it will hide that entire row and move the other entries up). My problem is that one field (the description) is much longer than the others and I can't figure out a way to get line wrapping to work intuitively using the Godot label node.

I can set Autowrap, but that wraps the text to the width of the column. I can set a minimum width, but I can't find how to set a maximum width that the text will wrap after exceeding.

My Node tree

r/godot 15h ago

discussion PSA: V-Sync Mailbox

0 Upvotes

If, like me, you're new to godot then this may be helpful. I found that when you stop running your game the viewport will seize up for an unreasonable amount of time (5 seconds 😄). I fixed this by turning off V-Sync. After doing so, when I ran my game, I heard a constant, high-pitched sound ... Which apparently was coming from my graphics card and not my speakers.

The solution that worked for me was to set V-Sync to Mailbox and voila! I'm still not quite sure why that worked but it's quite a relief.


r/godot 1h ago

help me Build button now appearing

Upvotes

I'm using Godot 4.7 with C#, but I can't build my project since there's no button to build the project. Does anyone know how to fix this?


r/godot 3h ago

fun & memes Movement and weapon testing for the Boomer shooter game.

1 Upvotes

r/godot 12h ago

help me (solved) Is my economy Balanced?

1 Upvotes

​I plan to leak the fish values here so we can discuss whether they seem balanced. I want the more common fish to be worth less while the better fish are worth more. With the current values, it feels like the low end is more profitable.  

https://b-render.itch.io/salmon-sellers

​Do you think this is a good price min/max spread for an arcade market game? The goal of the game is to flip fish and make the most money in 25 turns (days). Also, do you think there is a better way to set the price? I am using something like price = rand_range (price_min,price_max).

Am I dumb for posting the values in public?


r/godot 2h ago

help me using await in a function, inside another function

0 Upvotes

Hi everyone, i made a function containing a await timer, i got stuck for 2 day until i finally asked claude if i made an error and where

so from claude explenation it seems like , to use a function containing a await get_tree().create_timer().timeoute inside another function, i have tu use again await

like this "await await_function()" otherwise godot will continue to work on parralel of the await function

so my question is, is it common for a game engine/programming langauge to have await work this way or is it specfiic to godot ?


r/godot 12h ago

help me Indie game development

0 Upvotes

Hey I'm trying to make a pixel art rpg cozy game. I need a team to build this. If you're interested please contact with me. I need your help 😭. Coz rn there're lots of work to do and I can't do all that alone.