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