Design a seed system for reproducible procedural generation
Designs a reproducible seed system for procedural generation with hierarchical derived seeds and versioning.
/plugin marketplace add sponticelli/gamedev-claude-plugins/plugin install procedural@gamedev-claude-pluginsCreate a seed system design for reproducible procedural generation.
Before designing the seed system, understand the requirements:
Use this context to design appropriate seed system.
# Seed System Design: [Game/System Name]
## Overview
**Seed format:** [Integer/String/Compound]
**Visibility:** [Hidden/Visible to player]
**Sharing:** [Enabled/Disabled]
**Storage:** [Where seeds are saved]
## Seed Format
### Master Seed
**Type:** [Data type]
**Range:** [Valid values]
**Encoding:** [For display/storage]
**Example:**
Numeric: 1234567890 Display: "ABCD-EFGH-1234"
### Derived Seeds
| Subsystem | Derivation | Purpose |
|-----------|------------|---------|
| [System] | [How derived from master] | [What it seeds] |
**Derivation example:**
terrain_seed = hash(master_seed, "terrain") enemy_seed = hash(master_seed, "enemies") loot_seed = hash(master_seed, "loot")
## Random Number Generation
### Generator Type
**Algorithm:** [PRNG algorithm]
**Library:** [Implementation used]
**Period:** [Cycle length]
### Initialization
[How generator is seeded]
### Thread Safety
[How multiple threads are handled]
## Seed Hierarchy
Master Seed ├── World Seed │ ├── Region Seeds (per region) │ │ ├── Chunk Seeds (per chunk) │ │ └── Feature Seeds │ └── Event Seeds ├── Entity Seed │ ├── Enemy Seeds │ └── NPC Seeds ├── Loot Seed │ ├── Chest Seeds │ └── Drop Seeds └── [Other Seeds]
## Reproducibility Rules
### Order Independence
[How to ensure order doesn't affect results]
### Isolation
[How subsystems don't affect each other]
### Versioning
[How to handle game updates]
## Player Interface
### Seed Input
**Where:** [UI location]
**Format:** [What players enter]
**Validation:** [How input is validated]
### Seed Display
**When shown:** [Conditions]
**Format:** [How displayed]
**Copy feature:** [Yes/No]
### Sharing
**Format for sharing:** [What's shared]
**Import process:** [How to use shared seed]
**Compatibility:** [Cross-version?]
## Storage
### When Saved
- [Save trigger 1]
- [Save trigger 2]
### What's Saved
| Data | Format | Location |
|------|--------|----------|
| Master seed | [Format] | [Where] |
| Derived seeds | [Format] | [Where] |
| RNG state | [Format] | [Where] |
### Migration
[How old saves work with new versions]
## Debugging
### Seed Logging
**Log format:** [What's logged]
**When logged:** [Events]
### Replay
[How to replay from seed]
### Override
[How to force specific seeds]
## Implementation Checklist
### Random Usage Rules
- [ ] Never use unseeded random
- [ ] Document all random usage
- [ ] Use derived seeds for subsystems
- [ ] Reset generator state for new generation
### Testing
- [ ] Same seed = same result (test)
- [ ] Different seeds = different results (test)
- [ ] Subsystems don't interfere (test)
- [ ] Cross-platform produces same results (if required)
Generate based on the user's game and seed system requirements.