CRM64Pro GDK 0.15.0 Scene system introduction and engine evolution
CRM64Pro GDK 0.15.0 represents the next major step toward v1.0.0, transforming the former TileEngine into a more complete and flexible game world system while continuing the broader modernization of the engine core.
The most significant change in this release is the evolution of TileEngine into the new Scene system. The rename reflects a conceptual shift: what was previously focused on tiled rendering has grown into a full 2D world management framework capable of handling gameplay logic, object interaction, camera control, and deterministic updates within a unified architecture.
- From TileEngine to Scene
The new Scene module introduces native support for TMX object layers, allowing maps to define gameplay entities directly through Tiled. Rectangles, points, polygons, and polylines can now be loaded and accessed at runtime, including their properties, types, and metadata. An object factory mechanism enables developers to instantiate custom game objects directly from map data, simplifying level-driven workflows.
Camera handling has also been expanded with configurable modes, smoothing, bounds control, and per-layer behavior, while scrolling and parallax calculations now operate using floating-point precision. Combined with sub-pixel rendering, this results in smooth movement without visual jitter during slow camera motion.
Internally, Scene has been heavily refactored to separate logic, rendering, and timing responsibilities. Updates now run strictly on the engine’s fixed timestep, with interpolation performed during rendering, ensuring deterministic behavior independent of frame rate.
Additional features such as trigger zones, template support, user-defined layer extensions, and extensive tutorial coverage further validate Scene as a foundation for multiple game genres rather than a rendering-only subsystem.
- Engine and Core improvements
Beyond Scene, version 0.15.0 continues refining the engine architecture introduced in previous releases.
The main loop now uses a high-precision accumulator with nanosecond resolution, providing stable fixed-timestep execution and preventing timing drift during long sessions or temporary frame stalls. Timing helpers are now exposed engine-wide, allowing consistent synchronization between systems.
A new physics interface introduces frame-accurate, pixel-perfect collision detection, while the Sprite system gains additional animation modes and improved interpolation behavior aligned with the updated timing model.
Memory diagnostics have been expanded with deeper debugging capabilities, including allocation tracking and breakpoint support, and the custom allocator ecosystem now covers a wider range of STL containers.
The Tool module also adds a PCG32-based random number generator, complementing existing PRNG implementations with a modern, compact alternative.
- Stability and API evolution
This release includes a large number of stability improvements across core modules, addressing edge cases in resource loading, runtime layer handling, and memory safety.
API consistency continues to improve through the ongoing migration from macros to strongly typed enums and clearer interfaces. Several rendering and XML APIs have been standardized, and extended rendering functions now support asymmetric scaling parameters across graphics objects.
While these changes introduce some breaking updates, they further consolidate the engine toward a cleaner, safer, and more maintainable public interface.
- Looking Forward
Version 0.15.0 is an evolutionary release focused on consolidating gameplay structure inside the engine itself. With Scene now acting as the central world management system and timing behavior fully stabilized, CRM64Pro moves closer to a production-ready architecture prepared for the upcoming v1.0.0 milestone. You can check the roadmap here.