An award-winning GameMaker library for creating room prefabs and loading room contents dynamically at runtime.
GMRoomLoader is a GameMaker library that allows developers to create room prefabs and load their contents—such as instances and tilemaps—into the current room at runtime. It solves the problem of dynamically assembling game levels, enabling features like procedural generation, chunk-based loading, and UI creation directly from the Room Editor.
GameMaker developers building games that require dynamic level assembly, procedural content, or efficient management of large game worlds.
Developers choose GMRoomLoader for its pure GML implementation, award-winning design, and comprehensive feature set that simplifies complex runtime loading scenarios without external dependencies.
An award-winning GameMaker library for making room prefabs and loading room contents at runtime.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
No external tools or extensions required, ensuring seamless integration into the GameMaker workflow as emphasized in the README.
Supports loading full rooms, instances, or tilemaps with transformations like scaling and rotation, enabling versatile runtime content management.
Uses payloads to track and destroy loaded elements, offering full cleanup control and preventing memory leaks.
Won Best Tool at GameMaker Awards 2025, indicating high reliability and community recognition.
Includes a debug view for loading rooms at mouse position without code, speeding up testing and iteration.
Requires GameMaker v2024.14.3, limiting use for projects on other versions and potentially causing upgrade hurdles.
Some features, like UI loading from rooms, are now less useful due to GameMaker's native UI Layers, reducing its appeal in modern workflows.
Runtime loading of room contents can introduce performance costs, especially in games with frequent dynamic changes or large-scale procedural generation.
Advanced use cases may require a deeper understanding of the library's API and concepts, adding to the learning curve compared to manual methods.