Repository navigation
VOID Engine 2.1.0
VOID Engine 2.1.0
This release improves camera behavior, frame timing, coroutines, and the Beacon event system while keeping VOID's existing renderer and game-loop architecture intact.
Camera
- Cameras attached to batchers now update automatically during rendering.
- Added
BaseCamera.OnUpdate(FrameTime)for custom camera behavior. - Shared cameras update at most once per rendered frame.
- Manual camera updates are no longer required for attached cameras.
Frame Timing
- Reworked
FrameTimeto manage VOID's game-loop timing state. - Fixed timestep updates now receive the configured fixed update interval.
- Rendering receives actual frame elapsed time even when fixed timestep mode is enabled.
- Variable timestep mode continues to use actual elapsed time.
DeltaTimeremains time-scale aware.ElapsedTime,UnscaledDeltaTime,TotalTime, interpolation alpha, FPS, and slow-frame tracking remain available throughFrameTime.
Coroutines
- Replaced the previous coroutine implementation with a VOID-native
IEnumeratorrunner. - Added nested coroutine chaining through
yield return IEnumerator. - Parent routines resume after child routines complete.
- Nested coroutine chains can run to arbitrary practical depth.
- Root handles remain valid while child routines are active.
- Stopping a root coroutine safely stops and cleans up the entire child chain.
- Coroutine cleanup now safely handles stopping during an active coroutine update.
CoroutineManagernow usesFrameTime.- Numeric
float,double, andintyields continue to represent scaled-time delays. CoroutineHandleremains an immutablereadonly struct.
Beacons
BeaconHandlepayload data is now exposed as a read-only view.- Default-initialized handles are safe.
- Added payload
Count. - Improved
GetandTryGethandling. - Subscription mutation is synchronized while publishing keeps the existing fast multicast
Action<BeaconHandle>path. - Publishing remains synchronous.
Beacon Extensions
- Added
BeaconManager.PublishDelayfor delayed string and enum topic publishing. - Delayed publishing uses VOID's coroutine system and scaled game time.
PublishDelayreturns aCoroutineHandleand can be cancelled.- Added typed payload helpers for one through five values.
- Added
Get,GetOr,TryGet,Has,IsTopic,HasData, andIsEmpty.
Game Loop
- Separated fixed-update timing from rendered-frame timing.
- Added render-frame tracking for automatic camera updates.
- Preserved graceful shutdown checks so update and rendering stop immediately after the window closes.
Fixes
- Fixed coroutine state mutation when a coroutine stops itself or is stopped during
MoveNext(). - Deferred coroutine cleanup until it is safe to dispose the active chain.
- Preserved deepest-first nested coroutine disposal.
NuGet: Void.Engine 2.1.0