YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
26 stars 8 forks source link

Export room/visible layers as PNG #3023

Open pringle2612 opened 1 year ago

pringle2612 commented 1 year ago

Is your feature request related to a problem?

A common frustration I run into is when I'm working on a large room and don't easily have a way to share it with other team members for feedback. In my projects, rooms are frequently bigger than my monitor size, which makes screenshotting and sharing rooms an annoying task.

For example, a room might be 2560 x 2560. If you want to export an image of the room and this is larger than your monitor size, you are forced to either zoom out and take a screenshot or take multiple screenshots at 1x zoom and stitch them together.

Describe the solution you'd like

An option under the "Room" tab labeled "Export Room as PNG", or, "Export Visible Layers as PNG", or something to that effect. Clicking this would prompt the user to save an image of the room made from all layers currently marked as visible. This would allow for layers to be exported individually as well as flattened together in any configuration the user desires.

Benefits from this implementation would include:

This is a common feature in other room editors such as Tiled or Tilesetter, and it would be a very very welcome addition to GameMaker.

Describe alternatives you've considered

1. Zooming out and taking a screenshot of the room editor This is passable for some cases, but zooming out destructively affects the visuals which is often undesirable, especially if the room is significantly bigger than the monitor. For pixel art games especially, this is an unhelpful solution if you're wanting to preserve the artwork.

2. Stitching multiple screenshots incomplete together from the room editor This works, but depending on the size of the room can be labor intensive, tedious, and time consuming. It's cumbersome and feels like it should be unnecessary.

3. Stitching together multiple screenshots taken at runtime AKA capturing the current view to a surface, moving the view, adding to the surface, etc, then saving the final surface. This can work, but such solutions are not universal for every game and requires a good deal of effort from the end user. It also requires the game to be running.

I think that all three of these alternatives have very clear drawbacks that make them unviable solutions for most users.

Additional context

❤️

jdzombi commented 1 year ago

Completely agree, and would love to see this feature implemented.

hasnogame commented 1 year ago

+1, would make it much easier to work on whole-room sequences as I could just set a screenshot of the room as the background

KormexGit commented 5 months ago

I could really use this feature, since I want to print out my main tilemap so I can trace over it to make a map, BUT my rooms are over the maximum surface size so I can't use sprite_create_from_surface