How do I use online subsystem for my own API?

I’m building a mobile game. I want to use the Online Subsystem. I am building a test system while I develop. I cannot find API reference how to implement the subsystem protocols on my own API. The docs say the subsystem can be used for Steam, Xbox Live, Facebook, etc - but then fails to say how to use anything except for Steam.

I’m creating a simple NodeJS API for matchmaking. It will fetch the IP address of my dedicated server and return it to Unreal clients so they can join.

This is my planned flow (tell me if it’s wrong):

  1. Run dedicated server on my high-end PC running on a local IP address
  2. iPhone apps communicate with my local node server and performs matchmaking (if i can implement the subsystem protocol)

It kind of drives me crazy that Unreal teaches multiplayer through Steam since “magic” is happening under the hood. I simply want the server to point to my own matchmaking service but I cannot find any API docs or instructions on how to use your own service.

I know I can do “Open level: someIPAddress”, but I want matchmaking to deliver this to client. Do I need to just use standard networking in C++ to do this or can I use the subsystem?

What I was hoping for but can’t find (DefaultEngine.ini)

[OnlineSubsystem]
DefaultPlatformService=CustomMatchMaking


[/Script/OnlineSubsystemCustom.CustomNetDriver]
NetConnectionClassName=OnlineSubsystemSteam.CustomNetConnection

Where Custom is my own scripts. Then in Node I implement the proper protocols and then Unreal just talks to my server. But again, no information on this anywhere as far as I can see.

i didnt quite understand what you mean though i assume you are saying that you want to host your server on your pc. and you want your own matchmaking logic.

However i will tell you what i know.

take a look at this. this tells you how to create a executable for both the game and the server.

also even without subsystem nodes for multiplayer are already provided in ue4

I already know how to deploy dedicated servers. That is the easy part. What I can’t seem to figure out is HOW clients can find those servers. My game has a ranking system and I need my match making service to provide incoming connections with the appropriate server IP address. THAT is what im trying to figure out. I know I can write this from scratch in C++, use HTTPS or UDP and get this info, then create game sessions, but I would think instead I could make my API abide the subsystem protocol, and then unreal engine works out of the box. That is what this proclaims anyway: Online Subsystem | Unreal Engine Documentation

did you implement this?

Hey, were you able to make such system?