# Stylized Dynamic Sky Specification (Godot 4.6) ## Overview This document specifies a stylized dynamic sky system for Godot 4.6. It defines the required features, behavior, data structures, and integration points without prescribing implementation code. ## Goals - Provide a visually stylized, dynamic sky suitable for stylized or semi-realistic games. - Offer modular components that can be combined or replaced. - Enable deterministic playback for cutscenes and synchronized multiplayer. - Support art-direction via presets and editor-friendly controls. ## Non-Goals - Physically accurate atmospheric scattering. - Real-world meteorology simulation. - Automated terrain-aware shadow projections. ## System Architecture - **DynamicSkyRoot**: Top-level scene controlling time, weather, and global parameters. - **SkyboxPresetLibrary**: Collection of preset skybox nodes (configured resources/scenes). - **DayNightController**: Controls sun/moon movement, ambient light, and time-of-day curves. - **WeatherController**: Drives weather states, transitions, and VFX spawning. - **CloudSystem2D**: Handles layered 2D cloudscapes, flow, animation, and evolution. - **PostProcessController**: Applies stylized gradients, fog shaping, and sun glow. - **VFXController**: Shooting stars and meteor showers. - **ShadowProxySystem**: Faked cloud shadows projected onto world. ## Feature Specifications ### Preset Skybox Nodes **Description**: Pre-authored skybox configurations that can be swapped at runtime. **Requirements**: - At least 6 presets: Clear Day, Sunset, Night, Overcast, Storm, Dawn. - Each preset includes: - Skybox texture/gradient resources. - Sun and moon color presets. - Ambient and fog color presets. - Default cloud layers and post-process settings. - Presets can be overridden by runtime controllers without losing base values. - Preset application is non-destructive and reversible. **Editor UX**: - Preset picker dropdown. - “Apply Preset” button and “Revert to Preset” button. ### Day/Night Cycle **Description**: Stylized, configurable cycle controlling lighting and sky appearance. **Requirements**: - Time scale with configurable length (e.g., 10–240 minutes per day). - Supports manual time-of-day override and pause. - Sun and moon directional motion (arc across sky dome). - Color and intensity curves: - Sun color and intensity. - Moon color and intensity. - Ambient color and intensity. - Fog color and density. - Smooth transitions between time states. - Optional star visibility curve. **Data**: - TimeOfDay (0.0–1.0 normalized) - Curves for color/intensity across time. ### Weather System **Description**: State-based weather controller with transitions and parameters. **Weather States**: - Clear - Cloudy - Overcast - Rain - Storm - Snow (optional, can be disabled) **Requirements**: - State machine with configurable transition durations. - Each state defines: - Cloud density, opacity, and coverage. - Wind speed and direction (affects cloud flow). - VFX sets (rain, lightning, snow). - Ambient and fog adjustments. - Randomized or scripted weather timeline support. - Events/callbacks on state enter/exit. ### 2D Customizable Cloudscapes **Description**: Layered 2D clouds rendered on the sky dome or as screen-space quads. **Requirements**: - Up to 4 independent layers: low, mid, high, wisps. - Per-layer settings: - Texture/atlas selection. - Tiling and scale. - Opacity and color tint. - Parallax depth factor. - Flow direction and speed. - Global cloud coverage control. ### Cloud Flow, Animation, and Evolution **Description**: Dynamic motion and shape changes over time. **Requirements**: - Continuous UV flow with wind influence. - Optional noise-based distortion for stylized movement. - Evolution parameter to morph coverage and shape (low-frequency drift). - Time-based variation seed to keep deterministic playback when seeded. ### Cloud Lighting Reacts with Sun and Moon **Description**: Cloud shading changes based on celestial light direction and intensity. **Requirements**: - Light direction taken from sun/moon controller. - Bright side and shadowed side color control. - Night-time soft illumination from moon. - Optional rim glow at dawn/dusk. ### Weather Particle Kill Volumes **Description**: Volumes that stop precipitation or weather particles in indoor or sheltered spaces. **Requirements**: - Axis-aligned and/or custom-shaped kill volumes. - Particles inside kill volume are disabled or instantly culled. - Priority/stacking rules when volumes overlap. - Optional fade-out margin to avoid hard cutoffs. ### Stylized Post Process for Fog and Sun Gradients **Description**: Screen-space effects to enhance gradients and fog stylization. **Requirements**: - Adjustable sky gradient curve blending. - Fog shaping controls (height fog, distance fog). - Sun glow halo with stylized falloff. - Dusk/dawn gradient emphasis. - Option to toggle for performance profiles. ### Shooting Star and Meteor Shower VFX **Description**: Procedural or timed visual effects visible in the sky. **Requirements**: - Occasional shooting stars (randomized frequency). - Meteor shower events with configurable duration and intensity. - Trail length, brightness, and color control. - Optional audio event hook for meteor shower start. ### Faked Cloud Shadows **Description**: Stylized cloud shadow overlay projected onto the world. **Requirements**: - Shadow texture projected in world space or onto a large quad. - Movement matches cloud flow direction and speed. - Darkness/opacity controls and color tint. - Optional blur for softer look. ## Data and Configuration - **SkyConfig Resource**: Stores defaults for all controllers. - **Preset Resource**: Encapsulates a SkyConfig plus skybox assets. - **WeatherProfile**: Per-state settings and VFX parameters. - **CloudLayerConfig**: Texture/flow/lighting settings per layer. - **PostProcessProfile**: Gradient, fog, and sun glow parameters. ## Performance Targets - Target 60 FPS on mid-range hardware. - Cloud layers should allow selective disabling. - VFX update rates configurable. ## Debug and Tooling - On-screen debug panel showing time, weather state, cloud parameters. - Seed display for deterministic playback. - Editor gizmos for kill volumes. ## Acceptance Criteria - All required features are present and configurable in editor. - Presets can be applied and reverted without data loss. - Day/night transitions are smooth with no visible jumps. - Weather transitions alter clouds, lighting, and VFX consistently. - Cloud lighting visibly reacts to sun/moon changes. - Kill volumes prevent precipitation in indoor spaces. - Post process improves gradients and fog stylization. - Shooting stars and meteor showers visible at night. - Cloud shadows visibly move across the world.