MessagingService Release

I’m seeing a lot of people happy for this feature but after reading up on it I see no useful application for this feature whatsoever ;-;

  • Can’t do matchmaking because, well, you need 1 server to handle that and every server would be subscribed and be doing work on the same stuff all with different latency and Y U C K I’m not even going to get into how much of a pain it would even be to get a demo to work, let alone a full production game.

  • Cross-server chat is possible now, but wait, its not … To me it looks like you can only realistically do player - to - player cross server chat, which we already have the site chat for and third party options…

  • How do we know that this feature won’t be randomly turned off like the SocialService … (I know it’s for beta testers but they seem to always disable new features every time they release for like 3 weeks.)

If anybody can tell me some cool applications that would be great because I’m drawing a blank on how I can use this feature at all ;-;

18 Likes

I’m calling it. Making a phone to communicate with other people in the universe…

8 Likes

What I am doing to overcome this is have a server check if there is a server designated to handle matchmaking, and if not then it sets the designated matchmaking server to the current server and begins handling all requests there.

The only downside to doing this that I can see is that you will need to be checking and making sure you are not going over the limits given, and you will also need to incorporate this with datastores (for storing what server is currently handling matchmaking) and in the event the datastores go down and the server closes before the datastores come back up, it could result in the game not allowing another server to be designated for matchmaking.
You could overcome that by checking how long it takes to get a response from the matchmaking server, if it is over a certain time then it marks that server as ‘Inactive’ and moves on to another server.

4 Likes

You still have to think about

  • rate limits
  • what happens if 2 or more servers publish that they are going to be the dedicated matchmaking server
  • what happens when that dedicated server crashes
  • how would other servers know if they are the dedicated matchmaking server?

I just feel like Universe Scripts would handle all of the use cases this feature has without all the headaches but sadly it most likely won’t be released.

6 Likes

So, I take it this means I won’t have to use my stupidly complex datastore system I made earlier to do this. I thank you kindly, engineers, you’ve done us all a big favor.

5 Likes

The documentation is misleading – this is really a limit around total number of subscriptions per topic. We will clarify it.

17 Likes

It’s pretty clear that the 10k universe limit is temporary while in beta. Wouldn’t bash on that too much until it’s in full release.

Edit:
It’s per topic, interesting. That’s a lot less limiting overall.

I can see very useful applications for this like a cross-server marketplaces. Really cool update! Far better than datastores already.

7 Likes

I agree Universe Scripts will make this much easier, and I feel like with the release of this feature they can finally start getting Universe Scripts pushed out (think about it, if they needed to get the networking system done before getting the actual system out then this would make sense)

Back to the topic, you would just check to make sure there is no active server (either by the previously active server marking itself inactive from the game shutting down, or other servers detection a 95+ second delay before getting a response from the dedicated server. I say 95 second in case the matchmaking server sees itself reaching the limits and starts adding a bit of head room for other servers requests.) If there is no active server than it starts running the code to subscribe itself to the Matchmaking Topics and the game runs as such.
I believe when you subscribe it returns an RBXScriptConnection, Correct me if I’m wrong, in which case you could disconnect as soon as the server is being moved to another dedicated server.

Edit: You would want to also wait before creating all the subscriptions while setting a datastore saying a server is ready to be setup, so multiple servers don’t try setting up all at once.

I’ve been thinking about the most efficient ways to do this, and I feel like you would probably be better off sending a ping from the matchmaking server every 10-20 seconds to let other servers know if it is still active, if it seems to not be pinging then the servers will know to create a new dedicated server.

3 Likes

While messing around with it, I’ve noticed that you can’t test it in Studio and that it actually throws an error when in Studio. That’s a bit limiting for serious usage of this because you have to test in-production and wrap it in a check to see if it’s in Studio, but it’s understandable given it’s in beta.

The message size limit is a bit strict though. Is there any chance this will be increased either before or after the beta’s conclusion? For strings with non-ascii characters, 1kB isn’t that many characters, and with tables especially you can reach the limit quickly.

11 Likes

Just tried a mock up and realized, how are servers going to teleport the players from other servers…

3 Likes

Service for EZ Battle-Royale system.

2 Likes

Do topics exist in all places in the universe or are they limited to one place?

3 Likes

Are strings passed through this service null-terminated? Are there any other odd encoding quirks to worry about?

5 Likes

While waiting to be teleported, create a subscription on the server the player is in that will wait for the proper teleportation data (Place ID, Server ID, etc.)

Make sure to disconnect the subscription for when the player leaves the session, and after the player has been teleported (Shouldn’t affect the dedicated server, hopefully)

2 Likes

I assume all places, since there are limits for a universe as a whole. Although I have not tested this yet.

3 Likes

It’s also not possible to do Cross Server chat for EVERYONE to chat because of filtering restrictions. There is no current way using Chat or TextService that you can see if 2 players are allowed to chat because of their settings due to them having to be in the same server for this to work. :confused:

I also believe that matchmaking is something listed under the “Universe Scripts” on the roadmap. I can see Universe Scripts being more useful than this and I hope this isn’t the replacement of it and that the wait will be worth it

14 Likes

This is a great update. been wanting something like this for awhile :smiley:

1 Like

Why isn’t using FilterStringForBroadcast not an option?

5 Likes

You still have to make sure that the user you are showing the message to hasn’t blocked them or something preventing them from seeing the message normally.

3 Likes

This is not correct. You can use FilterStringAsync (the TextService version) and CanUsersChatAsync, all you need is the UserId of both of the players.

5 Likes