Industry First Multi Resolution "No Edge" Game Scaling, ATF Compressed Textures, and Scale Nine Renderers in v0.9.8

Posted on March 6, 2015

Today we are introducing the most requested feature for GameBuilder Studio, Multi-Resolution Scaling. Our Multi-Resolution "No-Edge" setting may be an industry first for 2D drag and drop tools. One of the most difficult problems facing game developers today is developing your game to work across multiple platforms and screen resolutions. A lot of tools allow you to scale up your game which looks terrible when run on devices with higher screen resolutions either because the graphics are pixelated or the game developer didn't design the game to fit on the device. GameBuilder Studio not only upscales the game maintaining the crisp look and feel but also maintains the same coordinate system across all devices and screen resolutions. This may not sound like much until you actually have to calculate and reposition objects across devices. Its a real pain.

Multi-Resolution Scaling

Multi-Resolution Scaling

To be able to start with a concrete stage size, position objects or animate them 100 pixels from the left edge, and have that object maintain the correct position across all the various device sizes and screen densities without making a change is really great. There are also other settings like the new Multi-Resolution "Fill Screen" which allows you to calculate object positions manually taking advantage of extra space on larger devices while still having GameBuilder Studio handle the upscaling of your games' images.

Follow the "Multi-Resolution Game Development with GameBuilder Studio" tutorial to get a full explanation on whats possible.

ATF Compressed Textures

ATF Compressed Textures

Converting your image assets to ATFs is a great way to optimize your game. ATF Textures are compressed images that are ready for the GPU to process. This results in less runtime memory and also reduces the amount of time needed for the GPU to render an image on screen. With traditional PNG images the image stays in CPU memory, gets uploaded and decompressed by the GPU, and then rendered to screen. GameBuilder Studio handles encoding your image files to the correct format depending on which platform you are publishing for. You will notice an increase in compile times on the first run as the files are being generated. If you make a change to an image make sure to clear the accompanying .atf file in your projects' resources folder. Only images that are a power of two in both dimensions (width & height) can be converted to ATFs.

You can also generate your own ATF files if your prefer and include them in the resource folder and GameBuilder Studio will pick it up as long as you keep the following naming convention: [ filename ]_[ etc | dxt | pvr ].atf (for compressed atfs). For uncompressed atfs just use the .atf file name extension.

Scale Nine Renderers

Scale Nine Renderers

Scaling repeatable backgrounds for UI windows and buttons is really easy now. There is now a built in renderer that uses a scale nine region technique which allows you to define a rectangular region on your image that has repeatable regions so that when the image is stretched only the 9 regions outside of the center are repeated. More on this topic here:

Registration Point Tool

Changing the pivot point of an image is now easier using the new registration point tool. Select the registration point icon on the tool bar which will disable scene selection and show all image pivot points. Click and drag the icon for an image to change its registration point. Holding down shift while dragging will move the actual pivot point around.

Release Notes v0.9.8


  • Added Multi-Resolution Scaling Support (You can import various scales through the editor or directly in the resource folder by adding subfolders with the following syntax @x[N] for each scale supported ). PRO Only
  • Added Rotation & Trimming support to sprite sheet components. There is also a new GBs exporter for TexturePacker.
  • Added Scale Nine Renderer to render scalable images with repeatable edges. Great for scalable UI Windows and controls.
  • Added Registration Point Tool
  • Added Multiline support to text renderer with custom font sheets. Also expanded the text input.
  • Added External asset bundle support to underlying game engine level manager. This will be used for the external resource bundling and management feature to come.
  • Added Nested resource folder support to assets imported into GBs. Resources can now be stored in nested folders (e.x. ../resources/female/character_sheet.png).
  • Added Resource file dependencies to level files so that "Loading Complete" is only fired after all required resources have been loaded for a level.
  • Added Auto asset file deletion. When an asset is deleted its associated file on disk is deleted from the project resources folder.
  • Added Additional Accelerometer data to expressions (i.e. isSupported and isMuted boolean properties).
  • Added The ability to change a physics spatial body type using a string value at runtime. ("static", "dynamic", "kinematic").
  • Added Level file embedding in final swf by default when Publishing for WEB.
  • Added Auto zip option of all files when Publishing for WEB.
  • Added "setRectangle( x, y, width, height )" helper method to Expressions to set clipping mask area on renderers.
  • Added Sorting to Rules component conditions list.
  • Added Visibility & Lock toggling to parent scene layers.
  • Added Multiple layer selection and dragging to layers panel. Only object layers can be re-ordered.
  • Added Platformer quick object.
  • Added Loop and "Run to Completion" options to Play Sound action.
  • Upgraded To Adobe AIR 16.0 SDK compiler with support for 64 bit iOS.
  • Upgraded In-App Purchase, iAds, and Admob plugins to support new required iOS 64 bit OS.
  • Refactored The licensing logic to communicate over a basic TCP protocol. Should enable more users to run GBs on restricted networks.
  • Defaulting all resources to be loaded at runtime instead of embedding which reduces runtime memory consumption.
  • Changed the assets used for quick objects.
  • Integrated The latest Spine runtime support.

Most Notable Bug Fixes:

  • Fixed App initialization sequence which threw a null error when launching GBs on computers with restricted networks.
  • Fixed Security warning prompts by removing the use of Encrypted local storage for app settings.
  • Fixed Arrow key selection in list (Layers, Components, Assets, etc.).
  • Fixed SWF sprite sheet cache releasing in editor when changing cached scale settings.
  • Fixed Live reload of swf assets when symbols have been removed or added.
  • Fixed Swf preview in isometric collision spatial properties panel.
  • Fixed Debug drawing of other level collision shapes in editor.
  • Fixed Rotation offset of all renderers
  • Fixed Default assets for quick objects from being loaded on every app launch. They are loaded on demand now.
  • Fixed Corrupt project error when opening projects with publish setting file paths that are not on the current host computer.
  • Fixed Spine animation complete event throwing errors because method callback signature was out of synch.
  • Fixed Compile error when trying to build a project with no resources imported. Missing resources folder error.
  • Fixed Undo/Redo error when undoing scene layer removal of a layer nested in a scene container without any objects.
  • Fixed Error handling when loading projects with missing resource files.
  • Fixed A null error when deleting a scene layer without any objects and using undo/redo.
  • Fixed Conditional action error which prevented it from firing any nested actions.
  • Fixed In-App purchase to allow purchase to be triggered again on iOS after user cancels the purchase flow.
  • Fixed Undo/Redo of sprite sheet registration point value.
  • Fixed Spawning objects' offset position relative to spawning entity.
  • Fixed Error when renaming object layers without cloned derivative objects.
  • Fixed Error In Find Objects In Range action when object type is not specified. Both entity type and object type are not required anymore.
  • Fixed Platformer state transition triggering from jumping to falling states.
  • Fixed Secondary cloned objects so that they do not link newly added components to the original source object.
  • Fixed Copy & Paste when selecting layers in layers panel.
  • Fixed Multi-resolution support on cell count and fixed size sprite sheet dividers.
  • Fixed Spine Animation action event triggering.

Known Issues

  • The debug layer in final game output is mis-aligned after switching levels. Works on initial load of a level.
  • No undo/redo in Assets panel, Action properties, or Template tab.
  • No undo/redo when importing external projects.
  • Conditions on a Rules component are not sortable.
  • You can not use objects with the same name in a different level. Requires renaming of entities.

Whats Next?

  • Game Center / Google Play Plugin (iOS & Android)
  • x86 Android Device Support
  • Tile Map Renderer (From Tiled Editor)
  • Path Finding Support
  • Facebook Plugin
  • Filters / Renderer Masking (Clipping)

Thanks for reading this blog post. Spread the word!


There are no comments yet!

Anyone can leave a comment!

You just need to signup for an account or log-in before you can comment.