beyond-all-reason / beyond-all-reason/RecoilEngine

CEGs: priority for rate limits

Open
#356 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 2h
Merged PRs (30d)
40

Description

Here's a recursive CEG which has a root "particle" which is just a spawner (this is a simple version of how e.g. the ZK nuke mushroom cloud works):
```lua
sub_particle = {
-- bla
},
root_particle = {
class = [[CExpGenSpawner]],
count = 10,
properties = {
delay = [[0 i30]],
explosiongenerator = [[custom:sub_particle]],
},
},
```

Currently, when near the particle limit, each particle has some hardcoded chance of going through (which goes down to 0 as particle count approaches limit). This means that the root particle of the nuke (which is an important visual indicator) has the same chance of being blocked as some random sparks from a flea shot (which are just eye candy).

The request is to add some sort of priority such that important particles have a lower chance of being blocked, possibly to the extent that existing lower-priority particles are dropped to make room.

Contributor guide

Open the contributing guide

Research direction

Start by locating the CEG particle spawning and rate-limit handling, then trace how CExpGenSpawner instances are treated near the particle limit. Clarify the priority model and its effect on existing particles; done should include a defined way for important effects to be preserved while lower-priority particles are dropped.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, lua
Domain
game-dev, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.