question

entelicon avatar image
entelicon asked

No free servers available

I am getting the error "There are not free [GameName] game servers in [Region] running build [X]. I have everything configured so the request matches the server info correctly. I'm not understanding what the problem is?

sdksCustom Game Servers
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
brendan avatar image
brendan answered

What is the title ID, and what are the inputs to the Matchmake call that you're trying? For matchmaking to work, there needs to be at least one available server instance slot, or a player slot free in a running server instance, in the region specified, where the Build Version and Game Mode match the inputs.

17 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

entelicon avatar image entelicon commented ·

The title ID is 1588

I guess I was not sure the proper events to use because the error occurred with using StartGame.

Here is the StartGame code:

StartGameRequest request = new StartGameRequest();
request.BuildVersion = "1";
request.Region = PlayFab.ClientModels.Region.USCentral;
request.GameMode = "Basic";
           
PlayFabClientAPI.StartGame(request, (startGameResult) => {
	Debug.Log(startGameResult.ServerHostname);
}, (error) => {
	Debug.Log(error.ErrorMessage);
});



I also created a Matchmake request, but currently have it commented out. Do I need to make a matchmake request before starting a game?

Here is the Matchmake code:

MatchmakeRequest matchmake = new MatchmakeRequest();
matchmake.BuildVersion = "1";
matchmake.GameMode = "Basic";
matchmake.Region = PlayFab.ClientModels.Region.USCentral;
PlayFabClientAPI.Matchmake(matchmake, (matchMakeResult) => {
int port = matchMakeResult.ServerPort ?? 7777;
string serverHostname = matchMakeResult.ServerHostname;
}, (error) => {
	Debug.Log(error.ErrorMessage);
});

Possible useful pictures:

Settings

Instance

Just also wanted to say I've been using PlayFab recently(lots of questions) and your service and help has been great!

0 Likes 0 ·
brendan avatar image brendan entelicon commented ·

I believe the issue is that you don't have a BuildVersion "1" defined in your title. The only BuildVersion I see configured is "Build1". It's not necessary to use Matchmake to start your game instances, but in general, it's usually the mechanism that titles use to get players into game sessions. Your design may require something different, of course.

0 Likes 0 ·
entelicon avatar image entelicon brendan commented ·

That was because I created a new build and forget to name it one. I just updated the code to request.BuildVersion = "Build1", same result. Any ideas?

0 Likes 0 ·
Show more comments
Show more comments
entelicon avatar image entelicon commented ·

Okay, but you guys have an Add on for Photon so that's why I'm slightly confused. What exactly is the point of the add on?

I also have a lingering question - when you say send it to the server, do you mean a cloud script event?

0 Likes 0 ·
brendan avatar image brendan entelicon commented ·

The Photon add-on lets you use Photon Realtime and Photon Chat as integrated services. Photon Cloud services are very different from custom game servers - Photon Realtime can be used for multiplayer games as well, with its own matchmaking and message routing - but it does not provide for any server authoritative logic, apart from webhooks.

And no, I meant you would send the ticket to your custom game server. Cloud Script is for very lightweight server authoritative logic which is not latency dependent (as it is a Web API call, not a persistent socket connection). If you're having trouble determining which you need, the simple way to view it is:

1. You only need light logic (a few seconds of CPU time) once in a while (a couple of times a minute), and the response time, and you can afford to wait on the response. Use Cloud Script.

2. You don't need server authoritative logic, or you only need light server-side logic as in 1, but you need a way to ensure you can connect players in realtime and pass messages between them, Use Photon Realtime.

3. You need true server authority and realtime message passing. Use a custom game server or Photon Enterprise.

0 Likes 0 ·
entelicon avatar image entelicon brendan commented ·

So Photon Cloud is the equivalent of PlayFabs server hosting in a sense?

I would use Photon Realtime in conjunction with PlayFabs server,correct? This would allow me to do things such as joining games and moving a part and it replicating for all the other clients?

When you say integrated, do you mean that playfab has its own custom API calls with Photon to make it easier to use? If so do you guys have of these I can look at?

Basically, how would I connect to a game using Photon running through PlayFabs servers.

I'm very new at this stuff so sorry if obvious stuff isn't so obvious to me.

0 Likes 0 ·
Show more comments
entelicon avatar image entelicon entelicon commented ·

Ahh alright.

Just to confirm, PlayFab can host servers and the Photon Add on allows for secure game logic and webhooks?

To do anything like actually sending information back and forth to a server(such as replicating the position of an object to all connected clients) I would have to get the Photon SDK and use purely Photon, correct?

0 Likes 0 ·
brendan avatar image brendan entelicon commented ·

Specifically, and in addition to all our other core services, PlayFab can host custom game servers for you. That would be your own custom game logic, running on a server that your players connect to using our matchmaker. Custom game servers run your code, and so, your logic.

In addition, one of our partners in the Add-ons Marketplace is Exit Games, and we provide an integration with Photon Realtime and Photon Chat there. Neither of those services run your custom logic on the Photon Cloud. You would need to work with Exit Game on a contract to use Photon Enterprise if you want server-side logic running in the Photon Cloud. What you can do with our integrated version of Photon Realtime is use the webhook calls for relatively lightweight server-authoritative logic.

You could use any of those options to replicate state info, like positions. It's simply a matter of how much server authority you want to have over the game. If you need no server authority over realtime data, use Photon Realtime. If you do, use custom game servers or Photon Enterprise.

1 Like 1 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.