Today we're releasing Version 2.0.17 to all AppGameKit owners. It's packed with exciting new features and stability improvements. We're sure you'll enjoy playing with the new features, from the new 3D height map terrain system to the support of the industry standard .fbx support. There's also support for new advert formats, local notifications and more flexible arrays. Here's the full breakdown of all the changes;

3D

  • Added CreateObjectFromHeightMap to create terrain type objects from height maps
  • Added GetObjectHeightMapHeight to return the height of a terrain object at a specific point
  • Added 3D fog commands to gradually fade objects over distance, and to create atmospheric effects
  • Added SkyBox commands to draw a horizon and movable sun behind all other objects
  • Updated 3D format loader to the latest version which fixes many bugs and adds the FBX file format

  • Added SetObjectUVOffset and SetObjectUVScale to modify the UVs of an object's meshes
  • Reduced memory usage of 3D objects by deleting unused copies of the vertex data
  • Added SetAntialiasMode to set Anti-aliasing on Windows, Mac, and Linux, off by default
  • Fixed custom shaders used on 3D objects getting replaced with generated shaders
  • Fixed InstanceObject and CloneObject not working on animated objects
  • Fixed ObjectRayCast not working on scaled objects
  • Removed the 2 million vertex limit on meshes, now only limited by memory
  • Frustum culling is now done per mesh instead of per object
  • Fixed normals being inverted when object scale is negative
  • Increased maximum number of bones from 40 to 100, but some old devices may fail to draw objects with more than about 50 bones
  • Fixed SetObjectShaderConstantByName not updating the shader values
  • Added GetObjectBoneWorldAngleX and GetObjectBoneWorldQuatW, and others, to get the bone angle in world space
  • Fixed SetShaderConstantByName and SetShaderConstantArrayByName not working on loaded shaders that use lights
  • Added SetObjectDepthRange command to force the object to a specific depth value or range

2D

  • Added SetObjectAlphaMask as an alternative form of transparency that doesn't suffer from depth sorting issues
  • Fixed SetObjectTransparency mode 2 only working on Windows

Linux

  • Fixed ChooseRawFile not working on Linux

Mac

  • Fixed Mac generating an error report if an app is closed whilst playing a sound file

AppGameKit Basic

  • Added the ability to assign array values at any time using [1,2,3,4]
  • Fixed broadcaster sometimes sending files that hadn't changed
  • Fixed debugger not being able to view strings in the variable window if the string contained a colon
  • Fixed arrays with 1 element not being able to have a default value

iOS

  • Fixed iOS not returning 1 for GetEditBoxChanged()
  • Removed armv7s architecture from iOS apps to reduce executable file size by 33%, performance on iPhone 5 may be slightly reduced

Android

  • Updated the Android Tier 2 guide for Android Studio
  • Added a warning when the case of a filename does not match the file on disk, so that other platforms can help debug the file not found error this causes on Android
  • Split the Android Tier 2 library into 3 parts to improve compile time, be sure to update your Android.mk file from the template project
  • Fixed single channel greyscale PNG images not loading on Android
  • Fixed a crash when calling GetGameCenterExists on Android

Local Notifications

  • Added local notification commands to schedule notifications for iOS and Android

GameCenter

  • Fixed GameCenterShowLeaderBoard command causing a crash on Android

Memory Leak fixes

  • Fixed memory leak when deleting objects that use index data

Windows

  • Enabled Windows apps to use up to 4GB of memory instead of just 2GB

Misc Fixes

  • GetStringTokens2 not returning the correct string for index 1
  • Added RestoreWindow to unminimize a window on Windows, Mac, and Linux only
  • Added GetUnixTime command to return the current date and time in unix format
  • Removed the .m3 file format

Demos

  • Added a new sample project in AGKProjects/3D/Terrain that demonstrates terrain, fog, and the new sky box
  • Added a new sample project in AGKProjects/Adverts/Interstitials to demonstrate the fullscreen advert commands
  • Added a new sample project in AGKProjects/Extras/ to demonstrate local notifications

Adverts

  • Added Chartboost functionality to Amazon APK export option
  • Added SetAmazonAdDetails command to use Amazon Ads
  • Added ShowFullscreenAdvertAdMob, ShowFullscreenAdvertChartboost, and ShowFullscreenAdvertAmazon commands to manually choose which provider to use
  • Added GetFullscreenAdvertLoadedAdMob, GetFullscreenAdvertLoadedChartboost, and GetFullscreenAdvertLoadedAmazon to check advert availability
  • CreateFullscreenAdvert is deprecated in favour of the above commands