GMRoomLoader v2.0.0
Overview
This release marks the first major update since the initial v1, introducing a fully rewritten documentation, an improved demo project and a major API overhaul with a shift from snake_case to PascalCase
. It brings powerful new features and optimizations, marking a major step up from v1 and setting a new baseline for the library.
General
-
Completely rewrote and significantly improved the Documentation, now built with VitePress and hosted on GitHub Pages. You can find the old documentation archived here.
-
Fully reworked the demo project with examples for all common loading and screenshotting operations, configurable through the DBG ImGui interface. The demo is now much clearer and easier to use.
-
BREAKING CHANGE! Converted the entire API from the
snake_case
to thePascalCase
naming convention for consistency with other popular GameMaker libraries (and because I’ve grown to like it more). -
BREAKING CHANGE! The minimum supported GameMaker Runtime version is now v2024.13.1.242.
RoomLoader
-
Added optional scaling and rotation to .Load() and .LoadInstances().
-
Added .LoadTilemap() for loading individual tilemaps with optional mirroring, flipping, rotation and tileset.
-
Added State Management before Loading and Screenshotting using a Builder pattern with a Fluent Interface - an alternative way to set up optional arguments for core library methods.
-
Added .DataInitAll() for initializing data for all rooms in the project, with optional blacklist.
-
Added .DataGetLayerNames() for getting an array of layer names.
-
Added .DataGetInstances() for getting formatted instance data for custom processing.
-
Optimized tilemap initialization and loading.
-
BREAKING CHANGE! Renamed
.TakeScreenshot()
to .Screenshot(). -
BREAKING CHANGE! Renamed
.TakeScreenshotPart()
to .ScreenshotPart(). -
Fixed Screenshotting ignoring
ROOMLOADER_FLAG.TEXTS
flags.
Payload
- Renamed
RoomLoaderReturnData()
toRoomLoaderPayload()
. Referenced as Payload in the documentation. - Made layer destruction in .Cleanup() optional to avoid destroying shared layers.
- Added .GetInstance() for fetching loaded instances using their unique room IDs.
- Added new .DepthAbove() and .DepthBelow() methods for shifting loaded layer depths above or below a given depth. Simplifies depth juggling between host and loaded rooms.
- Added an option to not destroy loaded layers during .Cleanup() to avoid destroying merged layers.
- Fixed .Cleanup() skipping Destroy events for instances.
Configuration
- Added ROOMLOADER_MERGE_LAYERS that determines if loaded layers should be merged with existing ones or created anew.
- Added ROOMLOADER_DELIVER_PAYLOAD to speed up loading in cases where Payload isn’t necessary.
- Removed
ROOMLOADER_LAYER_PREFIX
and layer name prefixing altogether. - Removed
ROOMLOADER_ROOMS_RUN_CREATION_CODE
. - Removed
ROOMLOADER_SEQUENCES_PAUSE
.
Other Notes
- Particle System loading is still broken due to a GM bug. Investigating.
- The demo project now includes a utility function for exporting screenshots of all rooms in the project (it is not part of the library).
Files
Get GMRoomLoader
GMRoomLoader
Runtime room loading for GameMaker 2024.13+
Status | Released |
Category | Assets |
Author | Gleb Tsereteli |
Tags | cookbookjam, GameMaker, prefabs, Procedural Generation |
More posts
- GMRoomLoader v2.1.05 days ago
- GMRoomLoader v1.8.0Jan 21, 2025
- GMRoomLoader nominated for Best Tool!Aug 28, 2024
- GMRoomLoader v1.7.0May 31, 2024
- GMRoomLoader v1.6.0May 28, 2024
- GMRoomLoader v1.5.2Mar 05, 2024
- GMRoomLoader v1.5.1Mar 01, 2024
- GMRoomLoader v1.5.0Mar 01, 2024
- GMRoomLoader v1.4.2Feb 28, 2024
Leave a comment
Log in with itch.io to leave a comment.