Anyone who integrates with Steam gets access to a whole bunch of other features there. The game gets a distribution platform, beta builds with separate download alternatives (several can be juggled at once), and chat (lobbies and DM) + direct game joining. So any of that should be roll your own or just use Steam like sane people do.
Ranked matchmaking is something that can be specific to each game, so it’s probably not always straight-forward. A first-/third-person shooter may simply rank you on win:loss ratios, while other games rely on progress and acquisition of powerful upgrades.
I think all a system provided by UT needs for Steam games is unranked matchmaking (random player matchup), ranked matchup (developers assign ranks to players based on their criteria, UT’s system only finds players in the pool at that rank) and maybe toxic player segregation (scum and villainy get their own ranked and unranked pools).
For mobile games you kinda need some sort of account and lobby system. It’s very convenient to just let the client use a soft account registration by device IDs of some sort, then optionally register the account to an e-mail address later. If not part of a service provided by UT it would be useful to give people examples. Indie game developers are NOT generally well-versed in backend server programming
If using UT’s server hosting, some control over it in a management panel is necessary. If you’re going to run instances as needed based on capacity, all of that has to be made stupidly simple. But if a game is in testing you don’t want it to run too many instances because of costs.
We don’t know what sort of prices are intended, but if I were to run a small beta I’d like to limit the number of players so it doesn’t get too costly. A turn-based strategy game would presumably also be less of a stress on servers than a 60 ticks per second FPS, so equal prices there wouldn’t be fair. I foresee a whole mess there
A lot of this has already been mentioned, but they’re things I consider necessary, so I repeat:
- The server should be able to build from version control.
- Slim headless server builds - drop textures and sound for small uploads (you should only need scripts, mesh and scene data at most).
- The replacement high-level networking API needs to be finished
A lot of the things typically ask for can be done by running a VPS or dedicated server with some backend services, but the two things which could make it less ideal are ability and proximity. As mentioned above, knowing how to make games doesn’t necessarily prepare you to write server-side software, and a random VPS out there might have connection issues both to the game server and to some or all players in a match. Many indies just want to concentrate on the game, and as few stops as possible to get all the services working together is best.
Personally I’d write (and have written) matchmaking/account systems myself. There isn’t much to it for a dumb matchmaker that just finds open games - you just need either a web API that returns JSON or a gRPC API with compact binary data, then the only slight effort is if you want to make a live-updating webpage to go with it.
UT could probably provide something like that fairly easily, with an SDK to quickly connect clients to it. With gRPC you run a CLI command to export the client code automatically, and all you need to do is write actual server code.