Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
hobomaster22

Helion - C# (0.9.2.9 4/24 - Goodbye BSP tree rendering)

Recommended Posts

Yes,  if the sprite is changed and the NOSECTOR flag unset the spot will be rendered, there is nothing about it technically that makes it special.

Let's not forget that TNT1 is a Boom addition, the original had some other sprite assigned to it, here's the state it maps to: {SPR_TROO,0,-1,NULL,S_NULL,0,0},  // S_NULL

 

 

Share this post


Link to post

So that's why the teleporter experiment resulted in a demonic invasion... every teleporter is actually powered by an invisible imp!

Share this post


Link to post

I get a silent crash trying to launch latest version of Helion 0.9.2.2 (FWIW 0.9.2.0 worked just fine)

 

Event Viewer shows that Helion.exe has caused an 0xe0434352 exception in KERNELBASE.DLL

 

Windows 11 x64 22621.2428

More info on request

 

EDIT: since kernelbase.dll is a Windows component ran sfc /scannow just in case. Did not resolve the issue.

Edited by Finnisher

Share this post


Link to post
19 minutes ago, Finnisher said:

I get a silent crash trying to launch latest version of Helion 0.9.2.2 (FWIW 0.9.2.0 worked just fine)

 

Event Viewer shows that Helion.exe has caused an 0xe0434352 exception in KERNELBASE.DLL

 

Windows 11 x64 22621.2428

More info on request

 

EDIT: since kernelbase.dll is a Windows component ran sfc /scannow just in case. Did not resolve the issue. 

Did you run the build with or without the runtime?

Edit: I just went and verified them both from Github and for some reason the one without the runtime was smaller than the one in my publish folder and indeed does not work. I uploaded the build again and verified it works from Github now. Not sure what happened with that, but it should be good now.

Edited by hobomaster22

Share this post


Link to post
5 minutes ago, hobomaster22 said:

Did you run the build with or without the runtime?

Edit: I just went and verified them both from Github and for some reason the one without the runtime was smaller than the one in my publish folder and indeed does not work. I uploaded the build again and verified it works from Github now. Not sure what happened with that, but it should be good now.

 

Yep I downloaded the one without the runtime indeed.

Thanks for the quick response shall redownload!

Share this post


Link to post
18 hours ago, Master O said:

 

 

Apparently, I've found that it's not the GPU that's making that noise. Apparently, it's the CPU.

 

To fix that, the Maximum Processor State setting in Windows' Power & Sleep menu has to be adjusted so that Helion does not use 100% of a single CPU core on a multi-core system. If it is set to 80%, the CPU does not generate excess heat and the fans do not spin up. For a good test case, you can try this with either Nuts.wad or Nuts3.wad.

 

In Windows 10 and in the Power & Sleep menu, click on Additional Power Settings, then Change Plan Settings, then Change Advanced Power Settings.

 

Scroll down to Processor Power Management and open the sub-menu. In this sub-menu, click on Maximum Processor State.

 

Under the Maximum Processor State setting, change the Plugged In value from 100% to 80%.  

 

Of course, when finished gaming, put that setting back to 100%.

 

perhaps it'd be wise to stress test your cpu on stuff like looped Cinebench r23 and see how high the temps get. If they get too high, you might have to consider investing on a better cpu cooler, there are many good options nowadays for like $20 usd on amazon

Share this post


Link to post

The changes to chainsaw were really nice yet, there is a thing that still makes it wrong: it doesn't pull you to your enemy. Barels explosion radius must be incresed in order to triger chain explosions like in real game and deal more damage to the monsters? Not really sure.


Man, please carry on, I'd really glad to play a mod like brutal doom without lags on huge modern maps, that would be so much fun.

Share this post


Link to post

I'm liking the menu so far, but it looks like it's impossible to unbind some of the keys from inside the game.  If you try to clear the turn left or right functions the game just immediately rebinds them to the default.  The same holds true for the next weapon and previous weapon functions.  Not all of them are like this, as for instance I was able to unbind the automap key just fine.  I actually found that changing the bindings through the ini file causes this issue to go away, but only for the functions that you changed. 

Share this post


Link to post
11 hours ago, Darkcrafter07 said:

The changes to chainsaw were really nice yet, there is a thing that still makes it wrong: it doesn't pull you to your enemy. Barels explosion radius must be incresed in order to triger chain explosions like in real game and deal more damage to the monsters? Not really sure.


Man, please carry on, I'd really glad to play a mod like brutal doom without lags on huge modern maps, that would be so much fun.


Hmm the chainsaw appears to be pulling towards the enemy for me. The barrels respect the OLDRADIUSDMG flag and use Doom's original jank distance calculation. There is also an integration test for this, which I believe is the barrel chain from TNT. Did you find a specific scenario that wasn't working?

Share this post


Link to post
5 hours ago, TruthInFiction said:

I'm liking the menu so far, but it looks like it's impossible to unbind some of the keys from inside the game.  If you try to clear the turn left or right functions the game just immediately rebinds them to the default.  The same holds true for the next weapon and previous weapon functions.  Not all of them are like this, as for instance I was able to unbind the automap key just fine.  I actually found that changing the bindings through the ini file causes this issue to go away, but only for the functions that you changed. 

Thanks, will get this fixed for the next release.

Share this post


Link to post
On 10/28/2023 at 11:28 AM, hobomaster22 said:

Helion 0.9.2.2

 

Finally, Helion has an options menu! The initial options menu comes with mouse support too.

It also wouldn't be a Helion release without going faster. The world simulation for monster ticking and movement routines has a significant increase. This increase alone is twice as fast compared to the previous version and really increases the FPS on slower systems when playing slaughter type maps. Calculations for sprite rendering are also significantly faster. The CPU only needs to calculate a single vertex per sprite and the rest is handled by the GPU. This means less wasted CPU and less data being sent to the GPU for maximum speed.

This release also includes the new slow ticking option for maps with tons of monsters on more constrained systems. Maybe even useful on faster systems with maps that have really absurd amounts of monsters. Full explanation in the list of bug fixes and features below:

 

So will there be even more optimizations for sprite rendering after this or is that the maximum extent it can reach?

Share this post


Link to post
On 10/30/2023 at 1:08 PM, hobomaster22 said:


Hmm the chainsaw appears to be pulling towards the enemy for me. The barrels respect the OLDRADIUSDMG flag and use Doom's original jank distance calculation. There is also an integration test for this, which I believe is the barrel chain from TNT. Did you find a specific scenario that wasn't working?

 

Imps are pushed back when sawed. Doom 2 map 23 seems to chain explosions a bit wrong, especially the damage received by barons in the second room full of chaingunner and barons. Seems like barons could have received a bit more of damage in the original game?

Share this post


Link to post
On 10/30/2023 at 6:08 AM, hobomaster22 said:


Hmm the chainsaw appears to be pulling towards the enemy for me. The barrels respect the OLDRADIUSDMG flag and use Doom's original jank distance calculation. There is also an integration test for this, which I believe is the barrel chain from TNT. Did you find a specific scenario that wasn't working?

I just tried the chainsaw out myself, and while it does snap you to the enemy's center, it doesn't pull you in like it should.  As for barrel explosions, just load up E1M1 and blow up that barrel in the room leading to the exit.  It should also blow up the barrel on the other side of the adjacent wall, killing the zombiemen there, but it doesn't.

Share this post


Link to post
19 hours ago, Master O said:

 

So will there be even more optimizations for sprite rendering after this or is that the maximum extent it can reach?


It's not the maximum it can reach, but it's pretty close given the implementation Helion is using right now. Implementing real frustum culling might help, but since the calculations per sprite are very minimal it could actually end up being more expensive than just calculating the vertex anyway. To get more speed we would have to do a drastic implementation change, and would likely require features from OpenGL 4.x. Since everything is absurdly fast by comparison, the path for now will be to fix bugs and work on more QOL features.

Share this post


Link to post
12 hours ago, TruthInFiction said:

I just tried the chainsaw out myself, and while it does snap you to the enemy's center, it doesn't pull you in like it should.  As for barrel explosions, just load up E1M1 and blow up that barrel in the room leading to the exit.  It should also blow up the barrel on the other side of the adjacent wall, killing the zombiemen there, but it doesn't.

 

15 hours ago, Darkcrafter07 said:

 

Imps are pushed back when sawed. Doom 2 map 23 seems to chain explosions a bit wrong, especially the damage received by barons in the second room full of chaingunner and barons. Seems like barons could have received a bit more of damage in the original game?


Thanks, I did some digging and the calculation for explosion damage is incorrect. Doom used this approximate distance calculation, but the explosion damage calculation doesn't use this function and just picks the larger difference. Looks like I assumed it was the approximate distance calculation function so I will have to code out the same thing.

Share this post


Link to post

I am super stoked that I got everything compiled without only one or two warnings tossed off, but on attempting to run Helion I get these errors:

[hasturtium@garlic net7.0]$ ./Helion 
Reading config from config.ini 
Helion v0.9.2.2 
Processor:  Ppc64le 
Processors: 32 
OS: Unix 6.5.8.200 x64 (running x64) 
OpenAL v 
OpenAL Vendor:  
OpenAL Renderer:  
Wrote config file to config.ini 
System.NullReferenceException: Object reference not set to an instance of an object
   at Helion.Audio.Impl.OpenALAudioSystem.PrintOpenALInfo() in /home/hasturtium/src/Helion-0.9.2.2/Core/Audio/Impl/OpenALAudioSystem.cs:line 98
   at Helion.Audio.Impl.OpenALAudioSystem..ctor(IConfig config, ArchiveCollection archiveCollection, IMusicPlayer musicPlayer) in /home/hasturtium/src/Helion-0.9.2.2/Core/Audio/Impl/OpenALAudioSystem.cs:line 39
   at Helion.Client.Client.Run(CommandLineArgs commandLineArgs) in /home/hasturtium/src/Helion-0.9.2.2/Client/Client.cs:line 363
   at Helion.Client.Client.RunRelease(CommandLineArgs commandLineArgs) in /home/hasturtium/src/Helion-0.9.2.2/Client/Client.cs:line 322 

System configuration is an 8 core IBM Power9 with 32GB RAM and a Radeon RX 6600 running Fedora Linux 38. Despite errors regarding OpenAL I have both openal-soft and openal-soft-devel installed, and other games which nominally like those libraries see and use them.

Share this post


Link to post
1 hour ago, Xenolith said:

I am super stoked that I got everything compiled without only one or two warnings tossed off, but on attempting to run Helion I get these errors:


[hasturtium@garlic net7.0]$ ./Helion 
Reading config from config.ini 
Helion v0.9.2.2 
Processor:  Ppc64le 
Processors: 32 
OS: Unix 6.5.8.200 x64 (running x64) 
OpenAL v 
OpenAL Vendor:  
OpenAL Renderer:  
Wrote config file to config.ini 
System.NullReferenceException: Object reference not set to an instance of an object
   at Helion.Audio.Impl.OpenALAudioSystem.PrintOpenALInfo() in /home/hasturtium/src/Helion-0.9.2.2/Core/Audio/Impl/OpenALAudioSystem.cs:line 98
   at Helion.Audio.Impl.OpenALAudioSystem..ctor(IConfig config, ArchiveCollection archiveCollection, IMusicPlayer musicPlayer) in /home/hasturtium/src/Helion-0.9.2.2/Core/Audio/Impl/OpenALAudioSystem.cs:line 39
   at Helion.Client.Client.Run(CommandLineArgs commandLineArgs) in /home/hasturtium/src/Helion-0.9.2.2/Client/Client.cs:line 363
   at Helion.Client.Client.RunRelease(CommandLineArgs commandLineArgs) in /home/hasturtium/src/Helion-0.9.2.2/Client/Client.cs:line 322 

System configuration is an 8 core IBM Power9 with 32GB RAM and a Radeon RX 6600 running Fedora Linux 38. Despite errors regarding OpenAL I have both openal-soft and openal-soft-devel installed, and other games which nominally like those libraries see and use them.

That's interesting. It seems to be crashing printing the OpenAL extensions, and according to their documentation this shouldn't be null. Could you try removing that line and also the code from this function that uses the same call? If that works I can put in a fix for it.

Share this post


Link to post

Helion 0.9.2.3

This release fixes many bugs that have been found through testing various wads. Thanks @Shepardus @Darkcrafter07 and @TruthInFiction for the reports and anyone else I may have missed. Special thanks to @faad3e for play testing and finding bugs making this release even stronger.
 

Spoiler

Fixed movement sound being cleared on perpetual crushers.
Fixed issue with movement sounds not being removed from queue past the max sound distance.
Fixed case where player weapon frames could slowtick with feature enabled.
Fixed issue where binding couldn't be cleared on keys in the key binding options.
Fixed chainsaw locking in A_Saw.
Fixed player weapon frame ticking that caused chaingun to have a one tick shorter firing duration on the first fire.
Fixed explosion calculation to match Doom's from PIT_RadiusAttack instead of using P_AproxDistance.
Fixed loading readonly pk3s.
Fixed nodebuilder to always use the full file path.
Fixed offset calculation for teleport fog.
Added missing NOSECTOR flag to teleport destination.

 

Share this post


Link to post

I'm glad to see barrels working normally now, but there's still some wonkiness with key binding.  When you quit and reload the game it does keep any changes you made, but it adds the default bindings back in as well.  This is similar to the behavior from before, but instead of immediately bringing back the defaults it waits for a reload.  Mouse wheel up and down are not recognized in the menu and therefore cannot be bound that way.  I've noticed when switching the function of mouse wheel up and down through the config file that while Helion will show the new bindings in the menu, it seems to ignore them and keeps the default behavior.

Share this post


Link to post
12 minutes ago, TruthInFiction said:

I'm glad to see barrels working normally now, but there's still some wonkiness with key binding.  When you quit and reload the game it does keep any changes you made, but it adds the default bindings back in as well.  This is similar to the behavior from before, but instead of immediately bringing back the defaults it waits for a reload.  Mouse wheel up and down are not recognized in the menu and therefre cannot be bound that way.  I've noticed when switching the function of mouse wheel up and down through the config file that while Helion will show the new bindings in the menu, it seems to ignore them and keeps the default behavior. 


I will have to add a check for setting the mouse wheel. It looks like the way the keys are being cleared in the config makes the initialization function think it needs to update the config with defaults. I can fix this for the next release. The config needs the keys set to nothing to know that is a user configuration setting and not that it was part of an update like this:
Left = [""]
Right = [""]

As for the mouse wheel up/down are they possibly bound to multiple functions? Whichever one it hits first will eat it so the next command will not be able to execute on it. For example, if you have MouseWheelUp set to NextWeapon and also Use it will get eaten by the NextWeapon command. The key binding menu checks for this and will unbind the old one.

Share this post


Link to post
On 11/5/2023 at 12:33 PM, hobomaster22 said:


I will have to add a check for setting the mouse wheel. It looks like the way the keys are being cleared in the config makes the initialization function think it needs to update the config with defaults. I can fix this for the next release. The config needs the keys set to nothing to know that is a user configuration setting and not that it was part of an update like this:
Left = [""]
Right = [""]

As for the mouse wheel up/down are they possibly bound to multiple functions? Whichever one it hits first will eat it so the next command will not be able to execute on it. For example, if you have MouseWheelUp set to NextWeapon and also Use it will get eaten by the NextWeapon command. The key binding menu checks for this and will unbind the old one.

It shouldn't be conflicting functions, because I'm only using the config file to change the previous weapon and next weapon key bindings.  I know by default the mouse wheel is also used for automap zooming, but I wouldn't think that's an issue.  I can't really check to verify right now as I am away from my primary system, and this tablet I'm on doesn't seem to play well with Helion for some reason.

 

Edit:  Now that I've had some time to look at my config file I can definitively say no, I do not have the mouse wheel set to anything other than the default automap zooming and the changes I made to weapon switching.  Also, I do not have weapon switching bound to any other keys.

 

On another note, how well would Helion run if it were installed on a usb thumb drive?  I'm asking because I have the aforementioned tablet running on Zorin os (ubuntu-based linux) off of a thumb drive due to the internal storage being a paltry 128GB.  Helion will launch, but it locks up when I try to start a new game.  It's running on a 2.3 GHz core i3 6100u processor (2 cores 4 threads) which has Intel hd 520 graphics, and it has 3.75GB RAM.

Edited by TruthInFiction

Share this post


Link to post

I think crouch broke recently, haven't been able to do it as of last night. Yall are updating this quick though, was gonna report a bug I was getting in freedoom about a visible line showing where to walk to open a secret but that got fixed with an update real quick!

Share this post


Link to post
On 11/5/2023 at 5:01 PM, TruthInFiction said:

On another note, how well would Helion run if it were installed on a usb thumb drive?  I'm asking because I have the aforementioned tablet running on Zorin os (ubuntu-based linux) off of a thumb drive due to the internal storage being a paltry 128GB.  Helion will launch, but it locks up when I try to start a new game.  It's running on a 2.3 GHz core i3 6100u processor (2 cores 4 threads) which has Intel hd 520 graphics, and it has 3.75GB RAM.


Didn't see this until now, probably because it was an edit. Helion should be fine on a USB drive, I just tested it on my laptop. It's hard to say what the problem might be. I've tested on other 4GB systems, which is the lowest memory size tested and it works on those. If it has the the roughly 100MB of space available might be worth trying running it on the drive directly.

Share this post


Link to post
1 hour ago, Jovian D. Ragon said:

I think crouch broke recently, haven't been able to do it as of last night. Yall are updating this quick though, was gonna report a bug I was getting in freedoom about a visible line showing where to walk to open a secret but that got fixed with an update real quick!


I forgot crouch was in the key binding configuration. As far as I know crouch was never implemented, so that might explain why it's broken :P

Share this post


Link to post
55 minutes ago, hobomaster22 said:


Didn't see this until now, probably because it was an edit. Helion should be fine on a USB drive, I just tested it on my laptop. It's hard to say what the problem might be. I've tested on other 4GB systems, which is the lowest memory size tested and it works on those. If it has the the roughly 100MB of space available might be worth trying running it on the drive directly.

I could try that, but the internal storage has Windows 10 installed on it, so that would make for inconsistent testing.  It might be worth a shot just to see if maybe it's a hardware related issue though.  I'll have to play around with it over the weekend to see if I can figure anything out.

Share this post


Link to post
19 hours ago, hobomaster22 said:


I forgot crouch was in the key binding configuration. As far as I know crouch was never implemented, so that might explain why it's broken :P

OH LOL THAT WOULD DO IT! I've been messing around with so many sourceports I probably remembered crouching in Helion when I was actually playing like, nugget doom or vkdoom or something.

Share this post


Link to post

Helion had a hidden feature for debugging special activations and triggers. I have cleaned this feature up and made it more user friendly. This previously came in handy when I thought I encountered a bug. It's also great for determining how to advance in a map and secret hunting. This works in both directions. You can press use on a sector and it will mark the activation, and pressing/bumping a use line will show what that line activates.

A huge pain point was debugging boom maps that relied on complex triggers with voodoo doll closets on scrolling floors. Helion is now capable of detecting voodoo doll closets and will traverse them to show the trigger chains both in game and in the automap. An example of this trigger chain is at the 30 second mark in the video below.

I have also implemented animated skies that were not previously supported and this map happens to showcase this feature as well.
 

 

Share this post


Link to post

Is Helion intended only as a port of Doom (and other existing games: heretic, hexen.. etc.) or as a new 2.5D game engine?

Share this post


Link to post
4 minutes ago, camper said:

Is Helion intended only as a port of Doom (and other existing games: heretic, hexen.. etc.) or as a new 2.5D game engine?

 

Refer to the original post.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×