AppGameKit v2018.4.12 Released


AppGameKit v2018.4.12 was just released on Steam.  The update adds a load of new functionality to the game engine the star of which is AR support for both ARCore and ARKit devices.  Mobile devices also received cloud storage support, iCloud on Apple devices, Google Drive on Android devices.  The release was also packed with minor features and fixes.  If you’ve never heard of AppGameKit, be sure to check out our (somewhat dated) Closer Look review.


Details of the release from the Steam news page:

  • Here’s the full Augmented Reality Command List and Values:
    • void ARSetup()AGK
    • int ARGetStatus()
    • void ARUpdateInternal()
    • void ARPause()
    • void ARResume()
    • void ARDestroy()
    • void ARControlCamera()
    • void ARDrawBackground()
    • void ARSetPlaneDetectionMode( int mode )
    • void ARSetLightEstimationMode( int mode )
    • float ARGetLightEstimate()
    • int ARHitTest( float screenX, float screenY )
    • float ARGetHitTestX( int index )
    • float ARGetHitTestY( int index )
    • float ARGetHitTestZ( int index )
    • float ARGetHitTestNormalX( int index )
    • float ARGetHitTestNormalY( int index )
    • float ARGetHitTestNormalZ( int index )
    • int ARGetHitTestType( int index )
    • void ARHitTestFinish()
    • int ARGetPlanes( int reserved )
    • float ARGetPlaneX( int index )
    • float ARGetPlaneY( int index )
    • float ARGetPlaneZ( int index )
    • float ARGetPlaneAngleX( int index )
    • float ARGetPlaneAngleY( int index )
    • float ARGetPlaneAngleZ( int index )
    • float ARGetPlaneSizeX( int index )
    • float ARGetPlaneSizeZ( int index )
    • void ARGetPlanesFinish()
    • int ARCreateAnchorFromHitTest( int index )
    • int ARCreateAnchorFromPlane( int index )
    • void ARFixObjectToAnchor( int objID, int anchorID )
    • int ARGetAnchorStatus( int anchorID )
    • void ARDeleteAnchor( int anchorID )

Find out more about ARCore and which devices are compatible for Android HERE
Learn more about ARKit from Apple HERE.


  • Changed iOS to use an OpenGL ES 3.0 context to support the larger shaders that AppGameKit generates when using multiple features like normal mapping with cascade shadow mapping


  • Minimum supported version of Android is now 4.0.3 (API 15)
  • Updated Google Play Services to version 11.8.0 on Android
  • Added commands to check and request permissions for certain Android features, such as camera access, sdcard read/write access, and GPS location tracking
  • You must start using the new permission commands in your apps, even though they currently auto granted at startup, as a future version of AGK will switch to auto deny, as required by Google
  • Fixed FacebookActivateAppTracking causing a crash on Android
  • Fixed Android orientation changes sometimes causing the AGK render area to be offset from the visible display area
  • Fixed physical keyboards on Android causing edit boxes to not accept any characters if the backspace key was pressed too many times
  • Added 64-bit version of Android for better performance on 64-bit devices
  • Fixed GameCenter commands causing a crash on some Android devices

Cloud Data

  • Added Cloud Data commands to save and load variables to iCloud Drive on iOS and Google Drive on Android which will sync across all devices on the same platform with the app installed
    • SetupCloudData( string reserved )
    • integer GetCloudDataAllowed()
    • integer GetCloudDataChanged()
    • string GetCloudDataVariable( string varName, string defaultValue )
    • SetCloudDataVariable( string varName, string varValue )
    • DeleteCloudDataVariable( string varName )


  • Fixed LoadObject causing a crash with some FBX models, there may be further incompatibilities with newer FBX format specs
  • Added SetShadowCascadeValues command to set the size of each cascade level manually
  • Added DeleteObjectTree command to delete an object plus all attached objects
  • Fixed CreateMemblockFromObjectMesh incorrectly increasing string padding when called on an object created with CreateObjectFromMeshMemblock
  • Fixed SetSpriteAnimation causing a crash if called with a greater number of frames than the previous call
  • Fixed SetObjectMeshFromMemblock crashing if the memblock contains more than 65536 vertices

Video & Camera Fixes

  • Added double buffering to PlayVideoToImage on iOS to avoid flickering on some devices
  • Added double buffering to SetDeviceCameraToImage on iOS to avoid flickering on some devices


  • Fixed GetTweenPlaying commands crashing if a tween chain exists without being played

Text & Fonts

  • Added GetTextAlignment to return the current alignment mode of the text
  • Added DrawText command to draw text immediately to the screen
  • Fixed LoadFont failing to load from the system fonts folder when SetErrorMode is set to 2


  • Fixed JSON conversions being inaccurate with integers over 16 million due to floating point assumptions
  • AppGameKit Type variables that begin with an underscore “_” will now match with JSON fields that don’t have the underscore, for example an AppGameKit variable named “_type” will match a JSON field named “type”, this allows JSON files to have keywords that can’t be used as variable names in AppGameKit


  • Updated Android Tier 2 libraries and projects to use libc++_static instead of stlport_static

System Commands

  • Added GetDeviceNetworkType command to check the current network type (mobile or Wifi) or iOS and Android
  • Added GetStorageRemaining commands to get the current free space and total storage space on iOS and Android
  • Fixed written files sometimes being invisible to external PCs connected via USB
  • Fixed Android videos being replaced with a black texture after resuming the app on some devices


  • Updated Firebase to version 4.5.0 on Android
  • Updated Firebase to version 4.11.0 on iOS
  • Disabled Firebase functionality on Amazon apps due to a crash when it checks for Google Play Services

For all existing users the AppGameKit V2018.04.12 update is now live on Steam.

GameDev News

Scroll to Top