Skip to content

performance(weapon): Optimized ProjectileStreamUpdate Behaviors + Added Variables to Optimize Weapon FX Rendering - #2051

Open
IamInnocent3X wants to merge 266 commits into
TheSuperHackers:mainfrom
IamInnocent3X:Optimize_ProjectileStream
Open

performance(weapon): Optimized ProjectileStreamUpdate Behaviors + Added Variables to Optimize Weapon FX Rendering#2051
IamInnocent3X wants to merge 266 commits into
TheSuperHackers:mainfrom
IamInnocent3X:Optimize_ProjectileStream

Conversation

@IamInnocent3X

@IamInnocent3X IamInnocent3X commented Jan 3, 2026

Copy link
Copy Markdown

Adresses issues: #57 and #124

ProjectileStreamUpdate - Minor changes of refractoring Modulo to use Comparison and Increment.
W3DProjectileStreamDraw - Minor change of updating Requirement Vector from being not equal zero Vector to any Vector above near zero.

Weapons

Added 4 FX Tweaking Variables:

  • FXRenderingInterval
  • FXMaxStackPerLoc
  • FXMaxStackInterval
  • CheckFireFXForFXMaxStack

The performance of Toxin Tractor and Dragon Tank can simply be improved by Increasing their Weapon's DelayBetweenShots from 40 to 80. This however, affects the Gameplay. Therefore, I propose a makeshift design to be able to Tweak Weapon's FX spawning Rate without affecting the Gameplay.

Each of these Variables enables the customization of Rendering WeaponFX and BoneFXUpdate without affecting Gameplay in any way.

FXRenderingInterval - Adds an interval for Weapons required to be able to Render the next FireFX and BoneFXUpdate.

  • BoneFXUpdate is one of the main features that reduces Performance for ProjectileStreamUpdate. Reducing the Generation of Particle from BoneFXUpdate will Increase the overall performance.

FXMaxStackPerLoc - If the FX used is from ProjectileDetonationFX, then the system will register the Name of the FiringWeapon with one Count onto the PartitionCell with PartitionManager. If the Count exceeds the configured variable, Weapons with the same name cannot Spawn ProjectileDetonationFX on the Same Cell with the registered name.

FXMaxStackInterval - Adds an Interval for the Registered Count of the previous Variable to be Obsolete. If not configured, the Weapon will use its 'DelayBetweenShots' variable to account for the delay.

CheckFireFXForFXMaxStack: Bypasses 'FXMaxStackPerLoc' original intent and Use FireFX for FXMaxStack. This is useful for Modules like FireWeaponWhenDeadBehavior or FireWeaponCollide that does not use ProjectileObject.

The performance improvements from using the above tweaks without changing the DelayBetweenShots is noticeable. ToxinTruckGun is configured with these parameters and able to achieve 50-60% performance boost.

image

@IamInnocent3X
IamInnocent3X force-pushed the Optimize_ProjectileStream branch 2 times, most recently from 74511f8 to 02c4953 Compare January 3, 2026 11:35
Caball009 and others added 28 commits April 4, 2026 18:39
Until their compile times are fixed
…kers#2539)

1. Defer Render2D resolution update until after successful D3D reset
2. Snapshot current mode before Set_Device_Resolution for correct rollback
3. Fix fullscreen window failing to cover desktop by removing SWP_NOSIZE/NOMOVE
4. Remove duplicate D3DInterface release block in Shutdown
…ackers#2546)

This adds two new meta events: DEMO_BEGIN_ADJUST_DEFAULTPITCH, DEMO_END_ADJUST_DEFAULTPITCH, which are default mapped to CTRL + MK_COMMA
bobtista and others added 19 commits July 31, 2026 23:18
@bobtista

bobtista commented Aug 5, 2026

Copy link
Copy Markdown

This PR is currently merge-conflicted and has not been updated since March 30. It also combines projectile-stream changes, partition-history changes and weapon-FX changes.
@IamInnocent3X are you still on this? Want me to run with it and split it into separate changes?

@IamInnocent3X

IamInnocent3X commented Aug 6, 2026

Copy link
Copy Markdown
Author

This PR is currently merge-conflicted and has not been updated since March 30. It also combines projectile-stream changes, partition-history changes and weapon-FX changes. @IamInnocent3X are you still on this? Want me to run with it and split it into separate changes?

Hey sorry. It's just that I haven't been active. Yeah, I would love to help. Let me update according to the recent branch first.

Edit: Oops, looks like rebasing the branch doesn't go as friendly as the bot and github would liked.

Yeah, just go ahead and run it as you guys needed due to rebasing issues. I can close an reopen the request if you would like.

@greptile-apps

greptile-apps Bot commented Aug 6, 2026

Copy link
Copy Markdown

Too many files changed for review (2220 files, 500 file limit).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.