I have recently started playing with Replication and have watched the 6 part video series, as well as read multiple threads (such as this one) while trying to troubleshoot things and while I am starting to get a grasp on how Replication works, I am still having trouble understand the concept of Player Controllers when it comes to networked games.
The questions (sorry if any of them sound dumb):
-
When launching a game with 2 players and no dedicated server (using the Top Down template), why are there 3 controllers in the MyController debug view? Is it because the server has a copy of both controllers (Server PC, Client PC), and the client has his own copy of his controller?
-
As a test, I execute a Multicast event when clicking an object and print a string. If I click the object on the server, I see Server and Client1 print the string. If I click it on the client, I see nothing as I would expect, since he is not the server so it is ignored. If I set the event to Run on Owning Client and click the object on the client, I see Client2 print something. This is the only situation so far where I ever see a “Client 2”. In the other tests I’ve done, such as printing a string when simply hitting F, the client shows up as Client 1 even if there is no replication set up for that key press (it’s just a simple F → Print string in MyController).
Assuming I am correct about #1, why are Multicast events run on the server’s copy of the client’s controller, and not the client’s own version of his controller? What is the difference between Client1 and Client2?
Thanks for the help!