Open-source project
playgameservices/play-games-plugin-for-unity avatar
playgameservices/play-games-plugin-for-unity

Play Games plugin for Unity: a bridge that took the iOS half away

Google Play Games plugin for Unity

3,656 stars982 forksC#NOASSERTION

At a glance

What is it?
This plugin exposes the Google Play Games API through Unity's Social interface, and it has been cut down to Android only. Two things to weigh: the SDK V1 line is being switched off, and the licence is not one GitHub can classify.
Who is it for?
If you are shipping an Android game on Google Play and want achievements, leaderboards, friends and cloud save without writing Java, this plugin saves real work and keeps the setup inside the Unity GUI. It stops being the right answer the moment any of three things is true: you need iOS, you need the older Games V1 features, or you want a licence you can read and cite.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 27 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

One API surface: Unity's Social interface

The design decision that makes this plugin useful is that it does not ask you to learn a new API. It implements Unity's `Social` interface, so sign-in, friends, achievements, leaderboards and friends lists go through calls your engine already has, and the Play Games implementation takes over once activated.

The feature list covers sign in, friends, unlocking, revealing and incrementing achievements, posting a score to a leaderboard, cloud save read and write, the built-in achievement and leaderboards user interface, events, and nearby connections, which has its own `NEARBY.md` in the repository.

The setup pitch is stated as three advantages: GUI-oriented project setup integrated into the Unity interface, no need to override or customise the player Activity, and no need to override or customise `AndroidManifest.xml`. That last point is the one that matters most in practice. Writing your own Activity and manifest entries is where most Unity Android integrations quietly break on a Play Store release, and a plugin that stays out of those files removes a category of bug.

The plugin is described as an open-source project from Google, copyright 2014, and it is careful about its own status: it is explicitly not endorsed or supervised by Unity Technologies, and it notes that Unity and iOS are trademarks of their respective owners.

iOS support was removed, and the README says so bluntly

The single most important line in the README is a notice. This version of the plugin no longer supports iOS. Google Play Games services for iOS is deprecated and is not likely to function as expected, and the README instructs you not to use it in new apps, linking to a 2017 deprecation announcement from the Android developers blog.

That date matters. A plugin whose iOS support was withdrawn seven years ago is an Android plugin now, whatever the repository description says. Anyone planning a cross-platform Unity title has to treat this as an Android-only dependency and needs a different approach for Apple platforms, which means either a separate integration or dropping Play Games features on that side.

The related structural fact is visible in the repository tree. There is an `Assets/` directory and a `Samples/` directory containing `Samples/SmokeTest/`, but the Android-specific machinery is all of it: a root `build.gradle`, a `gradle/` directory, `gradlew` and `gradlew.bat`, `SupportFiles/`, and a `scripts/` directory that holds the ProGuard configuration. None of that would make sense for an iOS target, and the absence confirms the change was structural rather than a flag.

Two SDK lines in one repository, and one of them is being switched off

The release list is unusual and worth reading carefully, because it contains two distinct product lines.

The current line is v2.2.1, published 2026-08-31, whose entire change note is that it resolved build errors in Unity 2021 and 2022 caused by Java version requirements. That is a small fix with large reach: a Java toolchain mismatch is the kind of problem that blocks an entire upgrade, and it tells you something about how the plugin is tested, which is against specific Unity versions rather than abstractly.

Before that, v2.2.0 from 2026-07-31 added support for the Game Stats API with `RecordEvent`, `RecordEvents` and `RequestEventsUpload`, and raised the minimum supported Android API level to 24, which is Android 7.0 Nougat. That is a real constraint: releasing to Android 7 and above is reasonable in 2026, but it does close off older devices.

The other line is a tag named `[Deprecated Games V1 SDK] v0.10.15`, published 2025-09-17. Its notes explain that following the deprecation of the Google Sign-In API, Games V1 SDK and its APIs are deprecated, that the deprecated APIs were to be removed from the SDK starting in May 2026, and that as early as July 2028 calls to those APIs will fail even on older SDK versions. A migration guide is linked.

So if you find an older tutorial, a gist or a fork telling you to call a V1 API, that advice has a published end date. The related search phrase "Play Games Services v2 SDK Unity" is the direction current work is going.

The repository records its last push on 2026-09-11, which is after the May 2026 removal date named in the deprecation notice, so the current line is where any live work is happening.

Keeping the APK small with ProGuard and managed stripping

Android developers care about download size, and this plugin is unusually heavy because it wraps a broad API surface into a single package. The README gives a concrete answer using ProGuard, on the argument that shrinking removes the plugin code for features your game does not use, so you ship only what you need.

The configuration is two settings and one file copy. In `File > Build Settings > Player Settings`, under `Publishing Settings`, set `Proguard` for `Minify > Release` and enable `User Proguard File`. If you want debug builds proguarded too, set `Proguard` for `Minify > Debug` as well.

code
User Proguard File
Assets/Plugins/Android/proguard-user.txt

The content to copy lives in `scripts/proguard.txt` in the repository, and the destination is the `Assets/Plugins/Android/` directory in your Unity project. The README also points at Unity's Managed Code Stripping as a second lever, describing it as compressing the entire project, and says it can be used together with ProGuard rather than instead of it.

Both settings are worth doing before you profile, because the size difference between shipping all of the Play Games surface and shipping only what you call is not marginal, and it is easy to leave undone.

Calling two social platforms at once, and a licence worth reading

The advanced section covers a case that comes up when a game already has another social backend. By default, calling `PlayGamesPlatform.Activate` makes Google Play Games the default social platform, so static calls on `Social` are carried out by the plugin. The README states this is the desired behaviour for most games using it.

If you need the original implementation reachable, the plugin can be used without overriding the default. Do not call `PlayGamesPlatform.Activate`; do not call `Social.Xyz` but `PlayGamesPlatform.Instance.Xyz` instead; and do not use `Social.Active` when interacting with Play Games, using `PlayGamesPlatform.Instance` in its place.

The result is that scores and achievements can be submitted to two or more social platforms at the same time.

csharp
    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

Now the licensing question, which needs saying plainly. GitHub reports NOASSERTION for this repository's licence rather than naming a standard one, which means the automated detector could not classify the `LICENSE` file at the root. There is a `LICENSE` file, and this article cannot tell you what it says. If your process requires a named licence, open that file and read it before shipping, and do not assume Apache 2.0 or MIT on the strength of the surrounding Google projects.

Two other details close out the picture. Existing integrations have their own upgrade path in `UPGRADING.txt`, which is worth reading before touching a working build. And the repository keeps a `skills/` directory, a `current-build/` directory and a `docgen/` directory, which suggests the project has been set up to generate its own documentation rather than maintaining it by hand.

Editorial conclusion

If you are shipping an Android game on Google Play and want achievements, leaderboards, friends and cloud save without writing Java, this plugin saves real work and keeps the setup inside the Unity GUI. It stops being the right answer the moment any of three things is true: you need iOS, you need the older Games V1 features, or you want a licence you can read and cite. Start from the v2.2.1 release, which fixed the Java version build errors in Unity 2021 and 2022, and read `UPGRADING.txt` before moving an existing integration. The developer guide at developer.android.com/games/pgs/unity/unity-start is where the setup steps actually live.

Frequently asked questions

Does the Play Games plugin for Unity support iOS?

No. The README carries a notice that this version no longer supports iOS, that Google Play games services for iOS is deprecated and not likely to function as expected, and that you should not use it in new apps. The repository layout matches, with Android Gradle files and no iOS equivalents.

How do I install the Play Games plugin for Unity?

Download the package from the repository's release page rather than cloning the source, since the releases section publishes the importable plugin. The README sends you to the developer guide at developer.android.com/games/pgs/unity/unity-start for the setup steps, and the `Samples/SmokeTest/` project in the repository shows a working integration.

What happened to the older Games V1 SDK APIs?

They are deprecated following the deprecation of the Google Sign-In API. A release note in the repository states that the deprecated APIs were to be removed from the SDK starting in May 2026, and that as early as July 2028 calls to them will fail even on older SDK versions. Google publishes a migration guide for moving to V2.

Official sources

  1. Issues
  2. playgameservices/play-games-plugin-for-unity on GitHub
  3. README
  4. Releases