dokhacgiakhoa/game-design
Game design principles.
npx skills add https://github.com/Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI --skill game-design
> Design thinking for engaging games.
Every game needs a fun 30-second loop:
1. ACTION → Player does something
2. FEEDBACK → Game responds
3. REWARD → Player feels good
4. REPEAT
| Genre | Core Loop |
|-------|-----------|
| Platformer | Run → Jump → Land → Collect |
| Shooter | Aim → Shoot → Kill → Loot |
| Puzzle | Observe → Think → Solve → Advance |
| RPG | Explore → Fight → Level → Gear |
| Section | Content |
|---------|---------|
| Pitch | One-sentence description |
| Core Loop | 30-second gameplay |
| Mechanics | How systems work |
| Progression | How player advances |
| Art Style | Visual direction |
| Audio | Sound direction |
| Type | Driven By |
|------|-----------|
| Achiever | Goals, completion |
| Explorer | Discovery, secrets |
| Socializer | Interaction, community |
| Killer | Competition, dominance |
| Schedule | Effect | Use |
|----------|--------|-----|
| Fixed | Predictable | Milestone rewards |
| Variable | Addictive | Loot drops |
| Ratio | Effort-based | Grind games |
Too Hard → Frustration → Quit
Too Easy → Boredom → Quit
Just Right → Flow → Engagement
| Strategy | How |
|----------|-----|
| Dynamic | Adjust to player skill |
| Selection | Let player choose |
| Accessibility | Options for all |
| Type | Example |
|------|---------|
| Skill | Player gets better |
| Power | Character gets stronger |
| Content | New areas unlock |
| Story | Narrative advances |
| ❌ Don't | ✅ Do |
|----------|-------|
| Design in isolation | Playtest constantly |
| Polish before fun | Prototype first |
| Force one way to play | Allow player expression |
| Punish excessively | Reward progress |
> Remember: Fun is discovered through iteration, not designed on paper.
Take dokhacgiakhoa/game-design from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.