Live data from Hacker News

Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

github.com

11–20 of 111 posts

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#11
post #8

About garbage collection: Are there a lot of Unity/Godot devs unaware that their engines are using GC? I would assume they'd have accepted the cost of GC already. Unreal devs I can understand having an issue with it though.

Can you explain? AFAIK Godot uses C++ under the hood which does not have garbage collection. Other languages such as C# and GDScript use bindings.

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#12
post #8

About garbage collection: Are there a lot of Unity/Godot devs unaware that their engines are using GC? I would assume they'd have accepted the cost of GC already. Unreal devs I can understand having an issue with it though.

Issue isn't about game devs it's about non-game devs backseat programming.

If you spend a week in these engines you're well aware of the garbage collector.

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#13
After 10 minutes of digging I managed to find one single screenshot of an actual game built with it. Isn't that the first thing a developer wants to see?

https://unity.com/ leads with demos.

https://kaijuengine.org/ leads with a block of text claiming it renders cubes faster than Unity.

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#14
post #8

About garbage collection: Are there a lot of Unity/Godot devs unaware that their engines are using GC? I would assume they'd have accepted the cost of GC already. Unreal devs I can understand having an issue with it though.

Can you explain? AFAIK Godot uses C++ under the hood which does not have garbage collection. Other languages such as C# and GDScript use bindings.

Most people using Godot will be using GDScript or C# to make their games.

Funnily enough whilst trying to Google gdscript and godot, I found this post I wrote in 2018 (subcomments mention gdscript and gc).

https://news.ycombinator.com/item?id=16673751

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#15
Seems like a cool project.

I don't understand why they're calling out the FPS of an empty scene as a useful number compared to Unity though. Ignoring that this engine will have a fraction of the features of Unity (the likely reason for the FPS number in the first place), it's just a useless benchmark because it's an empty scene. `while (true) {}` will get you the same thing.

I'd wish they'd highlight how the engine helps you make a game rather than arbitrary performance numbers on microbenchmarks that don't generalize to a real game project. You can absolutely be faster than Unity, but "9 times faster than Unity out of the box" is not a number people should take seriously without the context of where the number comes from.

I wish them well though. I'm always interested to see more work in implementing engines in GC languages. I'm personally quite interested to see what can be done in modern GC languages like Go or (modern) C# which provide lots of tools to limit GC pressure. Being able to write C-like code where needed in an otherwise managed runtime is a really powerful tool that can provide a best-of-both-worlds environment.

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#17
post #8

About garbage collection: Are there a lot of Unity/Godot devs unaware that their engines are using GC? I would assume they'd have accepted the cost of GC already. Unreal devs I can understand having an issue with it though.

GDScript in Godot doesn't use GC, it uses reference counting and doesn't "stop the world".

Other languages that bind into the engine do this too, (C++, SwiftGodot, Rust-Godot)

C# obviously does, Miguel de Icaza actually started SwiftGodot because he (ironically) ended up hating GC pauses after promoting C# for so long

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#18
post #8

About garbage collection: Are there a lot of Unity/Godot devs unaware that their engines are using GC? I would assume they'd have accepted the cost of GC already. Unreal devs I can understand having an issue with it though.

Unreal devs have Unreal C++ dialect with GC, Blueprints and soon Verve to worry about.

The times of pure manual memory management game engines, across all layers of what requires to draw a frame are long gone.

Naturally someone is going to point out some game engine using compiled C dynamic libraries for scripting, those are the exception.

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#19
post #17
post #8

About garbage collection: Are there a lot of Unity/Godot devs unaware that their engines are using GC? I would assume they'd have accepted the cost of GC already. Unreal devs I can understand having an issue with it though.

GDScript in Godot doesn't use GC, it uses reference counting and doesn't "stop the world". Other languages that bind into the engine do this too, (C++, SwiftGodot, Rust-Godot) C# obviously does, Miguel de Icaza actually started SwiftGodot because he (ironically) ended up hating GC pauses after promoting C# for so long

Reference counting is a GC algorithm from CS point of view, as looking into any worthwhile reference will show.

Re: Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor

#20
post #19
post #17

Earlier quoted context omitted.

GDScript in Godot doesn't use GC, it uses reference counting and doesn't "stop the world". Other languages that bind into the engine do this too, (C++, SwiftGodot, Rust-Godot) C# obviously does, Miguel de Icaza actually started SwiftGodot because he (ironically) ended up hating GC pauses after promoting C# for so long

Reference counting is a GC algorithm from CS point of view, as looking into any worthwhile reference will show.

It's not what people mean when they say GC though, especially in reference to games, where you care about your peak frame time more than about your average frame time.
Post reply on HN