Interactive NPC Dialogue
We’ve implemented a robust system for NPC dialogue that adds integrated subtitles and synchronized lip-syncing to your audio files. Think of it as a modernized, refined evolution of the classic Half-Life 2 approach.

Enhanced Sound Processing
You can now define import-time processing directly within a sound’s .meta file. These settings are handled natively during the compile process:
- Force Mono: Downmixes all audio channels into a single mono track.
- Trim Silence: Automatically crops leading and trailing samples that fall below your specified threshold.
- Normalize Loudness: Applies LUFS normalization, targeting a standard -16 LUFS.
- Gain (dB): Provides a fixed volume offset between ±24dB.
These settings are non-destructive; if left untouched, files compile exactly as they did previously. Loop points are calculated post-trimming, ensuring they align perfectly with your source editor timeline. To keep your workflow snappy, we’ve implemented debouncing—so whether you are dragging sliders or performing bulk edits, the system only triggers a single compile per asset.

Advanced Decal Height Masking
Decals now support Height Coverage, allowing you to use heightmap textures as a dynamic visibility mask. This is managed via two intuitive properties in the decal component:
- Coverage Amount: A ParticleFloat parameter that controls visibility (0 for hidden, 1 for fully visible). Because it utilizes ParticleFloat, you can tie this to the decal’s lifetime for animated or fading effects.
- Coverage Range: Softens or hardens the mask edges—set to 0 for a crisp cut or 0.5 for a smooth transition.

Watch Height Masking in Action
This mask layers over existing opacity or attenuation settings. Check out the updated Decal class documentation for technical details on reading these coverage settings via byte buffers.
Terrain Optimization
We have completely overhauled our terrain clip-map implementation. By subdividing the terrain mesh into granular, camera-aware chunks, we can now cull upwards of 70% of the terrain that isn’t currently in view. This performance boost allows for significantly higher detail in the areas that matter most.
Additionally, we’ve optimized terrain shading by introducing a precompute pass, eliminating unnecessary per-frame recalculations. By switching to GatherRed sampling and streamlining depth passes, we’ve reduced texture taps in some cases from 24 down to 1—effectively halving our benchmark render times. We’ve also refined height blending to ensure rocks and textures integrate seamlessly without unwanted fading.
Engine Updates & Quality of Life
- Serious Engine Support: You can now mount games built on Serious Engine, allowing you to import maps, props, and character assets directly into your projects.
- First-Person Demos: We’ve resolved synchronization issues in demo recording, specifically correcting vibration artifacts on view models and better capturing render-specific flags.
- Movie Maker: Keyframe editing is now smoother, featuring better interpolation handling and an improved context menu for bulk adjustments.
- Qt Advanced Docking: We’ve migrated to the Qt Advanced Docking System for a more stable, IDE-like editor experience, featuring better layout management and simplified API calls.
- Central Scene Widget: Our layout is now centralized, preventing accidental closure of critical tabs and providing a more cohesive workspace.
- Vertex Painting Upgrades: Mapping tools have been bolstered with Flood Fill variants (Noise, Occlusion, Curvature) and time-saving color-picking utilities.
- Taskbar Jump List: Pin the editor to your taskbar to quickly jump back into your most recent projects.
Metrics Accuracy
We identified a long-standing issue in our performance tracking. Previously, our average frame time calculations were heavily skewed toward the most recent frame, and we were incorrectly counting idle (sleeping) time as part of the total frame budget. We have switched to Welford’s algorithm for precise rolling averages and now track idle time separately. These changes provide a much more transparent view of the actual compute costs per frame as we continue our optimization efforts.