@jarrodmedrano/claude-skills 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/bevy/SKILL.md +406 -0
- package/.claude/skills/bevy/references/bevy_specific_tips.md +385 -0
- package/.claude/skills/bevy/references/common_pitfalls.md +217 -0
- package/.claude/skills/bevy/references/ecs_patterns.md +277 -0
- package/.claude/skills/bevy/references/project_structure.md +116 -0
- package/.claude/skills/bevy/references/ui_development.md +147 -0
- package/.claude/skills/domain-driven-design/SKILL.md +459 -0
- package/.claude/skills/domain-driven-design/references/ddd_foundations_and_patterns.md +664 -0
- package/.claude/skills/domain-driven-design/references/rich_hickey_principles.md +406 -0
- package/.claude/skills/domain-driven-design/references/visualization_examples.md +790 -0
- package/.claude/skills/domain-driven-design/references/wlaschin_patterns.md +639 -0
- package/.claude/skills/game-design-theory/SKILL.md +102 -0
- package/.claude/skills/game-design-theory/design-principles.md +308 -0
- package/.claude/skills/game-design-theory/gameplay-elements.md +213 -0
- package/.claude/skills/game-design-theory/player-psychology.md +175 -0
- package/.claude/skills/game-design-theory/playtesting.md +321 -0
- package/.claude/skills/game-design-theory/storytelling.md +219 -0
- package/.claude/skills/game-feel/SKILL.md +305 -0
- package/.claude/skills/game-feel/references/adsr-tuning.md +271 -0
- package/.claude/skills/game-feel/references/classic-profiles.md +279 -0
- package/.claude/skills/game-feel/references/perception-thresholds.md +160 -0
- package/.claude/skills/game-feel/references/polish-effects.md +246 -0
- package/.claude/skills/game-feel/references/simulation-recipes.md +306 -0
- package/.claude/skills/game-feel/references/six-metrics.md +239 -0
- package/.claude/skills/godot/SKILL.md +728 -0
- package/.claude/skills/godot/assets/templates/attribute_template.gd +109 -0
- package/.claude/skills/godot/assets/templates/component_template.gd +76 -0
- package/.claude/skills/godot/assets/templates/interaction_template.gd +108 -0
- package/.claude/skills/godot/assets/templates/item_resource.tres +11 -0
- package/.claude/skills/godot/assets/templates/spell_resource.tres +20 -0
- package/.claude/skills/godot/references/architecture-patterns.md +608 -0
- package/.claude/skills/godot/references/common-pitfalls.md +518 -0
- package/.claude/skills/godot/references/file-formats.md +491 -0
- package/.claude/skills/godot/references/godot4-physics-api.md +302 -0
- package/.claude/skills/godot/scripts/validate_tres.py +145 -0
- package/.claude/skills/godot/scripts/validate_tscn.py +170 -0
- package/.claude/skills/level-design/SKILL.md +249 -0
- package/.claude/skills/level-design/anticipatory-play.md +223 -0
- package/.claude/skills/level-design/hiding-linearity.md +181 -0
- package/.claude/skills/level-design/indie-practices.md +286 -0
- package/.claude/skills/level-design/open-world-planning.md +294 -0
- package/.claude/skills/level-design/play-personas.md +240 -0
- package/.claude/skills/level-design/procedural-handmade.md +271 -0
- package/.claude/skills/level-design/themed-environments.md +264 -0
- package/.claude/skills/react-three-fiber/SKILL.md +2055 -0
- package/.claude/skills/react-three-fiber/scripts/build-scene.ts +171 -0
- package/package.json +3 -1
- package/scripts/install.js +16 -1
- package/templates/github-actions/README.md +36 -0
- /package/.claude/{commands/design-review → agents}/design-review-agent.md +0 -0
- /package/.claude/{commands/code-review → agents}/pragmatic-code-review-subagent.md +0 -0
- /package/{.claude/commands/code-review → templates/github-actions}/claude-code-review-custom.yml +0 -0
- /package/{.claude/commands/code-review → templates/github-actions}/claude-code-review.yml +0 -0
- /package/{.claude/commands/security-review → templates/github-actions}/security.yml +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Play-Personas for Player-Centered Level Design
|
|
2
|
+
|
|
3
|
+
Based on Chapter 13: "Play-Personas" by Alessandro Canossa (Northeastern University).
|
|
4
|
+
|
|
5
|
+
## Core Concept
|
|
6
|
+
|
|
7
|
+
Play-personas are **patterns of preferential interaction and navigation attitudes** that help designers:
|
|
8
|
+
1. Pre-figure player behavior before implementation (metaphor)
|
|
9
|
+
2. Evaluate actual player behavior after release (lens)
|
|
10
|
+
|
|
11
|
+
> "Level designers are designing spaces for players to act. Games must be played to fully exist."
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Why Play-Personas?
|
|
16
|
+
|
|
17
|
+
### The Problem of Scale
|
|
18
|
+
In a simple Pac-Man maze, there are 24 decision points with 2 choices each = 16,777,216 possible low-level behaviors.
|
|
19
|
+
|
|
20
|
+
**Solution:** Group low-level actions into high-level behaviors.
|
|
21
|
+
|
|
22
|
+
### High-Level Behaviors Example (Pac-Man)
|
|
23
|
+
|
|
24
|
+
| Low-Level | High-Level Behavior |
|
|
25
|
+
|-----------|---------------------|
|
|
26
|
+
| Move up/down/left/right | Center vs Periphery dwelling |
|
|
27
|
+
| Eat pills timing | Early vs Late pill eating |
|
|
28
|
+
| Direction changes | Linear vs Broken path |
|
|
29
|
+
|
|
30
|
+
Three binary high-level behaviors = 8 personas (2³)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## The Two Modes
|
|
35
|
+
|
|
36
|
+
### Play-Persona as Metaphor (A Priori)
|
|
37
|
+
**Before** the game exists or is playable:
|
|
38
|
+
- Hypothesize how players will behave
|
|
39
|
+
- Design levels to accommodate target behaviors
|
|
40
|
+
- Select which personas to design for
|
|
41
|
+
|
|
42
|
+
### Play-Persona as Lens (A Posteriori)
|
|
43
|
+
**After** players can be observed:
|
|
44
|
+
- Validate hypotheses with telemetry
|
|
45
|
+
- Discover unexpected behavioral clusters
|
|
46
|
+
- Evaluate if design supports intended personas
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## The Six-Step Process
|
|
51
|
+
|
|
52
|
+
### Step 1: Gameplay Analysis
|
|
53
|
+
List all low-level mechanics, then abstract into high-level behaviors.
|
|
54
|
+
|
|
55
|
+
**Example: Left 4 Dead**
|
|
56
|
+
|
|
57
|
+
Low-level mechanics:
|
|
58
|
+
- Primary attack (ranged)
|
|
59
|
+
- Secondary attack (melee)
|
|
60
|
+
- Crouch-shooting
|
|
61
|
+
- Jump, reload, run
|
|
62
|
+
- Use items (flashlight, medkit, pills, Molotov, pipe bomb)
|
|
63
|
+
- Change weapons
|
|
64
|
+
|
|
65
|
+
Abstracted to high-level behaviors:
|
|
66
|
+
- Aggressive vs Defensive playstyle
|
|
67
|
+
- Team-oriented vs Solo
|
|
68
|
+
- Resource-conserving vs Resource-spending
|
|
69
|
+
- Leading vs Following
|
|
70
|
+
|
|
71
|
+
### Step 2: Create Permutation Matrix
|
|
72
|
+
|
|
73
|
+
Plot all combinations of high-level behaviors:
|
|
74
|
+
|
|
75
|
+
| Profile | Aggressive? | Team? | Resource? |
|
|
76
|
+
|---------|-------------|-------|-----------|
|
|
77
|
+
| 1 | Yes | Yes | Conserving |
|
|
78
|
+
| 2 | Yes | Yes | Spending |
|
|
79
|
+
| 3 | Yes | No | Conserving |
|
|
80
|
+
| 4 | Yes | No | Spending |
|
|
81
|
+
| 5 | No | Yes | Conserving |
|
|
82
|
+
| 6 | No | Yes | Spending |
|
|
83
|
+
| 7 | No | No | Conserving |
|
|
84
|
+
| 8 | No | No | Spending |
|
|
85
|
+
|
|
86
|
+
### Step 3: Select the Cast
|
|
87
|
+
Choose 2-3 personas that:
|
|
88
|
+
- Align with design vision
|
|
89
|
+
- Represent meaningfully different experiences
|
|
90
|
+
- Are achievable given level constraints
|
|
91
|
+
|
|
92
|
+
**Don't design for all personas.** A fraidy-cat persona doesn't belong in late-game difficulty.
|
|
93
|
+
|
|
94
|
+
### Step 4: Associate Affordances with Behaviors
|
|
95
|
+
|
|
96
|
+
Build a thesaurus linking:
|
|
97
|
+
|
|
98
|
+
**Ludic affordances** (what players can do):
|
|
99
|
+
- Combat opportunities
|
|
100
|
+
- Resource locations
|
|
101
|
+
- Risk/reward placements
|
|
102
|
+
|
|
103
|
+
**Aesthetic affordances** (what players perceive):
|
|
104
|
+
- Color coding
|
|
105
|
+
- Architectural cues
|
|
106
|
+
- Sound design
|
|
107
|
+
- Lighting
|
|
108
|
+
|
|
109
|
+
**Example associations:**
|
|
110
|
+
- Bonus items near danger = rewards aggressive personas
|
|
111
|
+
- Safe routes with fewer rewards = supports cautious personas
|
|
112
|
+
- Team-required obstacles = enforces cooperative play
|
|
113
|
+
|
|
114
|
+
### Step 5: Orchestrate Throughout Level
|
|
115
|
+
|
|
116
|
+
Modulate which personas are viable at different points:
|
|
117
|
+
- Early game: Multiple personas viable
|
|
118
|
+
- Challenge sections: Specific personas rewarded
|
|
119
|
+
- Recovery sections: Safe personas viable again
|
|
120
|
+
|
|
121
|
+
**The designer controls** which behavioral profiles are available at any given time.
|
|
122
|
+
|
|
123
|
+
### Step 6: Validate with Telemetry
|
|
124
|
+
|
|
125
|
+
After playtesting, analyze:
|
|
126
|
+
- Do players cluster into expected personas?
|
|
127
|
+
- Did unexpected personas emerge?
|
|
128
|
+
- Are intended persona pathways actually used?
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Example: Pac-Man Personas
|
|
133
|
+
|
|
134
|
+
### The Matrix
|
|
135
|
+
| # | Center/Periphery | Pill Timing | Path Style |
|
|
136
|
+
|---|------------------|-------------|------------|
|
|
137
|
+
| 1 | Center | Early | Linear |
|
|
138
|
+
| 2 | Center | Early | Broken |
|
|
139
|
+
| 3 | Center | Late | Linear |
|
|
140
|
+
| 4 | Center | Late | Broken |
|
|
141
|
+
| 5 | Periphery | Early | Linear |
|
|
142
|
+
| 6 | Periphery | Early | Broken |
|
|
143
|
+
| 7 | Periphery | Late | Linear |
|
|
144
|
+
| 8 | Periphery | Late | Broken |
|
|
145
|
+
|
|
146
|
+
### Named Personas
|
|
147
|
+
|
|
148
|
+
**Fraidy Cat** (Profile 5):
|
|
149
|
+
- Periphery dweller
|
|
150
|
+
- Eats pills early (security)
|
|
151
|
+
- Linear path (predictable)
|
|
152
|
+
- Avoids ghosts at all costs
|
|
153
|
+
|
|
154
|
+
**Risk Taker** (Profile 4):
|
|
155
|
+
- Center dweller
|
|
156
|
+
- Delays pills (maximizes points)
|
|
157
|
+
- Broken path (responsive)
|
|
158
|
+
- Embraces ghost proximity
|
|
159
|
+
|
|
160
|
+
### Designing for Both
|
|
161
|
+
|
|
162
|
+
**For Fraidy Cat:**
|
|
163
|
+
- Safe peripheral routes
|
|
164
|
+
- Pills accessible from edges
|
|
165
|
+
- Escape paths from center
|
|
166
|
+
|
|
167
|
+
**For Risk Taker:**
|
|
168
|
+
- Bonus items in center
|
|
169
|
+
- Delayed rewards for pill timing
|
|
170
|
+
- Complex navigation challenges
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## From Cooper's Personas
|
|
175
|
+
|
|
176
|
+
Traditional HCI personas (Alan Cooper) describe:
|
|
177
|
+
- Demographics
|
|
178
|
+
- Goals and motivations
|
|
179
|
+
- Behaviors and attitudes
|
|
180
|
+
- Fictional narrative details
|
|
181
|
+
|
|
182
|
+
### Play-Personas Differ
|
|
183
|
+
|
|
184
|
+
| Traditional | Play-Persona |
|
|
185
|
+
|-------------|--------------|
|
|
186
|
+
| Narrative description | Parametric model |
|
|
187
|
+
| Static profile | Dynamic behavior pattern |
|
|
188
|
+
| Pre-design only | Pre and post-design |
|
|
189
|
+
| Qualitative | Quantifiable |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Practical Applications
|
|
194
|
+
|
|
195
|
+
### During Design
|
|
196
|
+
1. Identify core mechanics
|
|
197
|
+
2. Abstract to high-level behaviors
|
|
198
|
+
3. Generate persona matrix
|
|
199
|
+
4. Select target personas
|
|
200
|
+
5. Design affordances supporting those personas
|
|
201
|
+
6. Orchestrate persona viability through level
|
|
202
|
+
|
|
203
|
+
### During Testing
|
|
204
|
+
1. Instrument telemetry for high-level behaviors
|
|
205
|
+
2. Cluster player data
|
|
206
|
+
3. Compare to expected personas
|
|
207
|
+
4. Identify gaps between design intent and actual play
|
|
208
|
+
|
|
209
|
+
### Communication Tool
|
|
210
|
+
Personas provide shared language:
|
|
211
|
+
- "This section is designed for Risk Takers"
|
|
212
|
+
- "We need a Fraidy Cat path through here"
|
|
213
|
+
- "The telemetry shows most players are Profile 3"
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Benefits
|
|
218
|
+
|
|
219
|
+
1. **Avoid self-referential design** — Designers aren't the target players
|
|
220
|
+
2. **Enable diversity** — Design for multiple valid playstyles
|
|
221
|
+
3. **Focus effort** — Can't please everyone; pick meaningful personas
|
|
222
|
+
4. **Validate intent** — Telemetry confirms or refutes hypotheses
|
|
223
|
+
5. **Communicate clearly** — Shared vocabulary for team discussions
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Limitations
|
|
228
|
+
|
|
229
|
+
1. **Subjectivity** — Different designers derive different high-level behaviors
|
|
230
|
+
2. **Combinatorial explosion** — Many behaviors = many personas
|
|
231
|
+
3. **Selection bias** — Choosing which personas to design for shapes experience
|
|
232
|
+
4. **Telemetry requirements** — Validation requires instrumentation
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Key Insight
|
|
237
|
+
|
|
238
|
+
> "Play-personas represent means to imply metaphorically players during the design phase and also serve as lenses to evaluate finished levels."
|
|
239
|
+
|
|
240
|
+
The same framework works for planning AND evaluation—connect design intent to measurable player behavior.
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# Procedural and Handmade Level Design Integration
|
|
2
|
+
|
|
3
|
+
Based on Chapter 11: "Integrating Procedural and Handmade Level Design" by Mark R. Johnson.
|
|
4
|
+
|
|
5
|
+
## The Two Approaches
|
|
6
|
+
|
|
7
|
+
### Procedural Content Generation (PCG)
|
|
8
|
+
Algorithmic creation of game content: levels, items, enemies, stories.
|
|
9
|
+
|
|
10
|
+
**Strengths:**
|
|
11
|
+
- Massive replay value
|
|
12
|
+
- Reduced development time per unit content
|
|
13
|
+
- Surprise even for developers
|
|
14
|
+
- Adaptive difficulty potential
|
|
15
|
+
|
|
16
|
+
**Weaknesses:**
|
|
17
|
+
- Can feel same-y across generations
|
|
18
|
+
- Difficult to guarantee specific experiences
|
|
19
|
+
- Narrative hard to generate
|
|
20
|
+
- Quality floors vary
|
|
21
|
+
|
|
22
|
+
### Handmade Content
|
|
23
|
+
Designer-crafted levels and experiences.
|
|
24
|
+
|
|
25
|
+
**Strengths:**
|
|
26
|
+
- Precise control over experience
|
|
27
|
+
- Guaranteed quality
|
|
28
|
+
- Narrative coherence
|
|
29
|
+
- Specific memorable moments
|
|
30
|
+
|
|
31
|
+
**Weaknesses:**
|
|
32
|
+
- Time-intensive
|
|
33
|
+
- Limited replay value
|
|
34
|
+
- Players eventually memorize content
|
|
35
|
+
- Scaling difficult
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Why Integrate?
|
|
40
|
+
|
|
41
|
+
Neither approach alone serves all needs. Integration strategies leverage strengths of both.
|
|
42
|
+
|
|
43
|
+
### What PCG Struggles With
|
|
44
|
+
- Coherent multi-step narratives
|
|
45
|
+
- Meaningful puzzle design
|
|
46
|
+
- Guaranteed dramatic moments
|
|
47
|
+
- Consistent thematic experience
|
|
48
|
+
|
|
49
|
+
### What Handmade Adds
|
|
50
|
+
- Narrative anchors
|
|
51
|
+
- Quality guarantees
|
|
52
|
+
- Specific gameplay challenges
|
|
53
|
+
- Memorable set pieces
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Two Integration Models
|
|
58
|
+
|
|
59
|
+
### Vertical Integration
|
|
60
|
+
A handmade thread runs *through* procedural content.
|
|
61
|
+
|
|
62
|
+
**Characteristics:**
|
|
63
|
+
- Linear progression of handmade elements
|
|
64
|
+
- Procedural content surrounds the thread
|
|
65
|
+
- Players encounter handmade content in sequence
|
|
66
|
+
- Thread spans significant portion of game
|
|
67
|
+
|
|
68
|
+
**Best for:**
|
|
69
|
+
- Narrative sequences
|
|
70
|
+
- Multi-step puzzles
|
|
71
|
+
- Quest chains
|
|
72
|
+
- Story progression
|
|
73
|
+
|
|
74
|
+
**Examples:**
|
|
75
|
+
- FTL: Quest nodes distributed through procedural star map
|
|
76
|
+
- Spelunky: Secret item chain requiring precise sequence
|
|
77
|
+
|
|
78
|
+
### Horizontal Integration
|
|
79
|
+
Procedural and handmade content are *interchangeable* in the same slot.
|
|
80
|
+
|
|
81
|
+
**Characteristics:**
|
|
82
|
+
- Either type can appear in any given location
|
|
83
|
+
- Modular substitution
|
|
84
|
+
- No linear progression requirement
|
|
85
|
+
- Same slot, different fill
|
|
86
|
+
|
|
87
|
+
**Best for:**
|
|
88
|
+
- Room-by-room variety
|
|
89
|
+
- Guaranteed gameplay instances
|
|
90
|
+
- Quality floors
|
|
91
|
+
- Encounter variation
|
|
92
|
+
|
|
93
|
+
**Examples:**
|
|
94
|
+
- Dungeon Crawl Stone Soup: Vaults among procedural rooms
|
|
95
|
+
- Ultima Ratio Regum: Handmade variants mixed with procedural
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Case Study: FTL (Vertical)
|
|
100
|
+
|
|
101
|
+
### Structure
|
|
102
|
+
- Nodes on a star map
|
|
103
|
+
- Most nodes procedural
|
|
104
|
+
- Some nodes are quest-specific (handmade)
|
|
105
|
+
- Quest nodes appear in sequence across sectors
|
|
106
|
+
|
|
107
|
+
### Integration
|
|
108
|
+
- Procedural: Combat encounters, shops, empty space
|
|
109
|
+
- Handmade: Multi-part quests, story events, special encounters
|
|
110
|
+
|
|
111
|
+
### Player Experience
|
|
112
|
+
- Procedural nodes provide variety
|
|
113
|
+
- Quest nodes provide narrative progression
|
|
114
|
+
- Players choose path but hit quest nodes as they progress
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Case Study: Dungeon Crawl Stone Soup (Horizontal)
|
|
119
|
+
|
|
120
|
+
### Structure
|
|
121
|
+
- Procedurally generated dungeon floors
|
|
122
|
+
- "Vaults" are handmade rooms/areas
|
|
123
|
+
- Vaults appear among procedural content
|
|
124
|
+
|
|
125
|
+
### Integration
|
|
126
|
+
- Procedural: Standard dungeon rooms, corridors
|
|
127
|
+
- Handmade: Vaults with curated enemy/loot combinations
|
|
128
|
+
|
|
129
|
+
### Visibility
|
|
130
|
+
DCSS makes the difference **obvious**:
|
|
131
|
+
- Vaults visually distinct
|
|
132
|
+
- Players recognize human design
|
|
133
|
+
- Creates risk/reward choice ("explore vault?")
|
|
134
|
+
|
|
135
|
+
### Purpose
|
|
136
|
+
- Visual variety
|
|
137
|
+
- Gameplay pacing
|
|
138
|
+
- Optional challenge/reward
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Case Study: Spelunky (Vertical)
|
|
143
|
+
|
|
144
|
+
### Structure
|
|
145
|
+
- Procedurally generated platformer levels
|
|
146
|
+
- Hidden secret sequence spans entire game
|
|
147
|
+
- Specific items must be collected in order
|
|
148
|
+
|
|
149
|
+
### The Secret Chain
|
|
150
|
+
1. Find key + chest in Mines → get Udjat Eye
|
|
151
|
+
2. Udjat Eye reveals Black Market → get Ankh
|
|
152
|
+
3. Die with Ankh near Moai → get Hedjet
|
|
153
|
+
4. Kill Anubis → get Scepter
|
|
154
|
+
5. Use Scepter in Temple → access City of Gold
|
|
155
|
+
6. Get Book of Dead → reveals Hell entrance
|
|
156
|
+
|
|
157
|
+
### Integration
|
|
158
|
+
- Procedural: Level geometry, enemy placement, item locations
|
|
159
|
+
- Handmade: The sequence itself, specific item interactions
|
|
160
|
+
|
|
161
|
+
### Player Experience
|
|
162
|
+
- Most players never see the secret
|
|
163
|
+
- Skilled players work toward it
|
|
164
|
+
- Each step is procedurally placed but handmade in design
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Case Study: Ultima Ratio Regum (Horizontal, Hidden)
|
|
169
|
+
|
|
170
|
+
### Philosophy
|
|
171
|
+
Blur the line between procedural and handmade so players can't tell which is which.
|
|
172
|
+
|
|
173
|
+
### Implementation
|
|
174
|
+
- Most systems can output procedural OR handmade content
|
|
175
|
+
- Same slot might get generated altar or preset altar
|
|
176
|
+
- Player cannot distinguish source
|
|
177
|
+
|
|
178
|
+
### Goals
|
|
179
|
+
1. Handmade might be perceived as procedural (quality validation)
|
|
180
|
+
2. Procedural perceived as handmade (quality achievement)
|
|
181
|
+
3. Guaranteed interesting content without telegraphing it
|
|
182
|
+
|
|
183
|
+
### Example: Buildings
|
|
184
|
+
- Cathedrals: Highly procedural (few constraints, sprawling)
|
|
185
|
+
- Mansions: More handmade (many required rooms, specific layouts)
|
|
186
|
+
- Constraint level determines procedural/handmade ratio
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Key Design Questions
|
|
191
|
+
|
|
192
|
+
### Should Players Know?
|
|
193
|
+
|
|
194
|
+
**Make it obvious (DCSS approach):**
|
|
195
|
+
- Visual variety
|
|
196
|
+
- Risk/reward signaling
|
|
197
|
+
- Gameplay pacing tool
|
|
198
|
+
- Player can choose engagement level
|
|
199
|
+
|
|
200
|
+
**Hide it (URR approach):**
|
|
201
|
+
- Seamless experience
|
|
202
|
+
- Quality perception uniform
|
|
203
|
+
- No "content type" metagaming
|
|
204
|
+
- Procedural must meet handmade quality bar
|
|
205
|
+
|
|
206
|
+
### What Should Be Handmade?
|
|
207
|
+
|
|
208
|
+
**Vertical model uses handmade for:**
|
|
209
|
+
- Narrative threads
|
|
210
|
+
- Puzzle sequences
|
|
211
|
+
- Story progression
|
|
212
|
+
|
|
213
|
+
**Horizontal model uses handmade for:**
|
|
214
|
+
- Quality guarantees
|
|
215
|
+
- Specific gameplay moments
|
|
216
|
+
- Variety injection
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Practical Considerations
|
|
221
|
+
|
|
222
|
+
### Procedural Constraints
|
|
223
|
+
The more constraints on generation, the more similar outputs become.
|
|
224
|
+
|
|
225
|
+
**High constraints = handmade-like results**
|
|
226
|
+
- May need to shift toward handmade
|
|
227
|
+
- Example: Mansions require many rooms → layouts converge
|
|
228
|
+
|
|
229
|
+
**Low constraints = high variety**
|
|
230
|
+
- Procedural works well
|
|
231
|
+
- Example: Cathedrals with few requirements → high variety
|
|
232
|
+
|
|
233
|
+
### Development Timeline
|
|
234
|
+
- Procedural systems: High upfront cost, low marginal cost
|
|
235
|
+
- Handmade content: Linear cost per unit
|
|
236
|
+
- Integration requires both investments
|
|
237
|
+
|
|
238
|
+
### Testing Considerations
|
|
239
|
+
- Procedural needs testing across many generations
|
|
240
|
+
- Handmade needs testing of specific content
|
|
241
|
+
- Integration needs testing of transitions/interactions
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Future Directions
|
|
246
|
+
|
|
247
|
+
### What's Hard to Generate
|
|
248
|
+
- Multi-node narratives
|
|
249
|
+
- Complex puzzles
|
|
250
|
+
- Coherent story progression
|
|
251
|
+
|
|
252
|
+
These remain primarily handmade.
|
|
253
|
+
|
|
254
|
+
### What's Improving
|
|
255
|
+
- Room-level generation
|
|
256
|
+
- Enemy placement
|
|
257
|
+
- Loot distribution
|
|
258
|
+
- Environmental variety
|
|
259
|
+
|
|
260
|
+
Integration will likely expand as generation quality improves.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Summary
|
|
265
|
+
|
|
266
|
+
1. **Neither pure approach is sufficient** — Integration leverages both
|
|
267
|
+
2. **Vertical integration** — Handmade thread through procedural space (narrative, quests)
|
|
268
|
+
3. **Horizontal integration** — Interchangeable modules (rooms, encounters)
|
|
269
|
+
4. **Visibility is a design choice** — Obvious vs hidden integration serves different goals
|
|
270
|
+
5. **Constraints determine ratio** — More constraints → more handmade needed
|
|
271
|
+
6. **Quality bars matter** — Procedural must meet handmade standards for hidden integration
|