We are pleased to introduce our new Google Play Games Services (GPGS) plugin, loaded with features and enhancements that far exceed the legacy plugin. Our engineers have been working hard to add all of the requested features and enhance this plugin as much as possible. Here is a rundown of what’s new and improved:
We support everything!
We have written an interface to every feature in GPGS. If it’s in the Android version of their framework, we support it — and iOS support is currently in development as well. We’ve done all of this while working to maintain backward-compatibility with the legacy plugin.
Real-time and turn-based multiplayer support
Real-time multiplayer is great if everyone is playing at the same time. There are many games, however, that are designed around players taking their turns when it’s convenient for them. The legacy plugin supported real-time multiplayer but not turn-based multiplayer. Now, both options are available to you as a Corona developer!
Google Play Cloud Save or “snapshots”
Many people want to save their game progress to the cloud and sync between devices. With GPGS snapshots, you can save the player’s progress at given points and they can easily continue their progress on another device later.
Show specific leaderboards
The legacy gameNetwork.show("leaderboards")
API displayed all leaderboards — there was no way to get a specific leaderboard or filter by friends (only within a time range). The new GPGS plugin supports all of the leaderboard APIs offered by Google.
Support for incremental and hidden achievements
Almost every platform’s game networking service supports achievements. Of course, not all achievements are “all or nothing” and many accomplishments can be accrued over time such as “50 of 100 bosses defeated.” The legacy plugin only supported fully-completed achievements, but with the new GPGS plugin, you can record incremental progress.
The new plugin supports hidden achievements as well — you can track these achievements internally and reveal them when the player reaches a certain stage.
Profile image support
A frequently requested feature was access to the player’s GPGS profile images so that developers could download the images and use them in the game’s UI. That’s now possible and we support the full set of images including small profile icons, large profile images, and both portrait and landscape profile banners.
Google Play player stats
Using the new GPGS plugin, you can now retrieve various gameplay metrics for players. These include things like session length, days since the last session, number of purchases, spending probability, and more. You can use this information to create an engagement strategy that will drive more player activity.
In-game video recording and streaming
Many modern games let players record their sessions to share with their friends. This functionality is now included in the GPGS plugin — see the gpgs.videos node to learn how to implement it.
Event tracking
Google is big on analytics and their game services are as well. The new plugin supports recording of analytic data from your game to be stored on Google’s servers. You can now learn more about how players play your game, allowing you to fine-tune it to improve player experience. Examples include tracking exactly when a player uses a particular item or how fast they reach a certain level.
Quests
Tied in with event tracking, GPGS quests allow you to introduce time-bound challenges to your players that are based on the event data you’ve recorded with event tracking. You can use this to re-engage players by offering them an in-game reward if they complete the quest. You can even offer daily quests to keep players coming back.
Requests
This feature lets you add gifts and wishes to your game. Using this feature, you can improve social engagement by allowing players to send gifts/items or request them from other players in the game.
API summary
You can require()
the new Google Play Games Services plugin with the gpgs
namespace as in local gpgs = require( "plugin.gpgs" )
.
This large library is then divided into nodes pertaining to the feature:
- gpgs.* – authorization, settings, loading game information, loading images, etc.
- gpgs.achievements – achievement-based APIs.
- gpgs.leaderboards – leaderboard-based APIs.
- gpgs.players – player-based APIs such as loading player information, loading stats, etc.
- gpgs.multiplayer – APIs for real-time and turn-based multiplayer games.
- gpgs.events – analytic event recording.
- gpgs.quests – time-bound challenges (quests).
- gpgs.requests – APIs to send and receive gifts.
- gpgs.snapshots – APIs to manage game progress in the cloud.
- gpgs.videos – APIs to manage gameplay video recording and streaming.
As usual, you will need to include the plugin in your build.settings
and activate it in the Corona Marketplace. Then, proceed to the documentation for details on implementing these awesome new features.
IMPORTANT — If you want to upgrade to this new plugin, you should remove the legacy plugin from build.settings
, if you’ve included it. Although this new plugin is fully backward-compatible with the legacy API calls, you can not include both plugins inside your build.settings
file.
Conclusion
On our feedback page, you cast over 1,700 votes across eight different requests for various Google Play Games Services improvements. We are happy to say that this new plugin addresses every one of those requests except iOS support (currently in development).
Join us in the Corona Forums to continue discussing this great new addition to Corona’s collection of plugins.