Can Godot Handle 10,000 Bullets?!

preview_player
Показать описание

---
📚 THE LINKS

Guides to get started measuring and optimizing code performance:

---
👥 CREDITS

---
💌 JOIN US

---
📝 CC-BY LICENSE

Рекомендации по теме
Комментарии
Автор


He's been very kind to explain what made the most difference performance-wise and what were the bottlenecks. The main remaining one in Godot 3 seems to be the physics engine that isn't fully multi-threaded. Camille, the physics engine maintainer, has been working on that for Godot 4 which should bring more reliable, much more intuitive, and faster physics.

Gdquest
Автор

Best thing about Godot is open instantly.

ambitiousgamestudio
Автор

It's worth mentioning that one shouldn't just go convert existing code with this method. It doesn't account to a few things: The objects are still physically present. If you have any logic that uses the tree, like getting a node's children, or collision checks, those will still be detected. Not being visible and having disabled process loop still doesn't mean the game just disregards them. Unlike visible, set_process also doesn't carry to children. I had some unexpected behavior because other objects could still interact with them. So there's a lesson that if you're having a different "object destruction" behavior, it's also up to you to ensure they are actually gone.

Amonimus
Автор

I feel like I'm missing something here - The steps to improve performance make sense completely but at the end you are mentioning to just hide the bullets and just disable processing. Isn't that a memory leak or is this combined with the pooling so that the existing bullet is reused and made visible when needed (resetting position and motion vector)?

PokeParadox
Автор

Oh my god, I've assumed this whole time that directly accessing the physics server was some kind of inefficient hack only to be used when the collision nodes wouldn't suffice, even though I find it more convenient half the time anyway. This video might... inform a few changes in my code, to say the least.

andrew_cunningham
Автор

OMG, YES!
For me, main issue with using physics servers was to determine how exactly I should handle the collisions. And now there are you and Samuele. Thanks a lot! You brought back the joy and desire to experiment with Godot again! Now it's only left to find some free time ^^

DeusAlgor
Автор

I was trying to make a rts game with godot and found out that the default setting with rigidbody2D is costly. The fps will significantly drop as more than 150 rigidbodies move and keep detecting collisions. Now I know godot has low level servers to deal with it. Thank you!

corvus
Автор

i was planning to make a serious game project in the mono version just for the performance of c#
but now i'm convinced that GDScript is more than enough

SakarZ
Автор

Loving these daily videos! And really excited to start your course! :)

indieology
Автор

0:40 why use circular collision when point is more than enough

adsick_ua
Автор

2:05 I wonder why removing node(s) when the condition met will be less performant than just make node(s) not visible and stop processing?

Ngong
Автор

2:56 what is this beautiful star fox clone?

josephbrandenburg
Автор

What about in 3D? geometry is more complex and motion and physics is too.

bceng
Автор

Does this only apply to static bullet? What about homing missile, or bullet that is able to chase the target?

alfiansdump
Автор

This is very impressive. I didn't expect this can be done.

greg
Автор

Could you do a more advanced physics server tutorial? I dont know how to use it myself.

ariton
Автор

Holy pupu there batman you just saved me a lifetimes worth of frames with that little trick!

jamesodonnell
Автор

Keeping the nodes within the scene sounds like a bad idea, I imagine this would affect memory over time.

ZeoWorks
Автор

What's the game called at 2:58? It looks like star fox, very cool!

Ainigma
Автор

8k bullets at the same time at 60fps using GD Script? That's impressive ngl.

blackcitadel