CleverRaven / CleverRaven/Cataclysm-DDA

Tone down spawning and splitting of slimes

Open
#69,669 1 comment 5 reactions 0 assignees View on GitHub
[C++] Code: Performance Help Wanted Monsters
Dominant language
C++
Stars
13.1k
Forks
4.6k
Avg merge
2d 1h
Merged PRs (30d)
205

Description

### Describe the bug

Playing with a lab underneath you, and labs are pretty common, is mostly that bad because of *hundreds* of slimes causing a massive slowdown. Resolving this should solve the worst part of the overall slowness when a lab is below you.

### Attach save file

n/a

### Steps to reproduce

1. Have e.g an evac shelter or anywhere really on top of an undiscovered lab.
2. Witness the crawl.
3. Despair.

### Expected behavior

Slimes need to be limited somehow. The big question is how?

Kevin said that adding a check to look for slimes in range is too slow and may make it even slower. But maybe this can be cached?
Maleclypse said that maybe we can add something that a slime splits in e.g slime2 then slime3 which have severely impacted and disabled splitting functionality.

### Screenshots

_No response_

### Versions and configuration

- OS: Linux
- OS Version: LSB Version: n/a; Distributor ID: Arch; Description: Arch Linux; Release: rolling; Codename: n/a;
- Game Version: cc4cb54 [64-bit]
- Graphics Version: Tiles
- Game Language: System language []
- Mods loaded: [
Dark Days Ahead [dda],
Disable NPC Needs [no_npc_food],
Portal Storms Ignore NPCs [personal_portal_storms],
Slowdown Fungal Growth [no_fungal_growth],
Bionic Professions [package_bionic_professions]
]

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

No source files, tests, or entry points are named. Start by reproducing the slowdown with a lab beneath the player and inspect the slime spawning and splitting paths; done means reducing the resulting slime-driven slowdown without introducing excessive checking overhead.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.