Performance

Getting the most performance out of your games is essential to ensuring your game runs at a decent frame rate. Below are some general tips to help developers get the most out of their 001 Game Creator games.


General

These are general optimisations that improve your games performance overall:

  • Use Performance Debugger – in the Debugger window (that pops up alongside your game when testing) you can click on the ‘Performance’ button to see a list of scripts and collisions that are taking a lot of time to process.
  • Disable Object Shadows – in the Visual Settings window, there is an “Object Shadows” option that will disable shadows for all Tile-Sets and Actors in your project.
  • Disable Legacy Lighting – this option is found inside the Advanced Game Settings window and is disabled by default for most users however for some users this option may be enabled if your system hardware doesn’t meet minimum requirements.
  • Reduce Lights – lighting is very performance intensive so it’s recommended that you minimise the number of lights you use on a Map.
  • Reduce Actors with Routes/Generic AIActors that make use of Actor Routes or Generic AI can be extremely performance intensive so it’s recommended not to have too many of these types of Actors on a single Map.
  • Reduce Interface Text – keep in mind that text has to be rendered too, so try not to create too many Fields on your Interface that have large amounts of text.
  • Reduce Processing Radius – in the Game Settings window, there is a “Processing Radius” option that allows users to determine how much of a Map is loaded/processed based on a pixel radius around the playable character.
  • Minimise Tile-Sets with Terraformation/Color Variability – when creating Ground Layer Tile-Sets, try to reduce the amount of Terraformation and Color Variability that you use, as these will consume resources.
  • Minimise “Change Sun Color”, “Position Light” and “Change Tile” Events – please use these three events sparingly as they are incredibly performance heavy.
  • Minimise Map Size – the larger your Map is, the more slowdown you can expect (especially if it’s filled with Actors, Lights, etc.) Take special care with the Z-axis (Depth) as this can be particularly performance intensive.
  • Consider Image Resolution – when importing/creating images for Sprites, Tile-Sets, etc. please keep the image resolution in mind. Sprites should be scaled at the largest resolution it will end up being on screen. The larger the image, the higher the slowdown will generally be (especially when alpha is used). Large Fields (like banners) on the other hand, will actually benefit more from having a larger Sprite, as less processing is needed to work out and fill in the gaps.
  • Avoid Per-Pixel Cursor – in the Game Settings window, there is an “Enable per-pixel cursor clicking” option that allows users to click within each pixel of your game. Whilst this option is useful where absolute precision is required, most projects don’t benefit from this option being enabled.
  • Avoid Large Semi-Transparent Fields – where possible, try to avoid creating large transparent Fields that cover entire areas of your Interface, as these will contribute to game slowdown.
  • Avoid Polygon Collision – where possible, try to avoid Sprite polygonal collision in favour of spherical and rectangle collisions, as these are far less performance intensive. The fastest performing collision shape is the Sphere, followed by the Rectangle, Polygon and lastly the Mesh collision – which is the slowest performing.
  • Avoid Large Animations – where possible, try to avoid creating large animations for Sprites, Tile-Sets, etc. as these will bog down performance.
  • Turn off Smooth Scaling – use this option sparingly. Performance is made worse when the Sprite is stretched with this option checked (for example: when it’s used for a Window Field)
  • Static Sprite vs. Window – where possible, use Static Sprite Fields over Window Fields, the latter are extremely performance intensive and shouldn’t be used in situations where you’re not benefiting from their flexibility.
  • Turn off Actor Physics Processing – for static Actors it’s recommended to disable the “Process Actor Physics” option to prevent 001 from processing unnecessary movement/force calculations for Actors that aren’t moving.
  • Reduce “Rotate Collision with Direction” – where possible, use the “Rotate Collision with Direction” Sprite option sparingly as it can negatively impact performance on larger Maps where lots of Sprites utilise this setting. This is especially prevalent for 3D games.
  • Limit Field “Update Real-time” – where possible, it’s recommended to minimise Fields with the “Update Real-time” option checked, especially when utilising the “Retrieve Collection” functionality!
  • Disable Map Gravity/Enable Actor Sustain – setting Map gravity to 0 or enabling the “Sustain” physics property for Actors can help improve performance on Maps with a lot of Actors.
  • Ignore Obstacles – enabling the “Ignore Obstacles” Light option will increase performance considerably, at the cost of light being able to travel through walls.
  • Expand Light Scans – disabling the “Expand light scans for oversized graphics” in Game Settings will improve performance for Maps with lots of lighting, at the cost of Sprites larger than 256 pixels not being properly lit unless it’s closer to the light source.
  • Transparent Interfaces – a Interface that has been made transparent, will still process all of its Fields which may be undesirable if your intention is to keep them hidden. The best solution is to make the Fields invisible instead.
  • Condense Large Scripts When Used in Interfaces – To increase performance in Interfaces with large scripts, putting the very large scripts into Custom Events helps a ton.
  • Limit Amount of Spawned/Cloned FieldsFields that are spawned/cloned repeatedly, such as spawning a Collection, can bog down performance.
  • Avoid Unnecessary Usage of Character HUDs – Many Actors with “Character HUD’s” with multiple Fields on screen at once can bog down performance a lot. Either disable Character HUD for Actors that don’t need it, or utilize the Actor Render Distance option inside the Interface Properties.

HTML5

These are specific optimisations for getting the most out of HTML5:

  • Avoid Audio – if you’re experiencing extensive slowdown with your HTML5 games, the audio is most likely to be the cause (music especially). Avoid using Music and lots of Sound Effects, where possible.
  • Internet Features Unavailable – keep in mind that Internet features like “Query Webpage into Table” and “Query Webpage into Variable” do not work in HTML5 games. In these instances, please make use of the “Execute JavaScript” event instead.
  • MP3/MIDI Not Supported – due to licensing issues, MP3 and MIDI Music/Sound Effects are not supported for HTML5 games.
  • Test with Firefox – to get the best experience out of your HTML5 games, it’s recommended that you test them in Mozilla Firefox as it offers the best performance when compared to other browsers.
  • Reduce Memory Size – reducing the HTML5 Memory Size in Game Settings will help to improve game performance however larger games may require a higher value to function properly.

Mobile

These are specific optimisations for getting the most out of Android/iOS:

  • Take Advantage of “Change Zoom” Event – for mobile devices it’s essential to make use of the “Change Zoom” event to properly scale your games. Without this event, your game will simply render the entire Map, making large Maps look tiny on a small display and also creating considerable slowdown at the same time. To set this up properly, all you need to do is divide the screen resolution by the amount of visible pixels you want to be displayed. For example: Screen.SizeX / 800, where the resolution is 1024×768, will return 1.28 – so the engine will increase the zoom by 28% ensuring that the player only sees 800 pixels across, despite their resolution being larger.
  • Minimise Sound Effects – be sure not to overload your mobile games with too many Sound Effects, as this will contribute to game slowdown.
  • Avoid Music – where possible, try to avoid Music in your mobile games as this will significantly impact your game’s performance.
  • Avoid Detailed 3D Models – where possible, try to avoid detailed 3D Models, especially those with multiple textures, as this will impact the performance of your games.
  • MP3/MIDI Not Supported – due to licensing issues, MP3 and MIDI Music/Sound Effects are not supported for Android/iOS games.