Ask a Question

Ask a Question

What's the best practice for login via email?

Hey, I am learning Beamable, and the first thing I need to figure out is authentication. For my game, players have to log in via email, and after I learned the identity section in the documentation, I couldn't find the best way to do this task. Beamable will automatically create a user for each player, generating many temporary accounts, which will cause data pollution. What I need: 1. Beamable does nothing until players click to sign up or sign in. 2. Once players click to sign up and provide their email and password, Beamable creates an account. 3. Once players click to sign in and provide their email and password, Beamable logs in and, if he can pass the authentication, gets access to this user. 4. Once a logged-in player clicks sign out, Beamable returns to the initial state 5. No temporary accounts will be created in all situations. You can consider the login progress of this game to be like that of a traditional mmo-rpg, such as WOW.

Group invite & JoinRequest

How can I send a invite to a particular player , and how can that user see the invite request. How can a user send a join request to a group admin , and how can that admin can accept or reject that request.

App getting crashed when tried Google sign in

when tried to sign in using google the application is crashed and there are no errors in logcat. attached ClientID both iOS and android.

How do I create a match between two specific players?

I want players who are friends to be able to challenge each other. Is there a way to do it?

Chat Service has no messages only at start

At the start, just right after the default BeamContext is ready, I subscribe to the chat service, then I use ChatView to load chats and messages. The chats found in the chat view are correct, but they don't hold any messages, even if I have sent chat messages in those chats before. In fact, the next time that some update happens in the subscription, previous messages are present. Is there something I'm missing? Should I wait for some kind of initialization before subscribing?

Ghost events when SimClient connects to a network

I'm encountering an issue that I can't seem to resolve. I've observed that when I create a new SimClient, set up its event handlers, and initialize it, I encounter one of two situations, depending on the time elapsed since the last opening of a SimNetworkEventStream with the same matchId/roomName: 1. I receive all the events and ticks from the entire previous session, which uselessly triggers the relevant event handlers. This occurs within approximately 1 minute of the last SimNetwork connection to the room. 2. I don't receive any information from the previous session, and the ticks start from 0. This happens after approximately 1 minute since the last SimNetwork connection to that room. The problem lies in the fact that I cannot determine from the code which case it is, making it challenging to decide how to handle these "ghost events" coming from a previous, yet fresh, run of my game. ``` _multiplayerData.localPlayerDbid = GameManager.Instance.BeamContext.PlayerId; _multiplayerData.matchId = matchId; _multiplayerData.sessionState = SessionState.Initializing; // Create Multiplayer Session SimNetworkEventStream networkEventStream; networkEventStream = new SimNetworkEventStream(_multiplayerData.matchId, GameManager.Instance.BeamContext.ServiceProvider); _simClient = new SimClient(networkEventStream, framesPerSecond, targetNetworkLead); // Handle Common Events _simClient.OnInit(SimClient_OnInit); _simClient.OnConnect(SimClient_OnConnect); _simClient.OnDisconnect(SimClient_OnDisconnect); _simClient.OnTick(SimClient_OnTick); _simClient.OnErrorStarted += (e) => { // TODO: show "connecting to server error message" Debug.Log($"Sim Client Errors Starting... {e.ErrorMessage}"); }; _simClient.OnErrorRecovered += (r) => { // TODO: remove any error UI and resume the game Debug.Log($"Sim Client disaster averted..."); }; _simClient.OnErrorFailed += r => { // TODO: force exit the match, because the network is too unstable to continue or recover. Debug.Log($"Sim Client wasn't able to recover. {r.ErrorMessage}"); }; ```

Is there any documentation or examples for Unreal 5?

I see Unity stuff everywhere but nothing for Unreal. Does it exist?

How to set Alias/Username for leaderboard?

How to set alias for leaderboard without any login or signup in beamable. Like user play game as a guest and want to set name manually.

Match.matchType is null

Hi. I'm trying to get matchType(SimGameType) from Match object, but it has null value. I tried to get match from MatchmakingHandle and MatchmakingService.GetMatch() both, but both have same contents. (null matchType) I can only find matchType from matchmaking tickets, but i think it's better if i can get it from Match object. Is this situation a bug? Or do I need to get matchType from matchmaking tickets? ```json MatchmakingHandle { "Tickets": [ { "ticketId": "891c40b8-872a-46a5-8635-1951e4e62ab0", "status": "Searching", "created": "2023-08-09T07:39:03.502699600Z", "expires": "2023-08-09T07:39:33.502699600Z", "players": [ "1567406182463489" ], "matchType": "game_types.test_solo", "matchId": "", "Status": 0, "SecondsRemaining": 20 } ], "Status": { "GameId": "da476885-248b-4761-b1c0-7a9beb99bf1b", "SecondsRemaining": 20, "Players": [ "1567406182463489" ], "MinPlayersReached": true, "GameStarted": false }, "State": 1, "Match": { "matchId": "da476885-248b-4761-b1c0-7a9beb99bf1b", "status": "Created", "created": "2023-08-09T07:39:12.579885900Z", "matchType": null, "teams": [ { "name": "player_1", "players": [ "1567406182463489" ] } ], "IsRunning": false }, "MatchmakingIsComplete": true } ``` ```json MatchmakingService.GetMatch() { "matchId": "da476885-248b-4761-b1c0-7a9beb99bf1b", "status": "Created", "created": "2023-08-09T07:39:12.579885900Z", "matchType": null, "teams": [ { "name": "player_1", "players": [ "1567406182463489" ] } ], "IsRunning": false } ```

Field population

I wonder if this class actually gets all of it's fields populated? [Serializable] public class ObtainCurrency { public string symbol; public long amount; public long originalAmount; public bool HasBonus => originalAmount > 0; public long Delta => amount - originalAmount; } I'm assuming it's a no - I haven't been able to find any code that would do changes to the originalAmount. So if we need that kind of functionality - we should implement it on top using custom player data?