{"id":13744192,"url":"https://github.com/myflashlab/GameServices-ANE","last_synced_at":"2025-05-09T02:32:55.100Z","repository":{"id":82895673,"uuid":"56428940","full_name":"myflashlab/GameServices-ANE","owner":"myflashlab","description":"Game Services Air native extension lets you easily have access to all the cool features of this great library in your Adobe AIR games.","archived":true,"fork":false,"pushed_at":"2020-08-06T11:11:48.000Z","size":72967,"stargazers_count":4,"open_issues_count":0,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-15T15:42:19.480Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"ActionScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/myflashlab.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-04-17T09:34:22.000Z","updated_at":"2023-01-28T00:43:45.000Z","dependencies_parsed_at":"2024-01-27T09:46:47.896Z","dependency_job_id":null,"html_url":"https://github.com/myflashlab/GameServices-ANE","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myflashlab%2FGameServices-ANE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myflashlab%2FGameServices-ANE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myflashlab%2FGameServices-ANE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myflashlab%2FGameServices-ANE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/myflashlab","download_url":"https://codeload.github.com/myflashlab/GameServices-ANE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253177863,"owners_count":21866409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T05:01:04.847Z","updated_at":"2025-05-09T02:32:54.592Z","avatar_url":"https://github.com/myflashlab.png","language":"ActionScript","funding_links":[],"categories":["Native Extension","AIR Native Extensions"],"sub_categories":["API ANE"],"readme":"# Google Game Services ANE for Android\nThe Google Game Services AIR native extension allows you to focus on your game logic and easily have access to all the cool features of this great SDK in your AIR games.\n\n**NOTICE: Google has discontinued the [Game Services Project for iOS](https://android-developers.googleblog.com/2017/04/focusing-our-google-play-games-services.html). On iOS, you may consider using [Firebase](https://github.com/myflashlab/Firebase-ANE/)**\n\n**Main Features:**\n* Achievements\n* Leaderboards\n* Real-time Multiplayer\n* Cloud Game Saving (Game Snapshots)\n\n[find the latest **asdoc** for this ANE here.](http://myflashlab.github.io/asdoc/com/myflashlab/air/extensions/googleGames/package-detail.html)  \n[How to get started? **read here**](https://github.com/myflashlab/GameServices-ANE/wiki)  \n\n# AIR Usage\nFor the complete AS3 code usage, see the [demo project here](https://github.com/myflashlab/GameServices-ANE/tree/master/AIR/src).\n\n```actionscript\n/*\n\tBefore initializing the GameServices ANE, you need to login users using the GoogleSignin ANE\n\thttps://github.com/myflashlab/GoogleSignIn-ANE\n*/\n\n// depending on your app design, you must customize the Signin Options\n// If you want GoogleGames signin only, do like below:\nvar options:GSignInOptions = new GSignInOptions();\noptions.gamesSignIn = true; // set to true if you are working with Google Games Services ANE.\n\n// you don't want to bother users with a permission page, right? so set these to false \n// and don't ask for extra access scopes.\noptions.requestId = false;\noptions.requestProfile = false;\noptions.requestEmail = false;\n\n// IMPORTANT: if you are not using Game Save Snapshots, you would not need GScopes.DRIVE_APPFOLDER\noptions.requestScopes = [\n\t\"https://www.googleapis.com/auth/games\", // must be set for games\n\tGScopes.DRIVE_APPFOLDER // optional and only needed if you are using Game Save Snapshots\n];\n\n// then pass the options to the initialization method of the GSignIn ANE\nGSignIn.init(options);\n\n// Finally, add listeners\nGSignIn.listener.addEventListener(GSignInEvents.SILENT_SIGNIN_SUCCESS, onSilentSigninSuccess);\nGSignIn.listener.addEventListener(GSignInEvents.SILENT_SIGNIN_FAILURE, onSilentSigninFailure);\nGSignIn.listener.addEventListener(GSignInEvents.SIGNIN_SUCCESS, onSigninSuccess);\nGSignIn.listener.addEventListener(GSignInEvents.SIGNIN_FAILURE, onSigninFailure);\nGSignIn.listener.addEventListener(GSignInEvents.SIGNOUT_SUCCESS, onSignoutSuccess);\nGSignIn.listener.addEventListener(GSignInEvents.SIGNOUT_FAILURE, onSignoutFailure);\n\n// check if user is already loggedin or not\nvar account:GAccount = GSignIn.signedInAccount;\nif(account)\n{\n\tinitGames(); // here, you will initialize the GameServices ANE\n}\nelse\n{\n\t// You should first check if user can signin silently, if she can't, use the signin() method\n\tGSignIn.silentSignIn();\n}\n\nfunction onSigninSuccess(e:GSignInEvents):void\n{\n\ttrace(\"e.account.scopes: \"+ e.account.scopes);\n\tinitGames();\n}\n\nfunction onSilentSigninSuccess(e:GSignInEvents):void\n{\n\tinitGames();\n}\n```\nWhen user signed in successfully, call ```Games.init();``` to initialize the GameServices ANE. And then listen to ```GamesEvents.CONNECT_SUCCESS``` events before calling other methods of this ANE. Make sure you are reading [the Wiki](https://github.com/myflashlab/GameServices-ANE/wiki) to learn how you should use different features of this ANE.\n\n# AIR .xml manifest\n```xml\n\u003c!--\n\tFirst make sure you have setup the GoogleSignin ANE and you have already added\n\tthe required settings to the manifest.\n--\u003e\n\n\n\u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e\n\u003cuses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/\u003e\n\n\u003c!-- Optional. Add this if you are using the \"Games.metadata.getCurrentAccountName\" method --\u003e\n\u003cuses-permission android:name=\"android.permission.GET_ACCOUNTS\" /\u003e\n\n\u003c!-- application ID which identifies your game settings in the Google Game Services console --\u003e\n\u003cmeta-data android:name=\"com.google.android.gms.games.APP_ID\" android:value=\"\\ 00000000000\"/\u003e\n\n\n\n\u003c!--\nEmbedding the ANE:\n--\u003e\n  \u003cextensions\u003e\n\n        \u003c!-- Embed the GSignIn ANE which is a must for the Games ANE to work --\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.google.signin\u003c/extensionID\u003e\n\n        \u003c!-- Dependencies required by the GSignIn ANE --\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.overrideAir\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.androidx.arch\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.androidx.core\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.androidx.lifecycle\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.googlePlayServices.auth\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.googlePlayServices.base\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.googlePlayServices.basement\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.googlePlayServices.tasks\u003c/extensionID\u003e\n\n        \u003c!-- gameServices ANE --\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.gameServices\u003c/extensionID\u003e\n\n        \u003c!-- Dependencies required by the gameServices ANE --\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.googlePlayServices.games\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.googlePlayServices.drive\u003c/extensionID\u003e\n        \u003cextensionID\u003ecom.myflashlab.air.extensions.dependency.androidx.design\u003c/extensionID\u003e\n\n    \u003c/extensions\u003e\n--\u003e\n```\n\n# Requirements \n1. Android API 19+\n2. AIR SDK 33+\n3. implement [GoogleSignIn](https://www.myflashlabs.com/product/google-signin-ane-adobe-air-native-extension/) in your app first.\n\n# Commercial Version\nhttps://www.myflashlabs.com/product/game-services-air-native-extension/\n\n[![Game Services ANE](https://www.myflashlabs.com/wp-content/uploads/2016/04/product_adobe-air-ane-extension-game-services-2018-595x738.jpg)](https://www.myflashlabs.com/product/game-services-air-native-extension/)\n\n# Tutorials\n[How to embed ANEs into **FlashBuilder**, **FlashCC** and **FlashDevelop**](https://www.youtube.com/watch?v=Oubsb_3F3ec\u0026list=PL_mmSjScdnxnSDTMYb1iDX4LemhIJrt1O)  \n[How to get started with Games Services?](https://github.com/myflashlab/GameServices-ANE/wiki#get-started-with-games-services)\n\n# Premium Support #\n[![Premium Support package](https://www.myflashlabs.com/wp-content/uploads/2016/06/professional-support.jpg)](https://www.myflashlabs.com/product/myflashlabs-support/)\nIf you are an [active MyFlashLabs club member](https://www.myflashlabs.com/product/myflashlabs-club-membership/), you will have access to our private and secure support ticket system for all our ANEs. Even if you are not a member, you can still receive premium help if you purchase the [premium support package](https://www.myflashlabs.com/product/myflashlabs-support/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyflashlab%2FGameServices-ANE","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmyflashlab%2FGameServices-ANE","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyflashlab%2FGameServices-ANE/lists"}