godot-genre-horror
0
总安装量
4
周安装量
安装命令
npx skills add https://github.com/thedivergentai/gd-agentic-skills --skill godot-genre-horror
Agent 安装分布
opencode
4
gemini-cli
4
codex
4
github-copilot
3
kimi-cli
3
Skill 文档
Genre: Horror
Expert blueprint for horror games balancing tension, atmosphere, and player agency.
NEVER Do
- NEVER maintain constant tension â Players get numb. Enforce “Relief” periods (safe rooms, calm music) between scares for sawtooth pacing.
- NEVER make AI instantly detect player â Instant detection feels unfair. Give AI 1-3s reaction time or “suspicion meter” before full aggro.
- NEVER make environments too dark â Darkness should obscure details, not navigation. Use rim lighting or weak flashlight.
- NEVER rely on jump scares alone â Jump scares lose effectiveness after 2-3 uses. Build dread through atmosphere and anticipation.
- NEVER give players too much power â Unlimited ammo/healing breaks horror. Scarcity creates tension (limited battery, health, ammo).
Available Scripts
MANDATORY: Read the appropriate script before implementing the corresponding pattern.
predator_stalking_ai.gd
AI that stalks player while avoiding line-of-sight. Checks player view cone via dot product, retreats perpendicular when detected, maintains stalking distance.
Core Loop
- Explore: Player navigates a threatening environment.
- Sense: Player hears/sees signs of danger.
- React: Player hides, runs, or fights (disempowered combat).
- Survive: Player reaches safety or solves a puzzle.
- Relief: Brief moment of calm before tension builds again.
Skill Chain
| Phase | Skills | Purpose |
|---|---|---|
| 1. Atmosphere | godot-3d-lighting, godot-audio-systems |
Volumetric fog, dynamic shadows, spatial audio |
| 2. AI | godot-state-machine-advanced, godot-navigation-pathfinding |
Hunter AI, sensory perception |
| 3. Player | characterbody-3d |
Leaning, hiding, slow movement |
| 4. Scarcity | godot-inventory-system |
Limited battery, ammo, health |
| 5. Logic | game-manager |
The “Director” system controlling pacing |
Architecture Overview
1. The Director System (Macro AI)
Controls the pacing of the game to prevent constant exhaustion.
# director.gd
extends Node
enum TensionState { BUILDUP, PEAK, RELIEF, QUIET }
var current_tension: float = 0.0
var player_stress_level: float = 0.0
func _process(delta: float) -> void:
match current_tension_state:
TensionState.BUILDUP:
current_tension += 0.5 * delta
if current_tension > 75.0:
trigger_event()
TensionState.RELIEF:
current_tension -= 2.0 * delta
func trigger_event() -> void:
# Hints the Monster AI to check a room NEAR the player, not ON the player
monster_ai.investigate_area(player.global_position + Vector3(randf(), 0, randf()) * 10)
2. Sensory Perception (Micro AI)
The monster’s actual senses.
# sensory_component.gd
extends Area3D
signal sound_heard(position: Vector3, volume: float)
signal player_spotted(position: Vector3)
func check_vision(target: Node3D) -> bool:
var space_state = get_world_3d().direct_space_state
var query = PhysicsRayQueryParameters3D.create(global_position, target.global_position)
var result = space_state.intersect_ray(query)
if result and result.collider == target:
return true
return false
3. Sanity / Stress System
Distorting the world based on fear.
# sanity_manager.gd
func update_sanity(amount: float) -> void:
current_sanity = clamp(current_sanity + amount, 0.0, 100.0)
# Effect: Camera Shake
camera_shake_intensity = (100.0 - current_sanity) * 0.01
# Effect: Audio Distortion
audio_bus.get_effect(0).drive = (100.0 - current_sanity) * 0.05
Key Mechanics Implementation
Pacing (The Sawtooth Wave)
Horror needs peaks and valleys.
- Safety: Save room.
- Unease: Strange noise, lights flicker.
- Dread: Monster is known to be close.
- Terror: Chase sequence / Combat.
- Relief: Escape to Safety.
The “Dual Brain” AI
- Director (All-knowing): Cheats to keep the alien relevant (teleports it closer if far away, guides it to player’s general area).
- Alien (Senses only): Honest AI. Must actually see/hear the player to attack.
Godot-Specific Tips
- Volumetric Fog: Use
WorldEnvironment->VolumetricFogfor instant atmosphere. Animatedensityfor dynamic dread. - Light Occluder 2D: For 2D horror, shadow casting is essential.
- AudioBus: Use
ReverbandLowPassFilteron the Master bus, controlled by scripts, to simulate “muffled” hearing when scared or hiding. - AnimationTree: Use blend spaces to smooth transitions between “Sneak”, “Walk”, and “Run” animations.
Common Pitfalls
- Constant Tension: Player gets numb. Fix: Enforce “Relief” periods where nothing happens.
- Frustrating AI: AI sees player instantly. Fix: Give AI a “reaction time” or “suspicion meter” before full aggro.
- Too Dark: Player can’t see anything. Fix: Darkness should obscure details, not navigation. Use rim lighting or a weak flashlight.
Reference
- Master Skill: godot-master