Today brings a huge update to AppGameKit! We have cool new commands that let you control the hot new technology of Augmented Reality on both the iOS (ARKit) and Android (ARCore) platforms. With these new commands and values we've stripped down the complexity, providing an easy way for you to access AR features from your own code. 

The new AR Demo shows how you can easily merge reality with your 3D digital content!

This new version adds new cloud saving commands for iCloud on iOS and Google Drive on Android and there's also a host of fixes and additions in many areas of the command set.

Here's a full run down of all the new features and fixes:

  • Here's the full Augmented Reality Command List and Values:
    • void ARSetup()
    • 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.

iOS

  • 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

Android

  • 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 )

3D

  • 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

Tweening

  • 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

JSON

  • 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

Tier2

  • 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

Firebase

  • 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 and available to download from TheGameCreators servers.

Thank you for your patience - we've worked long and hard to bring you this new version. Please feedback any issues into the main AppGameKit forum.