• 0 Votes
    3 Posts
    418 Views

    Hi Reza, a simple workaround I would recommend is using our atomic methods, such as IncrementGlobalStats, to form the field values with the returned value of that method and some other characters you selected. (defined a global statistic ahead of time, call IncrementGlobalStats() get the returned current value of the global statistic, e.g. 123, then combine with the name you selected to a unique name, such as name_123)

  • Web client security

    General
    3
    0 Votes
    3 Posts
    221 Views

    @David-St-Louis-0
    On my last question, can you restrict API calls to only be from a specific web domain or mobile app is? Google Api's allowed to restrict calls to firebase to be specifically from an web domain, or the specific app ID's.
    Another way to ask it, is there any way to restrict API calls to from a specific location?
    Thanks again,
    -Chad

  • RPG's on BrainCloud?

    Solved General
    3
    0 Votes
    3 Posts
    355 Views

    Hi Chad,

    Sorry for the late reply.

    Yes, brainCloud can handle RPG style games well, it provides a rich set of features that benefits any type of game - includes very flexible multiplayer tech, Our built-in real-time multiplayer services are more based around the idea of shared game experiences that last a finite period of time (i.e. arena shooters, casual multiplayer, etc.). Our matchmaking, lobby services, room server system, etc are all geared toward making this sort of experience easy and inexpensive to build - but also can integrate with 3rd party or custom tech. brainCloud provides support for custom Room Servers that can support any type of custom or 3rd party multiplayer tech. For all these characters related data (user data), you can use User Entity or Custom Entity to store and trace them. The end-user profileId and anonymousId are stored securely in the client library wrapper on user devices. Users' IAP items and currency end up “unlocking” “awarding” these to the associated profileId, so that will never be lost. If a player is offline, you need to have some code on your side to handle this situation with the request callbacks, as long as “update()” is not called, it will not process sending packet bundles or process callbacks from the received packets. Shouldn't keep all calls for later. Instead, update player stats once connected, in 1 call.

    Hope that helps!

  • Processing Refunds?

    APIs
    6
    0 Votes
    6 Posts
    508 Views

    @Paul-Winterhalder It'd be great if we can have this info. +1

  • 1 Votes
    1 Posts
    109 Views
    No one has replied
  • 0 Votes
    8 Posts
    583 Views

    @Travis-Brown-John You can create them manually from the Monitoring menu.

    Monitoring | Global Monitoring | Global Entities.

    Note - if your app is live, you need to unlock it first. You'll see a bit [+] button to the right of the Bulk actions drop-down.

    Good luck!

    Paul.

  • 0 Votes
    3 Posts
    329 Views

    @Henry-Smith said in Recommended way to read Entity data? (Unity, C#):

    Sorry to bring back an old thread, but I'm just learning the platform and I thought I'd share my solution to this.

    First, define a generic class to handle the raw json response data:
    eg. my Tut1_AddTwoNumbers api returns:

    {"data":{"response":{"answer":24},"success":true},"status":200} public class Response<T> { public ResponseData<T> data; public int status; } public class ResponseData<T> { public T response; public bool success; }

    Then for each api call that you have, define a class that contains the fields that are custom to that response.

    public class Tut1_AddTwoNumbersResponse { public int answer; }

    Now, you call your function and handle the response like this:

    public void Tut1_AddTwoNumbers() { string scriptName = "Tut1_AddTwoNumbers"; // Anonymous object to supply the params. var data = new { num1 = 16, num2 = 8 }; var jsonScriptData = JsonWriter.Serialize(data); SuccessCallback successCallback = (response, userdata) => { var responseObject = JsonReader.Deserialize<Response<Tut1_AddTwoNumbersResponse>>(response); //var responseObject = JObject.Parse(response); Debug.Log($"Success The answer is '{responseObject.data.response.answer}' | raw_json={response}"); }; FailureCallback failureCallback = (status, code, error, userdata) => { Debug.Log(string.Format("Failed | {0} {1} {2}", status, code, error)); }; // Call the script _bc.ScriptService.RunScript(scriptName, jsonScriptData, successCallback, failureCallback); }

    this line is the important part:

    JsonReader.Deserialize<Response<Tut1_AddTwoNumbersResponse>>(response);

    Hope that helps someone!

  • 1 Votes
    1 Posts
    272 Views
    No one has replied
  • 1 Votes
    2 Posts
    181 Views

    As a further heads up folks - it is looking like the 4.5.6 server release may get delayed until early next week. This is to allow us to create a proper mechanism for controlling with specific versions of Lobby Services are active at a time... (right now, it is possible for both old and new lobby services to be active during an upgrade transition - and given how much lobby processing has changed in this release - that wouldn't be good).

    That said - the rest of 4.5.6 is ready - so we are going to be doing a bit of an incremental roll-out...

    We are starting to release the 4.5.6 Client Libraries today We are also making the 4.5.6 Relay Servers available (on our existing 4.5.5 servers) <- this is a simple feature gate for us to enable.

    Then, once the 4.5.6 servers (with the new Lobby Servers and a few other fixes) are available, we will release them... that should be either late this week, or more likely early next week).

    Anyway, just FYI...

    Paul.

  • 0 Votes
    4 Posts
    473 Views

    @JasonL I understand the reason, but please do provide a way to pass custom data to authenticate api so we can use that data to set user displayname or profile picture or soemthing else on post-hook.
    Without this, we have no choice but to call a seperate call from client (so no beneift of 2 free api inside cloud call)

  • 0 Votes
    2 Posts
    219 Views

    To limit operations like IncrementExperiencePoints() to cloud code only. This will essentially take away the ability to make these calls from the bare client API. You can see a script that enforces these restrictions here - https://getbraincloud.com/apidocs/cloud-code-central/handy-cloud-code-scripts/restrictclientcalls-script/

    Refer to another post below for more strategies you can apply to prevent cheating: https://forums.getbraincloud.com/topic/23/discussion-strategies-to-prevent-cheating-in-tournaments

  • 0 Votes
    1 Posts
    126 Views
    No one has replied
  • 1 Votes
    3 Posts
    231 Views

    Amazing, especially Amazon In-Apps support

  • 0 Votes
    3 Posts
    434 Views

    @JasonL
    I can confirm they are working despite a warning, in strict mode.
    Thanks!

  • 0 Votes
    2 Posts
    232 Views

    Hi Lee,

    Apologies for the issue.

    As you mention - it appears that the issue was due to a Redis failure - and some fail-over handling in our API Servers that didn't seem to work properly for all servers. This resulted in some RTT errors for some apps.

    The issue has since been addressed (by rebooting the failing servers).

    We're going to do a post-mortem on the Redis fail-over code to see if we can find the offending code-path - and we've added additional monitoring alerts that will look for just this sort of error in the future so that we can act upon it immediately.

    Thanks for reporting it!

    Paul.

  • 0 Votes
    1 Posts
    122 Views
    No one has replied
  • 0 Votes
    1 Posts
    270 Views
    No one has replied
  • 0 Votes
    3 Posts
    500 Views

    @Paul-Winterhalder said in Matchmaking: Search Multiple Lobby Types:

    that

    Thanks Paul, I don't think I could do the different lobby info option as I would like the players to choose specifically which game mode and if I understand correctly, I can only do that by having the players search for a lobby of that game mode. It's not too much of an urgent issue, I just wanted to put it out there and see how realistic it was. I talked to Greg a bit and we discussed joining multiple lobby types at once. For now, I plan to search for multiple lobbies at once and cancel matchmaking for any possible 2nd joined lobbies.

  • 0 Votes
    3 Posts
    391 Views
  • 2 Votes
    5 Posts
    296 Views

    WOW, Thank you Paul