@jarrodmedrano/claude-skills 1.0.2 → 1.0.3
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/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/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/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,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
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Themed Level Environments
|
|
2
|
+
|
|
3
|
+
Based on Chapter 5: "Hell, Hyboria, and Disneyland" by Scott Rogers.
|
|
4
|
+
|
|
5
|
+
## The Evolution of Themed Levels
|
|
6
|
+
|
|
7
|
+
Themed video game levels are environments designed to a particular subject matter, bringing together: character, location, story, enemies, mechanics, hazards, art, events, and music.
|
|
8
|
+
|
|
9
|
+
> "These themed levels are the playgrounds of our dreams."
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## The Ten Classic Tropes
|
|
14
|
+
|
|
15
|
+
### 1. Outer Space
|
|
16
|
+
**Origin:** Spacewar! (1961) and the black CRT screen
|
|
17
|
+
|
|
18
|
+
**Why it works:**
|
|
19
|
+
- Black screens naturally suggest space
|
|
20
|
+
- Vector-drawn stars look great on CRTs
|
|
21
|
+
- Simple geometric ships (no animation needed)
|
|
22
|
+
- Physics-based gameplay natural
|
|
23
|
+
- Infinite bounds make sense
|
|
24
|
+
|
|
25
|
+
**Modern usage:** Star Fox, Geometry Wars, space stations
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### 2. Fire and Ice
|
|
30
|
+
**Origin:** Dragon's Lair (1983) for fire; Ghost 'N Goblins (1984) for ice
|
|
31
|
+
|
|
32
|
+
**Why they work:**
|
|
33
|
+
- Killing with fire = collision box + art overlay (cheap to implement)
|
|
34
|
+
- Low-friction surfaces = physics tweak
|
|
35
|
+
- Perfect timing puzzles (break player rhythm)
|
|
36
|
+
- Wide array of thematic enemies
|
|
37
|
+
- Strong color palette (red/blue) for visual distinction
|
|
38
|
+
|
|
39
|
+
**Design advantages:**
|
|
40
|
+
- Fire: Lava pits, flame jets, fire-breathing enemies
|
|
41
|
+
- Ice: Slippery surfaces, icicle hazards, yetis, hypothermia
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### 3. Dungeon/Cavern/Tomb
|
|
46
|
+
**Origin:** Colossal Cave Adventure (1976), Rogue (1980)
|
|
47
|
+
|
|
48
|
+
**Why it works:**
|
|
49
|
+
- Tileable wall textures (memory efficient)
|
|
50
|
+
- Traps without explanation needed
|
|
51
|
+
- Treasure without justification needed
|
|
52
|
+
- Easily repeatable art assets
|
|
53
|
+
- Expected danger creates tension
|
|
54
|
+
|
|
55
|
+
**Modern usage:** Every RPG ever, roguelikes, action-adventures
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### 4. Factory
|
|
60
|
+
**Origin:** Donkey Kong (1981), Modern Times (1936 film influence)
|
|
61
|
+
|
|
62
|
+
**Why it works:**
|
|
63
|
+
- Moving obstacle courses
|
|
64
|
+
- Easily combined and repurposed hazards
|
|
65
|
+
- Scalable difficulty through speed/complexity
|
|
66
|
+
- Mechanics adaptable to any setting
|
|
67
|
+
|
|
68
|
+
**Factory mechanics in non-factories:**
|
|
69
|
+
- Moving platforms (tombs, space stations)
|
|
70
|
+
- Conveyer belts (any industrial setting)
|
|
71
|
+
- Turning gears (clockwork, machinery)
|
|
72
|
+
|
|
73
|
+
**Modern usage:** Super Mario Galaxy, Little Big Planet
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### 5. Jungle
|
|
78
|
+
**Origin:** Pitfall! (1982)
|
|
79
|
+
|
|
80
|
+
**Creation story:**
|
|
81
|
+
> "I drew a stick figure... put him on a path... Where is the path? Let's put it in a jungle. Why is he running? [draw treasures, enemies]" — David Crane
|
|
82
|
+
|
|
83
|
+
**Why it works:**
|
|
84
|
+
- Flexibility of dungeons without dull colors
|
|
85
|
+
- Exotic traps (quicksand, pits)
|
|
86
|
+
- Exotic creatures (crocodiles, snakes, scorpions)
|
|
87
|
+
- Colorful outdoor environment
|
|
88
|
+
- Fluid movement (vines, branches, logs)
|
|
89
|
+
|
|
90
|
+
**Mechanics:** Swinging vines, tree platforms, rivers with moving logs
|
|
91
|
+
|
|
92
|
+
**Modern usage:** Crysis, Uncharted
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 6. Spooky
|
|
97
|
+
**Origin:** Haunted House (1972 electromechanical), Ghost 'N Goblins (1984)
|
|
98
|
+
|
|
99
|
+
**Why it works:**
|
|
100
|
+
- Perfect for mood and story
|
|
101
|
+
- Most adaptable trope
|
|
102
|
+
- Combines easily with any other theme
|
|
103
|
+
|
|
104
|
+
**Spooky combinations:**
|
|
105
|
+
- Space + Spooky = Derelict spacecraft
|
|
106
|
+
- Fire + Spooky = Hell
|
|
107
|
+
- Urban + Spooky = Haunted city
|
|
108
|
+
|
|
109
|
+
**The survival horror genre:** Sweet Home (1989) → Resident Evil, Silent Hill
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### 7. Pirate
|
|
114
|
+
**Origin:** Pirates of the Caribbean (Disneyland attraction, 1967)
|
|
115
|
+
|
|
116
|
+
**Why it works:**
|
|
117
|
+
- High-action gameplay ready
|
|
118
|
+
- Melee combat natural
|
|
119
|
+
- Treasure = clear rewards
|
|
120
|
+
- Ships = interesting level geometry
|
|
121
|
+
- Always pairs well with spooky (skeleton pirates)
|
|
122
|
+
|
|
123
|
+
**Genre spread:** Simulation (Sid Meier's Pirates), platformer (Hook), action (Black Kat), puzzle (Zack & Wiki)
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### 8. Gritty Urban
|
|
128
|
+
**Origin:** Double Dragon (1987), influenced by Streets of Fire (1984)
|
|
129
|
+
|
|
130
|
+
**Why it works:**
|
|
131
|
+
- Real-world familiarity
|
|
132
|
+
- Players understand context immediately
|
|
133
|
+
- Modern stand-in for dungeon exploration
|
|
134
|
+
- Can be improved or destroyed by player
|
|
135
|
+
|
|
136
|
+
**The gangster game genre:** GTA, Saints Row
|
|
137
|
+
- Sandbox worlds modeled on real cities
|
|
138
|
+
- Player choice: improve or destroy
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### 9. Space Station
|
|
143
|
+
**Origin:** Major Havoc (1983)
|
|
144
|
+
|
|
145
|
+
**Why it works:**
|
|
146
|
+
- Sci-fi dungeon equivalent
|
|
147
|
+
- Tech-based mechanics (force fields, airlocks)
|
|
148
|
+
- Alien/robot enemies expected
|
|
149
|
+
- Spectacular visual effects possible
|
|
150
|
+
|
|
151
|
+
**Influence:** Aliens (1986 film) → System Shock, Halo, Dead Space
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### 10. Sewer
|
|
156
|
+
**Origin:** Mario Bros. (1983)
|
|
157
|
+
|
|
158
|
+
**Creation:** Miyamoto was told his character looked more like a plumber than a carpenter. He put Mario in "a crab/turtle/firefly-infested sewer."
|
|
159
|
+
|
|
160
|
+
**Why it works:**
|
|
161
|
+
- Modern dungeon stand-in
|
|
162
|
+
- Deadly hazards (rats, alligators, toxic water)
|
|
163
|
+
- Factory mechanics (fans, platforms)
|
|
164
|
+
- Pipes provide entrance/exit points
|
|
165
|
+
|
|
166
|
+
**Modern usage:** Metal Gear Solid, Oblivion, Left 4 Dead
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## The Mexican Pizza Technique
|
|
171
|
+
|
|
172
|
+
**Definition:** Combine two different tropes to create something fresh.
|
|
173
|
+
|
|
174
|
+
**Origin story:**
|
|
175
|
+
> "In 2001, Taco Bell introduced the Mexican pizza... Growing up in San Diego, I knew what Mexican food was and... what pizza was. But what the heck was a Mexican pizza?"
|
|
176
|
+
|
|
177
|
+
### Examples
|
|
178
|
+
|
|
179
|
+
| Combination | Result |
|
|
180
|
+
|-------------|--------|
|
|
181
|
+
| Fire + Graveyard | Maximo: Ghosts to Glory |
|
|
182
|
+
| Jungle + Urban | The Last of Us, Enslaved |
|
|
183
|
+
| Pirate + Zombie | Plants vs. Zombies 2 |
|
|
184
|
+
| Space + Sewer | Aliens-style vent crawling |
|
|
185
|
+
| Medieval + Hell | Dante's Inferno |
|
|
186
|
+
|
|
187
|
+
### Why It Works
|
|
188
|
+
- Players recognize familiar elements
|
|
189
|
+
- Combination creates novelty
|
|
190
|
+
- Mechanics from both themes available
|
|
191
|
+
- Visual distinctiveness
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## The Disneyland Influence
|
|
196
|
+
|
|
197
|
+
### Themed Lands Concept
|
|
198
|
+
Walt Disney's park design philosophy:
|
|
199
|
+
> "I don't want the public to see the real world they live in while they're in the park. I want them to feel like they are in another world."
|
|
200
|
+
|
|
201
|
+
### Dark Ride Design
|
|
202
|
+
Pirates of the Caribbean, Haunted Mansion:
|
|
203
|
+
- Temperature-controlled environments
|
|
204
|
+
- Vehicles directing view
|
|
205
|
+
- Audio-animatronics synchronized to tracks
|
|
206
|
+
- Complete immersion in artificial worlds
|
|
207
|
+
|
|
208
|
+
### Application to Games
|
|
209
|
+
- Complete thematic consistency
|
|
210
|
+
- Every element supports the theme
|
|
211
|
+
- Transitions between areas managed carefully
|
|
212
|
+
- Player as "guest" experiencing designed journey
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## The Hyboria Model
|
|
217
|
+
|
|
218
|
+
Robert E. Howard's Conan world: Ancient civilizations packed into a compact continent.
|
|
219
|
+
|
|
220
|
+
**Design advantages:**
|
|
221
|
+
- Travel time compressed
|
|
222
|
+
- Any culture accessible
|
|
223
|
+
- Themed regions with distinct identities
|
|
224
|
+
|
|
225
|
+
**D&D Influence:** Dungeons & Dragons adopted themed worlds → influenced video games → Gauntlet, Everquest, World of Warcraft
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Boss Enemies and Themed Levels
|
|
230
|
+
|
|
231
|
+
### The Megaman Pattern
|
|
232
|
+
Boss enemies' lairs match their appearances:
|
|
233
|
+
- Fire Man lives in volcanic furnace
|
|
234
|
+
- Ice Man lives in frigid lair
|
|
235
|
+
- Bubble Man lives underwater
|
|
236
|
+
|
|
237
|
+
### Design Synergy
|
|
238
|
+
- Boss inspires level theme
|
|
239
|
+
- Level theme supports boss mechanics
|
|
240
|
+
- Player expectations set by environment
|
|
241
|
+
- Thematic consistency reinforces both
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Building Believable Worlds
|
|
246
|
+
|
|
247
|
+
### Sustaining Disbelief
|
|
248
|
+
> "An important part about building a fantasy world is sustaining disbelief. Some of the best games... have one thing in common; you feel like the world was there despite you."
|
|
249
|
+
|
|
250
|
+
### World-Building Questions
|
|
251
|
+
- Why does this environment exist?
|
|
252
|
+
- Who built/shaped it?
|
|
253
|
+
- What happened here before the player arrived?
|
|
254
|
+
- What would happen if the player never came?
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Summary
|
|
259
|
+
|
|
260
|
+
1. **Classic tropes exist for practical reasons** — Technical advantages, clear mechanics
|
|
261
|
+
2. **Combine tropes for freshness** — Mexican Pizza technique
|
|
262
|
+
3. **Disneyland model** — Complete thematic immersion
|
|
263
|
+
4. **Boss/level synergy** — Environment and enemy reinforce each other
|
|
264
|
+
5. **World consistency** — Environment should feel like it exists independent of player
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jarrodmedrano/claude-skills",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Reusable Claude Code skills for web development projects",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
"files": [
|
|
24
24
|
".claude/skills/**/*",
|
|
25
25
|
".claude/commands/**/*",
|
|
26
|
+
".claude/agents/**/*",
|
|
27
|
+
"templates/**/*",
|
|
26
28
|
"scripts/**/*",
|
|
27
29
|
"bin/**/*",
|
|
28
30
|
"README.md"
|
package/scripts/install.js
CHANGED
|
@@ -38,8 +38,10 @@ function copySkills() {
|
|
|
38
38
|
|
|
39
39
|
const skillsTargetDir = path.join(projectRoot, '.claude', 'skills');
|
|
40
40
|
const commandsTargetDir = path.join(projectRoot, '.claude', 'commands');
|
|
41
|
+
const agentsTargetDir = path.join(projectRoot, '.claude', 'agents');
|
|
41
42
|
const skillsSourceDir = path.join(packageRoot, '.claude', 'skills');
|
|
42
43
|
const commandsSourceDir = path.join(packageRoot, '.claude', 'commands');
|
|
44
|
+
const agentsSourceDir = path.join(packageRoot, '.claude', 'agents');
|
|
43
45
|
|
|
44
46
|
// Create .claude directories if they don't exist
|
|
45
47
|
if (!fs.existsSync(skillsTargetDir)) {
|
|
@@ -52,7 +54,12 @@ function copySkills() {
|
|
|
52
54
|
console.log('✓ Created .claude/commands directory');
|
|
53
55
|
}
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
if (!fs.existsSync(agentsTargetDir)) {
|
|
58
|
+
fs.mkdirSync(agentsTargetDir, { recursive: true });
|
|
59
|
+
console.log('✓ Created .claude/agents directory');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Copy skills, commands, and agents
|
|
56
63
|
try {
|
|
57
64
|
if (fs.existsSync(skillsSourceDir)) {
|
|
58
65
|
copyRecursive(skillsSourceDir, skillsTargetDir);
|
|
@@ -64,6 +71,11 @@ function copySkills() {
|
|
|
64
71
|
console.log(`✓ Commands copied to ${commandsTargetDir}`);
|
|
65
72
|
}
|
|
66
73
|
|
|
74
|
+
if (fs.existsSync(agentsSourceDir)) {
|
|
75
|
+
copyRecursive(agentsSourceDir, agentsTargetDir);
|
|
76
|
+
console.log(`✓ Agents copied to ${agentsTargetDir}`);
|
|
77
|
+
}
|
|
78
|
+
|
|
67
79
|
console.log('\n✓ Claude Code skills installed successfully!');
|
|
68
80
|
console.log('\nAvailable skills:');
|
|
69
81
|
console.log(' /new-website - Create frontend projects');
|
|
@@ -74,6 +86,9 @@ function copySkills() {
|
|
|
74
86
|
console.log(' /code-review - Code review workflows');
|
|
75
87
|
console.log(' /design-review - Design review workflows');
|
|
76
88
|
console.log(' /security-review - Security review workflows');
|
|
89
|
+
console.log('\nAvailable agents:');
|
|
90
|
+
console.log(' design-review - Design review subagent');
|
|
91
|
+
console.log(' pragmatic-code-review - Code review subagent');
|
|
77
92
|
console.log('\nTo update later, run: npm run update-skills');
|
|
78
93
|
} catch (error) {
|
|
79
94
|
console.error('Error copying skills:', error.message);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# GitHub Actions Templates
|
|
2
|
+
|
|
3
|
+
This directory contains GitHub Actions workflow templates for automating Claude Code reviews in your CI/CD pipeline.
|
|
4
|
+
|
|
5
|
+
## Available Templates
|
|
6
|
+
|
|
7
|
+
### Code Review Workflows
|
|
8
|
+
|
|
9
|
+
- **`claude-code-review.yml`** - Basic Claude Code review workflow
|
|
10
|
+
- **`claude-code-review-custom.yml`** - Customizable Claude Code review workflow with advanced options
|
|
11
|
+
|
|
12
|
+
### Security Review Workflow
|
|
13
|
+
|
|
14
|
+
- **`security.yml`** - Automated security review workflow
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
To use these templates in your project:
|
|
19
|
+
|
|
20
|
+
1. Copy the desired `.yml` file to your repository's `.github/workflows/` directory:
|
|
21
|
+
```bash
|
|
22
|
+
cp templates/github-actions/claude-code-review.yml .github/workflows/
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
2. Set up required secrets in your GitHub repository settings:
|
|
26
|
+
- `CLAUDE_CODE_OAUTH_TOKEN` or `CLAUDE_API_KEY`
|
|
27
|
+
|
|
28
|
+
3. Customize the workflow as needed for your project
|
|
29
|
+
|
|
30
|
+
4. The workflow will automatically run on pull requests
|
|
31
|
+
|
|
32
|
+
## Documentation
|
|
33
|
+
|
|
34
|
+
For more information about setting up Claude Code in GitHub Actions, see:
|
|
35
|
+
- [Code Review Documentation](../../.claude/commands/code-review/README.md)
|
|
36
|
+
- [Security Review Documentation](../../.claude/commands/security-review/README.md)
|
|
File without changes
|
|
File without changes
|
/package/{.claude/commands/code-review → templates/github-actions}/claude-code-review-custom.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|