Networking examples for larger-scale games? (Few hundred players)

Before I get started I would like to point out that our team is not attempting to create the next “MMO” or anything special like that. We’re simply working on a game with fast-paced skill-based combat that has an open world and some simple game-play mechanics. If you would like an example of our combat system, I would take a look at BDO as this is type of of skill-based arcade fighter style we’re going for. Our problem however is that we’re concerned about the networking limitations of Unreal Engine’s built in networking. Which from quite a bit of reading I’m under the impression it uses a P2P setup, which is not at all ideal. There’s a few tutorials on setting up a dedicated server in Unreal Engine which are pretty straightforward.

I’ve thought up a few solutions for our game which I’m not really sure what would work best in practice, because I’m not at all sure about the limitations of the Unreal Engine 4 networking implementations. I’m aware that there’s a lot of thigns that some games replicate across the server which can be made local which would take a load of stress off of the networking implementation, our idea is to only have our AI and Players replicated over the UE4 networking and everything else would be accessed through a third party server socket.

I should add that we want to have about 1,000 player maximum cap on a server, but expect no more than 500 players to be on each. Our world is massive and there’s a lot of room for players to be spread out.

Idea 1: (Leaning towards this one)

  • UE4 networking ONLY handles Player & AI replication across entire world.
    • Replication should be limited based on a replication distance, so items on the other side of the world aren’t sent over the network.
  • TCP server handles Authentication, Questing, User Inventory, Character Progression.
  • UDP server handles synchronizing player location (With TCP fallback).

Idea 2: ( Easy enough, less bandwidth intensive, higher hardware requirement)

  • Split game up into different regions, and have each region handled by it’s own UE4 networking instance.
  • TCP server used as a hand-off between different regions, so the client can connect to the correct server during a seamless server transition.
  • TCP / UDP servers for the same stuff as Idea 1.

We want to make use of the Unreal networking for player movement and combat, because of the complexity involved with the high-speed combat system. Synchronizing all of these states and not being able to use the server-side physics from Unreal would really set us back several months in development, and as a small team this isn’t ideal.

Hey there, i find this to be a really interesting project.
Unfortunately, I don’t have such example as I’m seeking it myself.

I’d like to make some kind of instantiated party coop rpg with a global lobby.
My idea was, from the title screen you select a server available, on connection to an authentication TCP server, you provide your credentials and then you’re good to go while retrieving character information and connecting to the Unreal dedicated server.
The issue how can I come up with encryption such as TLS to perform authentication with the TCP server ?

I found this “Networking-What-is-everyone-using-for-SSL-TLS-connections” but looks like this is old as I currently have OpenSSL 1.0.2g version sources in my Source/ThirdParty folder on UE4.16.
Can’t find much content on secured connections, and idea on how to proceed ?