Expert blueprint for open world games including chunk-based streaming (load/unload regions dynamically), floating origin (prevent precision jitter beyond 5000 units), HLOD (hierarchical LOD for distant meshes), persistent state (track entity changes across unloaded chunks), POI discovery systems (compass, markers), and threaded loading (prevent stutters). Use for RPGs, sandboxes, or exploration games. Trigger keywords: open_world, chunk_streaming, floating_origin, HLOD, persistent_state, POI_discovery, threaded_loading.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-genre-open-world
Expert blueprint for open worlds balancing scale, performance, and player engagement.
ResourceLoader.load_threaded_request() to prevent "Loading Hitches" and frame freezes.call_deferred() to safely apply background thread chunk instantiations back to the main thread.queue_free() and nullify references to prevent Out-Of-Memory (OOM) crashes.store_var) for high-speed I/O._process(); strictly use _physics_process() for deterministic interaction at fluctuating framerates.MeshInstance3D nodes for massive foliage; strictly use MultiMeshInstance3D to batch hundreds of thousands of meshes into a single GPU draw call.OccluderInstance3D nodes at runtime; this forces a CPU BVH rebuild and causes severe micro-stuttering.CSGShape3D nodes active in exported builds; strictly bake them into static ArrayMesh geometry before shipping.NavigationPathQueryParameters3D to limit pathfinding to localized active regions.find_child() or deep tree iteration for global state (e.g., Time of Day); strictly use Scene Groups (call_group()) for optimized broadcasting.Thread.new() for chunk I/O when ResourceLoader.load_threaded_request() already covers scene streaming — prefer ResourceLoader; custom threads only for non-Resource work with deferred SceneTree apply.> MANDATORY by concern (read before implementing):
> - Streaming → world_streamer.gd + async_chunk_loader.gd
> - Origin → choose one shifter (see decision tree) — floating_origin_shifter.gd or world_origin_shifter.gd
> - HLOD → hlod_visibility_config.gd only (no phantom configurator)
> - Far logic gate → lod_logic_enabler.gd
reset_physics_interpolation + shader world_offset uniform.set_entity_dead pattern).Traverse → Discover POIs → Quest/travel → Persist deltas → Weather/day cycle immersion.
| Concern | Choose | Script |
|---------|--------|--------|
| Chunk load/unload around player | ResourceLoader threaded + deferred add_child | MANDATORY world_streamer.gd, async_chunk_loader.gd |
| Origin: gameplay entities in a group, custom shift policy | Group "world_entities" shift | floating_origin_shifter.gd |
| Origin: single world_root + player warp + physics interp + shader offset | Root shifter | world_origin_shifter.gd |
| Origin: planetary / >~few×10k units, physics-heavy | Large World Coordinates (double-precision build) | Project setting — may still use a shifter for shader/audio sync |
| Distant mesh swap / impostor | VisibilityRange HLOD | MANDATORY hlod_visibility_config.gd |
| Disable far AI/physics | Distance/chunk gate | lod_logic_enabler.gd |
| Persist only changes | Binary delta | binary_save_manager.gd |
Pick one origin strategy — do not dual-own floating_origin_shifter and world_origin_shifter on the same world root.
queue_free; load via threaded ResourceLoader; instantiate with call_deferred. Do not re-inline streamer pseudocode — read the MANDATORY scripts.visibility_range_begin; detail children use visibility_parent — configure via hlod_visibility_config.gd.hlod_configurator.gd — does not exist; use hlod_visibility_config.gd> MANDATORY for depth beyond decision trees and script catalog: open-world-elite-implementations.md. Do NOT Load on first-pass wiring — use bundled scripts/ first.
visibility_range_begin / end on MeshInstance3D for HLOD without a dedicated LOD node.ResourceLoader.load_threaded_request() for chunks; custom Thread only when not loading Resources.> 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.
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store
NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Take thedivergentai/godot-genre-open-world 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.