I just deployed a new update, focused on rendering. Here’s what’s new:
When exporting your game, there is now a scale mode selection option, with the following 5 options:
None - no scaling at all, the game is always the same pixel dimensions it was created with
Letterbox - the game expands to fill the screen without any stretching, and the rest of the screen is black where the screen aspect ratio doesn’t match the game
Zoom - the game zooms in to fill the screen with no stretching, some of the game will probably be offscreen though
Stretch - the game fills the screen in both directions, and stretches if needed
Expand - the game fills the screen, and the camera expands if needed, so more of your game may be visible than usual
There is also a new behavior bundle, called “Full Screen” available for subscribers only (for now, maybe this will change). This puts the game in fullscreen mode (obvs). It works in exported games, and in the browser. This also has the same scalemode options that game exports do.
There are also some fixes:
Completely new background rendering system, which does a much better job of tiling correctly. This uses far less memory, and should fix the cases where games with repeating backgrounds were seeing out of RAM crashes. Also greatly improves performance of repeating backgrounds. The new background renderer will also allow the addition of background logic and animation (in a future update), which although it has been often requested, was impossible with the old render texture method.
Awesome new tools grazer!
Just want to ask about UI Layer objects would also Zoom/Expand too?
And if embed should also go full screen like if it was set in itch.io?
@“JR 01” after some testing, I understand what youre saying. If you want to see what you can expect with the expand option, increase the width/height slider to see how it would affect your game (in other words, any GUI offscreen would appear if its to the right)
Alright, so the UI is also affected by the Zoom levels in those modes too.
I was thinking like if you have a health bar at the top corner and you set it to Zoom or Expand,
it would be possible for part of the UI health element to be clipped/unseen with Zoom. Or possibly shrink with Expand. Mostly it would just depend how different the screen ratio is from what is set to the export.
It’s definitely possible for UI elements, or even important game elements to be offscreen if you use the Zoom scalemode. That’s definitely not an appropriate mode for all games or circumstances.
@CrimsonBlackGames & @“JR 01” - it may be worth adding an option to the interface objects to make them stay pinned to the edge of the screen instead of living at a specific pixel position.
Alright!
I also understand, as you said, these modes would not be suitable for most games. The Idea of keeping UI elements in these modes came from different aspect ratios but would also keep the UI objects relative to the game size (kinda like stretched… or like Fit without really stretching the UI hitboxes).
These are the only concern (that I could think of) I was thinking if I were to use these modes.
So would it help if somehow we had feedback in the game what the target screen size is (if that is possible at all).
It would allow to adjust game elements to the situation if needed. One could build fake 9-slice sprites for example.
But that would be a hell of work and I’m not sure if it is worth the effort.
@“JR 01” - I wouldn’t go so far as to say that the scalemodes are not suitable for most games. I think that the specifics of your game, and your specific taste would determine what scale mode makes the most sense for you.
For a game where most of the focus is in the center of the screen then Zoom might make sense. Letterbox will work in nearly any scenario, which is why it has been the default, but it leaves ugly black bars. Expand is probably the nicest option, but it requires some planning, since it’s possible for otherwise “invisible” areas of your level to be revealed. Stretch is probably fine if you only plan to run the game on a limited subset of screen sizes, depending on the artwork. I’m not really sure why anyone would ever use None, but I thought there should be an option to disable scaling, since I’m sure someone will need it eventually
@TinkerSmith - I was thinking more along the lines of having a “pin to screen edge” option in the UI objects, so that the object would just always stay relative to one (or two) edge(s) of the screen. For example, if the element was set to “top left” and was 10% from the top left corner, it would always stay that distance from the top left corner no matter the screen size.
I understand, center games (kinda like Focus II) could really use these options, but also pinning on edge with UI elements would also help from interference (like how Focus II also has health in the corner).
Also I think none is nice option, especially for browsers.
It creates like a “theater” view for the game.
This is a great update! I can finally make sure that my games work well in fullscreen! Also, towards the end of the discussion, are you saying that background objects will finally get playable animations and logic?