Update 07.26.01

Update 07.26.01

Enhanced Gizmo Performance

Previously, our gizmo rendering performance was substandard. In complex scenes, the overhead would snowball, resulting in a stutter-prone editor experience. This week, we implemented initial optimizations to streamline gizmo drawing, yielding significant results. For instance, the gizmo render time for the My Summer Cottage scene dropped from 55ms to 19ms. While this is a substantial improvement, we recognize there is still more room for refinement, and we plan to dedicate further attention to gizmo performance in upcoming updates.

Update 07.26.01

Addressing VSync Micro-Stutter and Input Latency

We have successfully identified and resolved a conflict between VSync and our frame limiter that was inducing micro-stutter and unnecessary input latency.

When VSync is active, the display is restricted to one frame per refresh cycle. If fps_max is configured higher than your monitor’s refresh rate, the engine generates frames faster than they can be rendered. These excess frames accumulate, leading to inconsistent frame delivery—oscillating between 5ms and 30ms—which manifests as micro-stutter despite a high average frame rate. Furthermore, this queue creates input lag, as finished frames must wait several refresh cycles before reaching the screen.

To assist in diagnosing frame pacing inconsistencies, we have introduced overlay_fps. This new on-screen utility features a real-time frame time strip, a distribution histogram, and GPU timing data.

VSync Analysis

FPS Overlay

Movie Keyframe Splitting

We’ve introduced the ability to split Movie Maker keyframes into distinct blocks via the context menu. This allows for overlapping keyframe blocks, enabling sharp, instantaneous transitions between values while maintaining smooth interpolation on either side.

View Splitting Demonstration

View Overlap Demonstration

Refining HtmlPanel Styles

Our HtmlPanel type serves as a lightweight alternative to full web browsers, rendering HTML directly into our UI for components like the pause menu. These panels were previously lacking comprehensive styling, resulting in a suboptimal aesthetic. We have overhauled these styles to ensure they now reflect the same polished visual quality found on our package pages.

HtmlPanel Styling Update

Improved UI Presentation

Networking Reliability and Enhancements

A major thank you to community contributor Josh Mobley for his invaluable pull requests, which have significantly bolstered our networking stability.

Lobbies created at startup now mimic asynchronous behavior, ensuring Networking.IsActive reports accurately from the OnStart event without a frame delay. We have also resolved issues where host-authoritative SyncFlags.FromHost properties were erroneously overwritten by client refresh messages and fixed rare cases of stale snapshot delivery.

Beyond these correctness improvements, we’ve updated the heartbeat mechanism to send packets reliably, preventing idle players from being disconnected for perceived inactivity. Additionally, for developers monitoring network traffic, Josh has revamped the Debug Network Calls overlay, providing much greater clarity on the data transmitting across the wire.

Networking Debug Overlay

Source