Helion: A modern fast paced Doom FPS engine in C#

(github.com)

Comments

bob1029 12 June 2025
I am curious if the author considered use of the built-in numerics library over hand-rolling types like Vector4F.

All of the methods defined here:

https://github.com/Helion-Engine/Helion/blob/20300d89ee4091c...

Are available in the kitchen sink:

https://learn.microsoft.com/en-us/dotnet/api/system.numerics...

Same idea applies to methods like GetProjection, which could be replaced with methods like:

https://learn.microsoft.com/en-us/dotnet/api/system.numerics...

Advantages of using this library are that it is uses intrinsics (SIMD) to accelerate operations. There is a lot of Microsoft money & time that has been invested into these code piles.

energywut 12 June 2025
I wonder if it can play through MyHouse.wad. Which, if you haven't seen before, is an incredible art piece.

https://www.youtube.com/watch?v=5wAo54DHDY0

If you've read House of Leaves, do yourself a favor and check it out.

ngrilly 23 hours ago
Finally, a good example of a modern C# code base that is open source, and that doesn't look like the equivalent of J2EE in C#.
Cieric 12 June 2025
This looks interesting and I'm going to take a look later. Just a minor nitpick up front though, I think the performance graph should be a bar graph instead of a line graph. Mainly since the in-between states don't have much meaning as you can't be half way between 2 different gpus.
_0ffh 12 June 2025
It's a Doom engine, and they missed the opportunity to call it "Hellion"??
dimitropoulos 17 hours ago
the Doom in TypeScript types project wouldn't have been possible without Nick and Helion - I owe Nick a huge thanks! He helped with some of the more obscure parts of the engine and also helped make a super small WAD that is what the game eventually ran in.

Legend.

yodon 12 June 2025
Impressive C# performance!
bee_rider 12 June 2025
Finally I can play Doom on my 2khz monitor.
reverseblade2 12 hours ago
I have seen some use case for MemoryStream, why not use RecyclableMemorysStream instead?
mawadev 23 hours ago
The Benchmarks look a bit sketchy... is the frame uncapped for all the other engines and has vsync been disabled? It's a very odd graph to look at, but great performance regardless
thomasqbrady 12 June 2025
How does licensing work, here... could you use this to develop an indie game and sell it?
patrick4urcloud 12 June 2025
i will give a try.
neuroelectron 23 hours ago
FPSes aught to update the screen every millisecond. Why isn't this more common?