Skip to content

Explosion Waves: Visual update and Backend rewrite - #12793

Draft
fira wants to merge 30 commits into
cmss13-devs:masterfrom
fira:expwaves
Draft

Explosion Waves: Visual update and Backend rewrite#12793
fira wants to merge 30 commits into
cmss13-devs:masterfrom
fira:expwaves

Conversation

@fira

@fira fira commented Jul 31, 2026

Copy link
Copy Markdown
Member

About the pull request

Yet another sweeping backend rework with absolutely No Consequences™ whatsover to gameplay or balance.
This time we're taking on the EXPLOSIONS, which have been a major thorn in our sides when it comes to Performance.

This PR replaces CellAuto based cellular automata explosions by "explosion waves", which are considered as a traveling cardinal wave in one go. This means no more objects littering the place, no more ending up with thousands of cells, no more to all that. The wave doesn't even exist in any one place, it just affects a traveling cone based on its inception turf.

It also makes human explosions delayed and handled by a subsystem in a deferred fashion to make sure they don't overtime. They previously could because throws were handled on sleep time and cause more explosion effects.

Oh also it ports and adds the relevant explosion particle effects from TGMC.
It also strengthens the displacement shockwave effect that we already had.
It changes the awful huge sparks we had on explosion by many more but smaller sparks.

Also fixes SHARP HE darts whose proximity explosion was not working properly and far less strong than intended.

The catch

For the sake of simplicity, explosion merging and explosion reflection are not a thing anymore.

For merging it's not a big deal because it wasn't even working properly and they would very rarely merge.
For reflection, this means that explosions are a little less strong within enclosed spaces.
The reflection can be readded but it'll come with a performance cost.

TODO

  • TESTING!
  • Ideally look into making a different explosion shockwave sprite that will convey the propagation better

That being said it should already be reviewable and testable.

Explain why it's good for the game

Performance mainly and reactivity of the game.
Also eye candy from the explosion particle effects.

Testing Photographs and Procedure

Bunch of random ones on discord and you can see on TM.
Will probably add some more when sprites are done and effects adjusted.

Changelog

🆑
code: Completely rewrote the explosion backend.
add: Added toned down explosion particle effects from TGMC : fireball ring, smoke, dirt scatter, water splashes.
fix: SHARP HE dart explosion in mine mode is now properly handled. It was about 2x to 3x less strong than intended. Direct hit is unaffected.
code: Made explosion displacement shockwave more noticeable, and sparks smaller but more numerous.
del: Explosions will not rebound off walls anymore, making them slightly less threatening in very tight spaces.
fix: Because explosions don't get applied several times, some interactions of item destruction might change. For example, destroying a metal chair in an explosion might not also destroy the dropped metal sheet.
/:cl:

@fira fira added the Needs Testing Need to test it on the guinea pigs (production server) label Jul 31, 2026
@github-project-automation github-project-automation Bot moved this to Awaiting Review in Review Backlog Jul 31, 2026
@fira
fira marked this pull request as draft July 31, 2026 18:48
@cmss13-ci cmss13-ci Bot added Sprites Remove the soul from the game. Code Improvement Make the code longer Feature Feature coder badge Removal snap size/XL Denotes a PR that changes 799-1999 lines, ignoring generated files. labels Jul 31, 2026
@fira fira changed the title Explosion Waves: Visual and Backend update Explosion Waves: Visual update and Backend rewrite Jul 31, 2026
@fira fira added the Performance the game sucks and this makes it suck less label Aug 1, 2026
@cm13-github cm13-github added the Merge Conflict PR can't be merged because it touched too much code label Aug 1, 2026
@cm13-github

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@cm13-github

Copy link
Copy Markdown
Contributor

Conflicts have been resolved. A maintainer will review the pull request shortly.

@cm13-github cm13-github removed the Merge Conflict PR can't be merged because it touched too much code label Aug 1, 2026
@fira fira added the Testmerge Candidate we'll test this while you're asleep and the server has 10 players label Aug 1, 2026
@cm13-github

cm13-github commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Test merge deployment history:

Test Merge Deployed @ 08/01/2026 11:01:46 +00:00:
Server Instance

CM13 Live

Revision

Origin: cd65d0b
Pull Request: 44a9d39
Server: 2e4e5c5

Test Merge Updated @ 08/01/2026 11:34:30 +00:00:
Server Instance

CM13 Live

Revision

Origin: 9392acb
Pull Request: 44a9d39
Server: 295df25

Test Merge Removed @ 08/01/2026 11:35:42 +00:00:
Server Instance

CM13 Live

Test Merge Deployed @ 08/01/2026 11:55:30 +00:00:
Server Instance

CM13 Live

Revision

Origin: 9392acb
Pull Request: 44a9d39
Server: 295df25

Test Merge Updated @ 08/01/2026 13:05:09 +00:00:
Server Instance

CM13 Live

Revision

Origin: 9392acb
Pull Request: ad57a9c
Server: 2b9aa49

Test Merge Removed @ 08/01/2026 13:15:53 +00:00:
Server Instance

CM13 Live

Test Merge Deployed @ 08/04/2026 17:21:42 +00:00:
Server Instance

CM13 Live

Revision

Origin: 081381c
Pull Request: bb0bf96
Server: 3f8d4e3

Test Merge Removed @ 08/04/2026 17:56:07 +00:00:
Server Instance

CM13 Live

Test Merge Deployed @ 08/13/2026 07:34:13 +00:00:
Server Instance

CM13 Live

Revision

Origin: 21dc526
Pull Request: e7bd8a7
Server: cd9f89b

Test Merge Removed @ 08/13/2026 19:46:55 +00:00:
Server Instance

CM13 Live

@fira

fira commented Aug 2, 2026

Copy link
Copy Markdown
Member Author

Should be all sorted out, though obviously the effects will need more work. I'm still not really satisfied by how prominent some of them are. Now the full effects should only show up on power > 400, which avoids having them all on cluster explosions.

@fira
fira marked this pull request as ready for review August 3, 2026 11:36
@fira

fira commented Aug 3, 2026

Copy link
Copy Markdown
Member Author

Held until i can reevaluate the spreading logic to be more like cellauto

@fira
fira marked this pull request as draft August 3, 2026 18:10
@cmss13-ci cmss13-ci Bot added the Fix Fix one bug, make ten more label Aug 13, 2026
@cm13-github cm13-github added the Merge Conflict PR can't be merged because it touched too much code label Aug 13, 2026
@cm13-github

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@fira

fira commented Aug 14, 2026

Copy link
Copy Markdown
Member Author

Requires #12928 now

I'll update TM Holder so it can be testmerged with both

MPhonks added a commit to MPhonks/cmss13 that referenced this pull request Aug 15, 2026
…accordingly, reverts user balloon alert (hud should be enough)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Code Improvement Make the code longer Feature Feature coder badge Fix Fix one bug, make ten more Merge Conflict PR can't be merged because it touched too much code Needs Testing Need to test it on the guinea pigs (production server) Performance the game sucks and this makes it suck less Removal snap size/XL Denotes a PR that changes 799-1999 lines, ignoring generated files. Sprites Remove the soul from the game. Testmerge Candidate we'll test this while you're asleep and the server has 10 players

Projects

Status: Awaiting Review

Development

Successfully merging this pull request may close these issues.

2 participants