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.
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.
Those discussions are a bit misleading. Original Doom updates its state only 35 times a second, and ports that need to remain compatible must follow that (though interpolation and prediction tricks are possible for visual smoothing of the movement). Rendering engine is also completely orthogonal to polygon-based 3D accelerators, so all their power is unused (apart from, perhaps, image buffers in fast memory and hardware compositing operations). Performance on giant maps therefore depends on CPU speed. The point of this project is making the accelerator do its job with a new rendering process.
Though I wonder how sprites, which are a different problem orthogonal to polygonal rendering, are handled. So, cough cough, Doxylamine Moon benchmarks?
Even just updating the graphs would be helpful. There appear to have been several releases since 0.9.2.0, including a bump from .NET 7 to .NET 8 (and a bump to .NET 9 in dev).
The more recent .NET versions by themselves are likely to have some impact on the performance, let alone any changes in Helion code between versions.
Microsoft has really been putting a lot of focus on improving it with each release. I love reading through the blog articles for each major release, that outline all the performance improvements that were done: https://devblogs.microsoft.com/dotnet/performance-improvemen...
A warning for those not in the know, the performance improvement posts famously give mobile browsers trouble because they are so massive. All because the extent of the improvements is so great (along with the amount of detail the posts go into about the improvements).
If the authors wanted to protect engine development while allowing indies to sell games made on it, they would have picked LGPL or a more permissive license.
You are technically correct, and I believe the GPL doesn't cover the assets for the game (levels, art, audio, etc.), but I suspect there aren't many GPL licensed games out there for sale that have sold enough copies to make developing them worthwhile financially.
I'd love to be wrong, so if you have a few examples, I'm all ears.
Probably not much in the AA/AAA space, but plenty of indies. The Doom engine (and GZDoom, which is the most common Doom engine derivative) is GPL and there have been multiple commercially successful games released using it. I know at least Hedon[0] and Hands of Necromancy[1] sold enough copies to warrant a sequel.
GPL vs LGPL definitely isn't a blocker for a commercial game, in any case.
Remember the GPL only applies to the code you can make a great game with beautiful artwork and distribute the source code to anyone who wants it. Nobody playing the game will have much fun without the artwork.
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.
It looks like these types were code-gen from something else.
https://github.com/Helion-Engine/Helion/commit/e6affd9abff14...
Further down in the commit there's a Generators project that has the VectorGenerator class.
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.
Oh man, House of Leaves is amazing. Danielewski has my respect.
It's a Doom engine, and they missed the opportunity to call it "Hellion"??
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.
Those discussions are a bit misleading. Original Doom updates its state only 35 times a second, and ports that need to remain compatible must follow that (though interpolation and prediction tricks are possible for visual smoothing of the movement). Rendering engine is also completely orthogonal to polygon-based 3D accelerators, so all their power is unused (apart from, perhaps, image buffers in fast memory and hardware compositing operations). Performance on giant maps therefore depends on CPU speed. The point of this project is making the accelerator do its job with a new rendering process.
Though I wonder how sprites, which are a different problem orthogonal to polygonal rendering, are handled. So, cough cough, Doxylamine Moon benchmarks?
Even just updating the graphs would be helpful. There appear to have been several releases since 0.9.2.0, including a bump from .NET 7 to .NET 8 (and a bump to .NET 9 in dev).
The more recent .NET versions by themselves are likely to have some impact on the performance, let alone any changes in Helion code between versions.
Might make sense to use a logarithmic scale for the graphs too, it's hard to tell what speed the other ones are since they're compressed so far down.
Impressive C# performance!
Microsoft has really been putting a lot of focus on improving it with each release. I love reading through the blog articles for each major release, that outline all the performance improvements that were done: https://devblogs.microsoft.com/dotnet/performance-improvemen...
A warning for those not in the know, the performance improvement posts famously give mobile browsers trouble because they are so massive. All because the extent of the improvements is so great (along with the amount of detail the posts go into about the improvements).
Finally I can play Doom on my 2khz monitor.
2 kHz monitor? Is that a joke, or a typo, or real?
A joke.
Although actually now that you ask, monitor speeds are getting pretty crazy, so I guess it isn’t implausible enough!
Well TCL unveiled the first khz monitor so my guess is they'll get there soon
How does licensing work, here... could you use this to develop an indie game and sell it?
Yes. Only requirement is that your game code is Free Software (GPLv3).
Not sure what the question is. The License is clearly stated.
No, it’s GPL3, so your game must be open-source.
If the authors wanted to protect engine development while allowing indies to sell games made on it, they would have picked LGPL or a more permissive license.
since when do people not sell GPL games?
You are technically correct, and I believe the GPL doesn't cover the assets for the game (levels, art, audio, etc.), but I suspect there aren't many GPL licensed games out there for sale that have sold enough copies to make developing them worthwhile financially.
I'd love to be wrong, so if you have a few examples, I'm all ears.
Probably not much in the AA/AAA space, but plenty of indies. The Doom engine (and GZDoom, which is the most common Doom engine derivative) is GPL and there have been multiple commercially successful games released using it. I know at least Hedon[0] and Hands of Necromancy[1] sold enough copies to warrant a sequel.
GPL vs LGPL definitely isn't a blocker for a commercial game, in any case.
[0] https://github.com/madame-rachelle/hgzdoom https://store.steampowered.com/app/1072150/Hedon_Bloodrite/
[1] https://store.steampowered.com/app/1898610/Hands_of_Necroman...
Remember the GPL only applies to the code you can make a great game with beautiful artwork and distribute the source code to anyone who wants it. Nobody playing the game will have much fun without the artwork.
That's literally the first sentence I wrote in my comment. ;)
i will give a try.