Best Method For Cross Server Matchmaking?

Currently, my game Strucid uses a 200 player lobby for battle royale matchmaking. However, these servers are never filled completely(especially at night) and there are usually several 50-100 player servers rather than one or two 150-200 player servers.

What’s the best external method/website for cross-server communication, factoring in costs and request limits?

6 Likes

~~For cross server communication, I would recommend using @Reselim’s long polling system (Github was taken down for some reason, but I found it archived. Can confirm it works at the moment.)
https://web.archive.org/web/20180617170811/https://github.com/Reselim/roblox-long-polling~~ Whoop de do! Looks like the actual scripts weren’t archived…
You can make your own system like this though, send a request, wait for server to reply, repeat.

One thing you may be able to do is make a lobby place with only one server at all times, (comes with its downsides, specifically attacks on that server) but this may not be possible in your situation.

I’m looking for a site to host the javascript on.

I would always recommend, if possible, hosting it from your own machine (just a personal preference though and not always possible). There are many free web hosting services though. One I’ve used is Glitch. Although unprofessional, they host the servers for you and allow node.js apps. Google “free web hosting” and you’ll find more options.

3 Likes

Even if you don’t want to use your own machine (if it needs to be turned off, used heavily), you could use something like a raspberry pi computer. They are very cheap but can still run many web servers like Apache or Nginx.

My service, https://RBXMod.com is working. While the core functionality is there, some of the nicer features have not been developed yet. For example, once you sign up for an account, I’ll need to manually give you your 64 character hexadecimal authentication token to use in your games. It also may go down for updates early in the morning occasionally.

To summerize the service, it allows you to upload a Lua script to my server on the cloud and run it remotely. My server can either make a copy of the script for each roblox server, or function more like a universal script. When you game starts, you can request a new instance of your remote script which returns a session token. If you share this token between all your places, then each will have access to the same script. This script, since it can communicate with all servers, can easily perform cross server matchmaking. This token can also be used to make a cross-game script.

If you are interested, send me a email at RBXMod@gmail.com . We can go over your requirements in more detail and make sure this service is a good match for you. It’ll be a paid service in the future (based upon resource usage) but right now it is in testing and free).

3 Likes

That sounds cool. Just so that I, and others know, when you say “early in the morning it may go down for updates”, what Timezone is this for?

I hope to eliminate down time entirely by making only new instances of scripts update. For now, the updates would be around 1 am mountain daylight time and last up to 15 minutes. Generally it should take about 2.

Oh, so only around 15 minute updates. That would be fine.

How did you implement the running of the script on the server? Did you use the Lua virtual machine? Or something custom?

It is running a customized version of LuaJIT. I removed some basic functions like load, dofile, collectgarbage, ext. And only load the basic, string, table, and math libraries. LuaJIT is built for Lua version 5.1, but does have some miner differences from the standard Lua 5.1 interpreter.

Sounds good, that could be useful for some future games.

I’ll check out your service some time :grinning:

1 Like

Hey! Okwo supports these features and may be good for you. Hit us up at https://0q0.eu (Discord at the bottom of the website)

Tutorial here: Easy cross-server & Discord synced chat with Okwo - #9 by Etheroit

We also have added sectors about 2 months ago which works similiar, but you can specify an identifier (works pretty similiar to Roblox’s MessagingService).

You can also contact support@0q0.eu for exact limits and unique offer.

I’ve re-published the roblox-long-polling module, albeit in an unsupported state.

Alternatively, check out my Engine.​IO client which adopts an actual standard:

3 Likes

I’m assuming you mean a Node.js app by this?

What exactly is a Nose.js app? I ended up just buying a quadrennial service thing off of 000webhost and putting a .php file on there.

node.js is a JavaScript runtime environment that allows you to run JavaScript server-side.


It’s pretty cool

1 Like

Oh, you said JavaScript somewhere above so I assumed it was a Node app. Didn’t know you were looking for somewhere to host PHP code

Node.js is a runtime environment that basically runs JavaScript outside of a browser, so you can think of it as something you can use to deploy apps that can run on a webserver. You can use these apps to do basically whatever your heart desires, for example I’ve set up an external database system and used a webserver to make an API that retrieves and updates data, or used it to make a Discord Bot.

Is there an advantage to using Node.js over a simple php file?

Avoid 000webhost like the plague. Very bad security practices, they stored passwords in plaintext a few years ago and got their database leaked.

You’re going to want some sort of VPS or equivalent. like AWS, DigitalOcean, Google Cloud, Azure, something of the like. Heroku is an option.

PHP is up to you to use. I would advise against it.

3 Likes

To be honest I’d be here all day if I started comparing PHP and Node.js but one thing for certain is that there is a huge advantage of using Node.js due to an extremely wide variety of learning resources and package libraries available. It’s very easy to learn and can be used to make scalable apps really quickly, from simple web servers that receive requests to creating REST API’s for Databases.

I sound like a salesman or something but it’s genuinely easier to work with, at least in my opinion.

2 Likes