Hey, KellyWiley7 here. I’ve been working on an advanced atmospheric engine for about two years now. Honestly, I found that standard TweenService implementations were fundamentally insufficient for the scale and interdependence of this project. While great for simple transitions, they lack the reactive capability needed for a full meteorological simulation. I needed to build a custom real-time rendering loop to handle the complex state dynamics while ensuring the system remained performant enough for competitive games.
I’m planning to release this as a resource or plugin soon, so I’m looking for feedback on the visual fidelity to ensure it’s production-ready.
What makes this engine different?
Instead of just animating properties on a simple timeline, this engine simulates light interactions based on physical factors like cloud density, solar elevation, and real-world geography.
1. Seamless Celestial Transitions (Solving the “Shadow Flip”):
One of the biggest issues in standard day/night cycles is the jarring “snap” when the sun sets and the moon rises. Shadows often flip instantly, or the lighting abruptly changes tone.
- The Problem: Standard cycles rely on time-based keyframes. If a keyframe asks for brightness while the sun is technically below the horizon, the engine creates ugly artifacts.
- The Failsafe Override: My system calculates the exact elevation angles of both the Sun and Moon every frame. It acts as a physics-based clamp.
- How it Works: Even if my configuration module requests brightness, the Failsafe will force
Brightnessto 0 if the celestial body is below a specific elevation angle. It only allows the light to fade back in when the moon/sun is high enough to cast stable shadows. - Result: A completely seamless transition. The sun doesn’t just “turn off”, it physically fades out based on its angle, and the moon only takes over when it is geometrically valid to do so.
2. Dynamic Cloud Physics:
The system tracks cloud density and cover in real-time to drive the rest of the lighting. Clouds aren’t just a texture; they physically interact with the world.
- Occlusion: Thick clouds actively block sunlight. The engine calculates a “Block Factor” that can turn
Brightnessall the way to 0 during heavy storms. - Interaction: High cloud density will dampen ambient light, kill reflections (
EnvironmentSpecularScale), and desaturate the atmosphere fog to match the storm intensity. - Absolute Darkness: The system supports pitch-black weather events where no directional light renders, genuine darkness rather than just dimness.
3. Seasonal & Planetary Simulation:
The time system goes beyond just spinning the sun.
- Real-World Geolocation: The server simulates seasons (Summer/Winter) based on real-world latitude data derived from the server’s region. (Currently configured as: 1 week in the real world = 1 in-game year)
- Seasonal Solar Arcs: The engine actively modifies the
GeographicLatitudeproperty to simulate Earth’s axial tilt. - Dynamic Sun Position: This means “12:00 PM” looks different throughout the game-year. In winter, the noon sun hangs low on the horizon (casting long shadows); in summer, it rises high directly overhead.
4. Performance Architecture:
I wanted this to be viable for optimization-heavy games, so performance was a priority.
- The “Bridge Firewall” (Delta Checking): The client script runs a delta check on every property. If a lighting change isn’t visible to the human eye (< 0.00001 change), the script prevents the property update signal entirely. This ensures the script makes no unnecessary visual calls when the scene is relatively static.
- Memory Efficiency: The render loops are designed for a minimal memory footprint, reusing variables to strictly limit garbage collection spikes.
Showcase: Here is a time-lapse showing a full Day/Night transition. (Note: The video is sped up 35x. The shimmering on the trees is due to the speed of the time-lapse, not engine artifacting.)
Note on the Moon: The moon is not a static texture. It features Synodic Month Simulation with accurate phases (Waxing/Waning) changing over multiple game-days.
Screenshots
Link for the showcase game in the video and screenshots: Atmospheric Engine
Link for performance benchmarking (Baseplate only): Atmospheric Engine: Baseplate
Use this version for isolated performance profiling or if you experience hardware-related bottlenecks in the main showcase.
Feedback Needed: I am mostly looking for feedback on the “feel” of the transitions.
- Does the color temperature shift during sunrise/sunset feel natural?
- Does the seasonal sun movement add to the immersion?
- Apart from the time-lapse speed, do you notice any lighting “snaps” or breaks in continuity?
Custom Star Rendering (Better Night Sky) by @XenoDenissboss1
Moon Imagery: NASA SVS | Moon Phase and Libration, 2026

















