Project ideas from Hacker News discussions.

Using any C++ library in Godot

📝 Discussion Summary (Click to expand)

1. GDScript performance limits push developers to offload heavy work to C++/Rust via GDExtension
- “Was playing arround recently building an RTS with godot until i just hit the ceilling of what i could handle with gdscript performance wise. Than started to move alot of heavy logic to c++ simulation : tedious indeed but the results speak for themself. Basically allows me to use godot for things like menus dialogues and similar stuff while running the true heavy work in a c++ simulation.” – voodooEntity
- “gdscript is incredibly slow, worst than something like lua, maybe only good for handling the UI events.” – momocowcow
- “If you know rust, the Godot rust bindings for GDExtension are also really good and let you use any Rust library in Godot (including tokio and async rust if you really want).” – valorzard

2. Linux distribution and ABI compatibility challenges (versioning scripts, static linking)
- “Just don't forget the versioning script needed on at least Linux. It's either that or build with the same older distro Godot uses, so you have a matching libstdc++ version.” – fwsgonzo
- “Static linking libstdc++ with -fvisibility=hidden saved me on Linux, though it bit me the day I needed exceptions to cross the boundary.” – hnacobsxph
- “Basically, game binaries should be '-static-libgcc -static-libstdc++ --enable-new-dtags' everywhere, statically load ONLY common glibc libs (and with 'old' symbol versions…) and dynamically load everything else.” – sylware

3. Expanding ecosystem of language bindings (Rust, C#) and trade‑offs between GDExtension, engine modules, and linking strategies
- “Came here to mention this. As an example there's godot-iroh which uses iroh for peer to peer networking.” – aquariusDue
- “For C# there’s basically nothing in engine, so you’d use Rider or Superluminal.” – Fraterkes
- “.NET integration has the issue it doesn't work in all target platforms, that is why Capcom and Unity have their own compilers to native code.” – pjmlp


🚀 Project Ideas

Generating project ideas…

Godot Linux Extension Builder

Summary

  • Automates generation of linker versioning scripts and static linking flags for Linux GDExtensions.
  • Produces portable .so files that work across distributions without manual libstdc++ tweaking.

Details

Key Value
Target Audience Godot developers shipping GDExtensions on Linux (indie, studios)
Core Feature CLI that scans source, creates appropriate versioning script, invokes CMake with -static-libgcc -static-libstdc++ --enable-new-dtags, optionally builds inside manylinux Docker
Tech Stack Python (or Rust), CMake, Docker, GitHub Actions
Difficulty Medium
Monetization Hobby

Notes

  • Addresses the pain point highlighted by fwsgonzo: "Just don't forget the versioning script needed on at least Linux…" and czoido’s update about linking with newer stdlibc++.
  • Eliminates the tedious manual CMake/python/linker script workflow mentioned by jokoon, lowering barrier to entry for Linux distribution.

Godot ZeroCopy MeshBridge

Summary

  • Provides a zero‑copy data bridge between ECS/Flecs (or Rust) and Godot MultiMesh by sharing a memory buffer that matches Godot’s expected layout.
  • Removes the costly copy step when transferring large numbers of entity positions/velocities.

Details

Key Value
Target Audience Godot developers using heavy simulations in C++/Rust or ECS libraries who need high‑performance mesh updates
Core Feature Library that allocates a buffer, exposes a Godot‑compatible PoolVector3Array‑like view, handles synchronization and optional double‑buffering for thread‑safe updates
Tech Stack C++ GDExtension (Godot 4), optional Rust bindings via godot-rust, crossbeam or std::atomic for synchronization
Difficulty High
Monetization Hobby

Notes

  • Directly responds to zerr’s question about zero‑copy impossibility and czoido’s comment that the copy comes from converting data from flecs into MultiMesh layout.
  • Would enable the performance gains described by voodooEntity moving heavy logic to C++ while keeping Godot for UI, without the per‑frame copy overhead.

Godot PerfInsight Plugin

Summary

  • Editor plugin that instruments GDscript and C# code, collects low‑overhead timing data, and displays flame‑graphs/hotspot views inside the Godot editor.
  • Gives developers actionable profiling insight before resorting to C++ rewrites.

Details

Key Value
Target Audience Godot developers using GDscript or C# who hit performance ceilings (e.g., momocowcow’s comment on GDscript slowness)
Core Feature Automatic function‑level profiling via compile‑time annotations or runtime hooks, minimal overhead, exportable to Speedscope or built‑in viewer
Tech Stack GDScript/C# plugin API, optional GDExtension in Rust/C++ for low‑overhead timer, Godot 4.x
Difficulty Medium
Monetization Revenue-ready: Subscription $5/mo per seat

Notes

  • Matches the desire expressed by MeteorMarc and Fraterkes for profiling support beyond Rider/Superluminal, addressing the lack of built‑in tools for GDscript/C#.
  • Would spark discussion on HN about improving Godot’s performance workflow and could become a go‑to tool for studios optimizing scripts before moving to C++.

Read Later