PUN Classic (v1), PUN 2 and Bolt are in maintenance mode. PUN 2 will support Unity 2019 to 2022, but no new features will be added. Of course all your PUN & Bolt projects will continue to work and run with the known performance in the future. For any upcoming or new projects: please switch to Photon Fusion or Quantum.

What's new in v1.2.11

Main Changes:

For a full list of changes, check the log here.

Support for PlayFab Servers 2.0

In this version we've extended the support to cloud hosting services to include the new Azure PlayFab Servers 2.0, also known as Thunderhead.
The PlayFab integration grants to you the option to run Headless servers inside the Azure infrastructure, spin news servers on-the-fly and retrieve metrics from your servers from the main dashboard.

You can find more information about the integration on our dedicated page and also on the PlayFab Sample.
It shows how to build a working headless server running directly on the PlayFab VMs and a client capable of connecting to the game server.

Support for Source Control Systems

Photon Bolt now include support to Source Control Systems integrated with the Unity Editor, like Perforce and others that use the VersionControl.Provider API to synchronize files.
By default the support is disabled, so it will not interphere on the normal usage of Bolt, but if your team make use of such tool, you can enable it on the Bolt Settings window, at the Miscellaneous section, on the Enable Source Provider Integration checkbox.

Enable Source Provider
Enable Source Provider.

Force Public Binding Endpoint of Game Server

Photon Bolt has built-in procedure capable of discovering the public IP and PORT of the peer running the SDK, it makes usage of the STUN protocol.
This is useful and necessary in order to accomplish the punch-through between the game server and the client, creating a direct connection.
The procedure works fine in most of the network scenarios and grants lower delays among the players.

Unfortunately, this behavior will not work on 100% of the cases, mostly because the game server is running on a very constrained network configuration, that is the case on some hosting service providers, corporative infrastructures, universities, as examples.
For those cases, Bolt has now the option to force the public endpoint of the local peer.
This configuration is only useful if you are able to get this information at the startup of your game server or it's fixed for the current server.

Here is shown how to inform Photon Bolt which endpoint it should use as it's public IP:PORT configuration.
The endpoint information is sent to any client trying to connect to this server in order to try the punch procedure.

C#

public class Menu : Bolt.GlobalEventListener
{
    private void Awake()
    {
        BoltLauncher.SetUdpPlatform(new PhotonPlatform(new PhotonPlatformConfig()
        {
            ForceExternalEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234)
        }));
    }
}

New Thread Pool Manager

In order to improve the memory allocation and power consumption, it was created a new Thread Pool manager, responsible for the creation and management of Threads inside the SDK.
It guarantees an on-demand initialization, recycling, and destruction of Threads.
This is mainly useful in some restricted platforms like the mobile targets and consoles like Nintendo Switch (that has limited usage of Threads).
The Thread Pool controls all threads used by the SDK, those are focused on running the network updates and maintaining the background connections.

Back to top