Skip to content
cccskills
FreePublished on GitHub

godot-genre-horror

Expert blueprint for horror games: sawtooth tension pacing, Director macro-AI, sensory predator AI, sanity/stress FX, and scarcity loops. Use when building psychological/survival horror, dual-brain stalker AI (cheating Director + honest LoS/sound), flashlight/fog atmosphere, or safe-room saves. Keywords: horror_game, tension_pacing, director_system, sensory_perception, sanity_system, volumetric_fog, AI_reaction_time.

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (17)

  • SKILL.md15.7 KB
  • references/expert-horror-patterns.md4.5 KB
  • references/migration-notes.md3.9 KB
  • scripts/async_scare_loader.gd1.6 KB
  • scripts/director_pacing.gd3.5 KB
  • scripts/flashlight_flicker.gd1.7 KB
  • scripts/fog_claus_intensifier.gd1.6 KB
  • scripts/horror_patterns.gd5.5 KB
  • scripts/inventory_data_storage.gd1.4 KB
  • scripts/item_state_duplicator.gd1.4 KB
  • scripts/monster_los_check.gd1.8 KB
  • scripts/offscreen_logic_suspender.gd1.5 KB
  • scripts/optimized_horror_state_machine.gd1.7 KB
  • scripts/predator_stalking_ai.gd3.0 KB
  • scripts/sanity_manager.gd2.5 KB
  • scripts/sanity_shader_manager.gd1.6 KB
  • scripts/spatial_noise_emitter.gd1.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

NEVER Do (Expert Anti-Patterns)

Atmosphere & Tension

  • NEVER maintain 100% tension at all times; strictly use a Sawtooth Pacing model (buildup → peak/scare → dedicated relief period) to prevent player "numbing" and exhaustion.
  • NEVER rely on jump-scares as the primary source of horror; focus on atmosphere, spatial audio cues, and the anticipation of a threat to build genuine dread.
  • NEVER make environments pitch black to the point of frustrating navigation; darkness should obscure threats (details), not the floor. Use rim lighting or a limited-battery flashlight.
  • NEVER grant the player unlimited resources; survival horror relies on Scarcity. Limited battery, rare ammo, and slow animations are mandatory to force stressful decision-making.

AI & Senses

  • NEVER allow AI to detect the player instantly; implement a Suspicion Meter or a 1-3s reaction window before the AI enters full aggression to avoid "unfair cheating" feel.
  • NEVER use predictable AI paths; an enemy on a perfect loop is a puzzle, not a predator. Use the Director to periodically "hint" a new destination near the player.
  • NEVER use Area3D overlap signals for instant, frame-perfect Line-of-Sight (LoS) checks; use nodeless raycasting via PhysicsDirectSpaceState3D.intersect_ray() for fixed-physics sync.
  • NEVER calculate complex AI vision or pathfinding for monsters far outside the camera's frustum; use VisibleOnScreenNotifier3D to disable processing logic.
  • NEVER leave navigation avoidance layers unconfigured on chasing monsters; explicitly assign avoidance masks to prevent visual "stacking" in tight corridors.

Technical & Scarcity

  • NEVER use the visual SceneTree (like GridContainer children) as the source of truth for inventory; strictly maintain a typed memory structure like Dictionary[StringName, Resource].
  • NEVER rely on instantiating standard Nodes to store base item stats/definitions; use custom Resource scripts to reduce memory overhead and allow direct Inspector editing.
  • NEVER forget to call duplicate(true) on an item's Resource when adding to inventory; if items have mutable states (ammo/durability), you will overwrite the global resource otherwise.
  • NEVER parse massive JSON save files synchronously; strictly offload heavy parsing to the WorkerThreadPool to prevent auto-save freezes.
  • NEVER use standard strings for hot-path IDs (states, item types); strictly use StringName (&"chasing") for pointer-speed comparisons.
  • NEVER evaluate exact floating-point equality (sanity == 0.0); strictly use is_equal_approx() or threshold checks for deterministic triggers.
  • NEVER write screen-reading shaders expecting Godot 3 SCREEN_TEXTURE; strictly use sampler2D with hint_screen_texture.
  • NEVER instantiate detailed monster meshes or lights without culling; strictly configure visibility_range for automatic HLOD efficiency.
  • NEVER rely on AnimationPlayer for random flickering; use Tween for programmatic, clean energy manipulation.
  • NEVER load heavy scare scenes or 4K textures synchronously via load(); strictly use ResourceLoader.load_threaded_request() to prevent frame stalls.
  • NEVER scale CollisionShape3D non-uniformly; strictly adjust internal shape resource parameters (radius, height) to prevent erratic physics.
  • NEVER perform synchronous, heavy file I/O in a Safe Room; strictly use Thread and Mutex to handle background saving without stalling the main game thread.
  • NEVER check for hiding spot types by casting; strictly use Object metadata (set_meta) for performant, decoupled AI queries.

🛠 Expert Components (scripts/)

Original Expert Patterns (MANDATORY at architecture steps)

  • director_pacing.gd - Invisible orchestrator managing the "Sawtooth" tension wave and relief periods. MANDATORY before wiring any pacing/Director.
  • predator_stalking_ai.gd - Dual-brain stalker (Director hints + honest senses) with view-cone avoidance. MANDATORY before implementing predator AI.

Modular Components


Core Loop

  1. Explore: Player navigates a threatening environment.
  2. Sense: Player hears/sees signs of danger.
  3. React: Player hides, runs, or fights (disempowered combat).
  4. Survive: Player reaches safety or solves a puzzle.
  5. Relief: Brief moment of calm before tension builds again.

Skill Chain

PhaseSkillsPurpose
1. Atmospheregodot-3d-lighting, godot-audio-systemsVolumetric fog, dynamic shadows, spatial audio
2. AIgodot-state-machine-advanced, godot-navigation-pathfinding, godot-raycasting-queriesHunter AI, honest LoS/sound
3. Playergodot-camera-systems, godot-genre-stealth, godot-physics-3dLean/shake, hiding, CharacterBody3D movement
4. Scarcitygodot-inventory-systemLimited battery, ammo, health
5. Logic / savesthis skill's Director scripts + godot-save-load-systemsSawtooth pacing + threaded safe-room saves

Do-NOT-Load (by fantasy)

Fantasy focusLoadDo NOT load
Atmosphere / fog / flashlight onlyfog_claus_intensifier.gd, flashlight_flicker.gdPredator AI, LoS, noise, state machine
Stalker / dual-brain AIdirector_pacing.gd, predator_stalking_ai.gd, monster_los_check.gd, spatial_noise_emitter.gdSanity shaders, inventory duplicator, scare loader
Sanity / stress FXsanity_manager.gd, sanity_shader_manager.gdInventory scarcity scripts, async scare loader
Scarcity / inventory truthinventory_data_storage.gd, item_state_duplicator.gdFog intensifier, sanity shaders
Hitch-free scare assetsasync_scare_loader.gdFull Director + sanity stack

Architecture Overview

1. The Director System (Macro AI)

Controls pacing so players never stay at 100% tension.

MANDATORY read: director_pacing.gd — do not paste a one-off tension enum. Wire Director events to near-player investigation targets, never instant on-player teleports during quiet phases.

2. Sensory Perception (Micro AI)

Honest monster senses (vision + sound) that the Director may only hint, never hard-cheat.

MANDATORY reads: predator_stalking_ai.gd for dual-brain orchestration; monster_los_check.gd + spatial_noise_emitter.gd for LoS/sound. Prefer PhysicsDirectSpaceState3D.intersect_ray() over Area overlap for vision.

3. Sanity / Stress System

Distorting the world based on fear.

Load sanity_manager.gd + sanity_shader_manager.gd for value → shake/bus/shader pipelines. Keep thresholds on is_equal_approx / bands, never sanity == 0.0.

Key Mechanics Implementation

Pacing (The Sawtooth Wave)

Horror needs peaks and valleys.

  1. Safety: Save room.
  2. Unease: Strange noise, lights flicker.
  3. Dread: Monster is known to be close.
  4. Terror: Chase sequence / Combat.
  5. 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.

3. Hiding-Spot Metadata System

Use set_meta / groups — MANDATORY: predator_stalking_ai.gd + peer godot-genre-stealth. Do not paste hiding-spot tutorials inline.

4. Adaptive Audio (Stress Muffling)

Bus LPF / volume from fear — MANDATORY: sanity_manager.gd + peer godot-audio-systems.

5. Safe-Room Multithreaded Save

Threaded checkpoint I/O — MANDATORY: peer godot-save-load-systems (Thread/Mutex / WorkerThreadPool). Never sync FileAccess on the main thread in a safe room.

Expert knowledge (on demand)

LLM-ignorance rule: If a general agent would not know it before reading, load the reference — never delete expert deltas.

Reference

Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.

Official Documentation

  • Volumetric fog and fog volumes — density/albedo and light-dependent scattering for dread atmosphere.
  • Environment and post-processing — WorldEnvironment tonemap, glow, and fog modes that carry horror looks.
  • Lights and shadows — SpotLight3D flashlight cones, soft shadows, and bias for dark interiors.
  • Audio buses — LowPass/Reverb bus effects for stress muffling and spatial dread.
  • Ray-casting — PhysicsDirectSpaceState intersect_ray for honest monster LoS (not Area overlap).
  • Navigation introduction (3D) — predator chase paths and avoidance masks in tight corridors.
  • Background loading — ResourceLoader threaded requests so jump-scare assets never hitch.
  • Screen-reading shaders — hint_screen_texture sanity distortion (not Godot 3 SCREEN_TEXTURE).
  • Visibility ranges — GeometryInstance3D HLOD/culling for expensive monster meshes and lights.
  • Saving games — FileAccess patterns for safe-room checkpoints without inventing a format.
  • Using threads — Thread/Mutex and WorkerThreadPool for background saves and heavy parse work.
  • Resources — Resource definitions and duplicate(true) so mutable item state never aliases globals.

Related Skills

Prerequisites

  • godot-project-foundations — scene tree, autoloads, and import basics before Director/WorldEnvironment wiring.
  • godot-3d-lighting — volumetric fog, SpotLight3D flashlights, and shadow budgets that define horror atmosphere.
  • godot-audio-systems — buses, spatial emitters, and effect stacks the sanity/stress systems modulate.

Complements

Downstream / consumers

Master

  • godot-master — library router and mirrored module entry for cross-skill discovery.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Bevy ECS skill for 2D sprite animation. Keywords: Bevy, sprite, animation, AnimationPlayer, AnimationClip, 2D.

The English summary is being prepared. Showing the original description.

thedivergentai/Game-Dev-Agentic-Skills888Updated Oct 17, 2026

Spawn and tune Bevy 0.20 directional, point, and spot lights, cascade shadows, distance fog, and a nearest-light shadow budget. Use when a 3D scene needs a sun, local lights, or fog on the camera. Keywords: DirectionalLight, PointLight, SpotLight, CascadeShadowConfig, DistanceFog, bevy_light.

The English summary is being prepared. Showing the original description.

thedivergentai/Game-Dev-Agentic-Skills888Updated Oct 17, 2026

Bevy ECS skill for PBR materials. Keywords: Bevy, StandardMaterial, PBR, material, ExtendedMaterial.

The English summary is being prepared. Showing the original description.

thedivergentai/Game-Dev-Agentic-Skills888Updated Oct 17, 2026

Bevy ECS skill for 3D level assembly. Keywords: Bevy, level, scene, mesh, world, ECS.

The English summary is being prepared. Showing the original description.

thedivergentai/Game-Dev-Agentic-Skills888Updated Oct 17, 2026

Bevy ECS skill for abilities. Keywords: Bevy, ability, cooldown, ECS, gameplay.

The English summary is being prepared. Showing the original description.

thedivergentai/Game-Dev-Agentic-Skills888Updated Oct 17, 2026

Rewrite Bevy 2D actors and cameras into 3D meshes and Camera3d while keeping gameplay components. Use when a Bevy 2D game should gain a perspective camera, mesh draw, and a planar velocity lifted onto XZ. Keywords: Camera2d, Camera3d, Sprite, Mesh3d, StandardMaterial, WishVelocity.

The English summary is being prepared. Showing the original description.

thedivergentai/Game-Dev-Agentic-Skills888Updated Oct 17, 2026

See all skills by thedivergentai

Report a problem with this skill