Async Multiplayer Match limits


#1

Hi,

I’ve been working with the Async Multiplayer feature and hit somewhat of a issue, as I was doing some testing.
I needed to handle some Async Multiplayer matches timing out or updating them (using the updateMatch API call) to transition them to the complete state.
In this process, I seem to have hit a limit in ChilliConnect requests, (Error 10002 - Account Restriction: Account does not have access to this feature, or has exceeded the usage limit.) which seems to be a hard limit on Active Async MP matches (around 10 matches per player).
The thing is, all these matches were already in the “Completed” state, hence, non-active, but I was still unable to create any more matches for that particular player (or it’s opponent, which was always the same)
So, I was wondering:

  1. Whether this particular behaviour was a bug (“Completed” matches being counted as Active matches, not allowing me to create further matches)
  2. If I could get a more explicit notion of what are the limits on Async Multiplayer matches we’re dealing with to figure out whats the most suitable tier for my needs.

Thank you in advance.


#2

Hi Pedro

Would you be able to send me the ChilliConnectID of the player that you are encountering this issue? And I’ll investigate.

There is a number of active matches per player limit, 10.
Number of players in a match, 10.
There are some data size limits StateData, TurnData and OutcomeData - 32kb.
OutcomeAttachment size (if your game has access to attachments) - 1mb.

Feature availability limits are generally listed on the ChilliConnect pricing page https://www.chilliconnect.com/pricing/
Technical limits are generally in the documentation https://docs.chilliconnect.com/guide/ or API call documentation https://docs.chilliconnect.com/api/
If we’ve missed any please be sure to point them out and we’ll add them in our next documentation release cycle.

Hope this helps
Richard


#3

The player in question is player with ID: muqr0oXTQy5cCmeulKtKrGfEIwcwUzDl (as well as it’s only opponent on said matches: Tlpcb72nBZgnqe8tcxAmlxwRs01mMWpe)

I made sure to test it recently, to ensure the issue still occurs, and I’ve confirmed so.
There should be 10 matches (of type “H2HCHALLENGE”) on its recent matches list, 9 completed, 1 in progress (as the time of this writing, but has a ~5 day timeout).

When attempting to create another match of the same type, simply by invoking the “createMatch” function, with arguments (“H2HCHALLENGE”, “PARALLEL”, 2) returns the following error:

"Error:10003: Account Restriction {\"info\":\"Players exceed active matches limit: muqr0oXTQy5cCmeulKtKrGfEIwcwUzDl\"}"

Can you confirm if this is a bug (“Completed” matches being flagged as Active) or if the limit is indeed 10 matches (in any state) for the indie tier?

Thank you again


#4

Thanks for these details and time checking this issue.

I have reproduced the issue when using updateMatch and setting it to completed that the match remains “active” for the player. I have added the issue to our backlog.

I may be able to offer you a workaround. What was the scenario that you were using updateMatch for? In general usage we’ve found the updateMatch call often unnecessary. The flow being; CreateMatch, JoinMatch, StartMatch (if autoStart not used), SubmitTurn (multiple), with the final SubmitTurn setting the match to completed.

Richard


#5

Thank you for looking into this, Richard

I was relying on “updateMatch”, as opposed to “submitTurn”, simply because I wish to allow players who are already on a Async MP match to update their state (using the match StateData) and still allow further players to still join the match.

Since “submitTurn” need the match to be in the “IN_PROGRESS” state before turns can be submitted using that call. On the other hand, players could not join matches in the “IN_PROGRESS” state, so “updateMatch” was my only option which would fit this situation.

As a side note, did the API change in any way for the Async Multiplayer “queryAvailableMatches”/“joinAvailableMatch”/“joinMatch” calls? I’m almost positive I could query and join matches in the “IN_PROGRESS” state, which now I cannot. (which is part of the reason I ended up relying on the “updateMatch” so much).


#6

Ah so you are wanting to update the StateData for a match before it is started.

There havent been any recent code changes for the “queryAvailableMatches”/“joinAvailableMatch”/“joinMatch” calls. They work on matches that have not yet started. Once started a players’ matches can be retrieved by the GetPlayerMatches call.


#7

Indeed. Keeping a match in the “WAITING” state lets me both update it and let new players still join, at the same time. It may not be as intended but it was what I needed.

I see, I must have mis-remembered then.


#8

Good morning Pedro, I just wanted to update you on this, we pushed out a fix for the updateMatch call late last week.


#9

Hey Richard,

Glad to hear that, thanks for your support on this!


#10

So am I right in understanding that each player can only be in 10 active games at one time?