In this tutorial we're going to learn how to use the Facebook Instant Games Plugin for Phaser 3, how to preload assets, access player details and store game stats and player data. Instant Games is a way for people to play games across Facebook platforms on desktop and mobile, including within news feeds or Facebook Messenger conversations.
Phaser has natively supported Instant Games since version 3.13 and is built on-top of the Facebook Instant Games SDK version 6.2.
In this tutorial we'll create a test-bed app which you can use to experiment with all aspects of the plugin. By working through this you'll understand what features the plugin contains, how to use them and hopefully be inspired to put them into your own games.
Before we write any code, you should run through the Instant Games Getting Started guide. This will help you configure your development environment so you can test Instant Games. Please understand, that unlike with normal html5 games, you cannot just run an Instant Game locally.
They need to either be zipped and uploaded to Facebook, or you need to set-up and run a local SSL enabled web server and then use the Facebook embedded iframe to test your game. This is all covered in their comprehensive guide, so there's no need to go over it here, but I would urge you to have gone through these steps before continuing.
The most important step is creating a new app. Even if you already have a game hosted on Facebook you'll still need to create a new app specifically for your Instant Game. You cannot have an Instant Game running on the same Facebook App ID as any other app, so be sure to complete that part especially before continuing.
From this point on I'll assume you have set-up your own Instant Games App ID, have the means to test your Instant Game and have a copy of Phaser 3.13 or above. So, let's get started.