Download

does TCP network of UE4 support high performance communication? e.g. MMO server-side

I read some articles about Replication of UE4, and found the Replication is not effective and it would wastes performance of network.

Everything you ever wanted to know about replication
https://wiki.beyondunreal.com/Everything_you_ever_wanted_to_know_about_replication_(but_were_afraid_to_ask)#Things_to_keep_in_mind_while_reading

Performance and Bandwidth Tips
https://docs.unrealengine.com/latest/INT/Gameplay/Networking/Actors/ReplicationPerformance/index.html

so I want to implement TCP communication by self: add third network library(Libuv,ACE,boost Asio, etc.) into my UE4 server. is there any other way better to process high performance network in UE4?

You are talking about two separate things. Replication is an architectural thing in ue4. I would think you are better off customizing replication rules, or maybe implementing custom replication techniques, then actually implementing your own networking stack.

now I implement networking and replication by self, didn’t use Replication which integrated in UE4, because the default server mode(which is used for UFUNCTION(Server, Reliable, WithValidation)) in UE4 has been removed in shipping building, the default server mode is only fit for testing, its performance is inefficient.

https://answers.unrealengine.com/questions/70015/dedicated-server-connection.html

I’m very confused by what you’re saying here, but Server functions are not removed from shipping builds… that wouldn’t make any sense. Using replication to drive an MMO is generally ill-advised but not impossible, you probably want some kind of deterministic lockstep simulation - and Unreal is neither of those things.

If you want to look into custom networking solutions, look at Raknet or something. Or you can directly send data using UE’s sockets.

Hard to suggest ideas without more information on the game. MMO can apply to a wide variety of games.

thx for your suggestion, in my opinion, UFUNCTION(Server, Reliable, WithValidation) is used to network communication that connected by command in client-side: GameClient.exe ServerIP -game. if so, why can’t connect to server by this command in this cause:https://answers.unrealengine.com/questions/70015/dedicated-server-connection.html

I’m also very confused by what you’re saying. Please look over your posts before posting it, “… is used to network communication that connected by command in client-side” doesn’t really make any sense. Would like to help you, but can’t understand you.
Sorry!

Oh, and we use Replication for our MMO. Works great. Just look up on how to adapt it to your game.

I’m so sorry, english isn’t my mother language. I want to say:if I want UFUNCTION(Server, Reliable, WithValidation) to work, should Client connect to Server by execution of CMD:GameClient.exe ServerIP -game? like this:https://answers.unrealengine.com/questions/70015/dedicated-server-connection.html

if I use FSocket Socket = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateSocket()* to create TCP connection, I have to handle all byte data received from client by myself, so how can I specify the bytes of Replication from all bytes, so I think if I use FSocket, I have to discard UFUNCTION(Server, Reliable, WithValidation). do I express clearly?

Yes, it should work. Just remember that this RPC to the Server only works if called from an Autonomous Proxy.

You can by default, only call Server functions on the Client on the Player Controller, or the Players current Pawn - nothing else.

To call RPCs the player must ‘Own’ the actor.

thx all your help, does it means that if to call RPCs, I must use default Sever-Client Model, can’t use FSocket?
Sever-Client Model that I say means execute CMD:GameClient.exe ServerIP -game, to connect to server.

I think this person was confused with same problem that I’m also confused.
RakNet Integration
https://answers.unrealengine.com/questions/188493/raknet-integration.html