AppGameKit V2.0.20

Today we're releasing a new version of AppGameKit with a range of new features and fixes.

Compatability

  • Breaking changes: this version cannot run previous bytecode, and old versions cannot run bytecode from this version
  • Updated AGK to use libPNG 1.5.27 due to a security vulnerability

IDE

  • Modified IDE export options to compile the project before exporting to make sure it is up to date
  • Fixed the stop broadcast button sometimes failing to stop the app on a device
  • IDE export settings are now stored inside the project file for each project

Debugger

  • Fixed the debugger not being able to set a breakpoint on source files contained in folders in some cases

Compiler

  • Added new compiler directive #company_name to create a more unique write folder for your apps on Windows and Linux, see the Language section of the help for more details

Images

  • Significantly improved image loading times on all platforms
  • Removed 2048x2048 size limit on images, now only limited by device capabilities
  • Fixed LoadImage down sizing images above the size limit causing sub images to have their offset values corrupted
  • Be aware of GPU memory when using large images, a 4096x4096 image will use 64MB, regardless of its file size
  • Loading an image that is not a power of two in size will no longer pad it to the nearest power of two internally, unless SetGenerateMipmaps is set to 1
  • Using SetImageWrapU or SetImageWrapV with mode 1 (repeat) on an image that is not a power of two will now do nothing

Music

  • Added OGG music commands that can play multiple music files at the same time, and allows seamless looping
  • OGG music commands will work the same on all platforms
  • Old music commands are now deprecated in favour of the OGG music commands

Sprites

  • Fixed GetManagedSpriteCount always returning 0
  • CreateRenderImage can now use non-power of two sizes when the mipmap parameter is set to 0
  • Added SetTweenDuration() to change the duration of a tween after it has been created

3D

  • Fixed FBX loader causing a crash on ARM devices
  • Fixed frustum culling not working correctly when using an orthographic camera
  • Fixed a crash in LoadObjectWithChildren when loading an object with a single bone
  • Fixed objects created with CreateObjectFromObjectMesh not being drawn properly
  • Fixed SetObjectCollisionMode() not creating collision data if used on an instance object when the parent has collision turned off and has no collision data of its own

Files

  • Added ViewFile() command to open a specified file in an external app, usually the system default for that extension
  • Added ShareText() and ShareImage() commands to share text and images with external apps, asks the user to choose the app

Notifications

  • Fixed local notifications not showing on Android if the app is closed when in the background

In-App Purchases

  • Added GetInAppPurchaseLocalPrice() command to get the item price in the local currency
  • Added GetInAppPurchaseDesciption() command to get the item description

iOS

  • Fixed iOS export causing an error when the app is submitted to Apple
  • Added option to iOS export to allow all orientations

Android

  • Fixed a crash on Android when loading a 3D object that contains multiple primitive types (point, line, triangle, or polygon) in a single mesh
  • Fixed some Android devices not keeping the correct GetPointerX and GetPointerY values after a touch release
  • Added sharedUserID field to Android export dialog so shared variables can be used in Tier 1
  • Modified Android GetRawRotationVector commands to use the game rotation vector sensor where available, which isn't affected by magnets
  • Fixed SetErrorMode(2) not displaying error messages properly on Android

Shaders

  • AGK will no longer add a default precision to shaders on mobile devices if it detects the string "#if", which implies you have added it yourself

HTML5

  • Added joystick support to HTML5
  • Fixed SetVSync command on HTML5
  • Fixed SetClearColor not working on HTML5

Joystick

  • Fixed joystick ranges for non-XInput devices on Windows, causing some devices to report incorrect values
  • Fixed a crash when trying to use joysticks on a Mac

Misc

  • Fixed Facebook warnings about Graph 2.0 calls
  • Added GetFacebookAccessToken to return the access token that can be used with graph API calls using the HTTP commands
  • Added the Euro currency symbol to the default font
  • Updated Mac apps to be 64-bit, if you are using Tier 2 be sure to set your valid architectures build setting to x86_64
  • Updated RunApp() to work on Linux, Mac, and Raspberry Pi
  • Fixed virtual buttons becoming distorted if broadcasting and app that uses a virtual resolution after an app that uses percentage coordinates