RetroFed Forum
Your home away from modern life.
After 1 year in Godot 4, my round-based horde FPS finally has a Steam page without MultiMesh
Post Reply
AuthorMessage
Lemmit.Online bot Bot bot@lemmit.online
Joined: 2023-06-18
Quote

This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Quiet-Investment2992 on 2026-08-13 12:33:18+00:00.


https://reddit.com/link/1vn9fip/video/3sgohtwu05jh1/player

WaveBorn is a first-person horde survival roguelite: round-based waves, mystery box, a Pack-a-Punch-style weapon forge, perk drinks, and 300+ weapon modifiers that stack across a run. Solo dev, Godot 4, Forward+ and Jolt.

The part people always ask about is the enemy system, so here's the short version:

  • Data-oriented, not node-per-enemy. Positions, health and state live in parallel arrays (struct-of-arrays), not in separates CharacterBody3D nodes.
  • Spatial hash grid for neighbour queries and separation instead of physics queries, this was the single biggest win.
  • Time-sliced updates: only a slice of the horde runs full logic each frame, the rest coasts on cheaper integration.
  • I am not using MultiMesh for the enemies themselves, which surprises people. Individual meshes with an outline shader survived profiling better than I expected for this art style, and it kept per-enemy VFX and ragdolls sane.

Happy to go deeper on any of it in the comments, the spatial hash rewrite in particular took three attempts before it was actually faster than the naive version.

Steam page: https://store.steampowered.com/app/5028190/WaveBorn/

1   Original
Post Reply
Back to top