I am looking to help myself understand networking more by making a program that moves a sprite around both clientside and serverside. Up to this point I have tried reading through the netgame example code, but I am stuck on a few concepts. I understand how to do things as demonstrated in this tutorial, but I see that in the actual example, the code uses things like NetgameEventDispatchers, and SlotContainers. I may end up just making something I can understand with the TCP classes, but before I embark on a project like that, I'd like to try to better understand the preexisting netgame engine better. Here is what I think I know so far and what I need help with:

NetgameEventDispatchers seem similar to the if-else statements in the tutorial, except they directly (somehow) call functions with a type (or types) of argument(s) specified when they are created like this:
CL_NetGameEventDispatcher_v1<ServerUser*>  //This would specify a dispatcher that takes 1 ServerUser* argument, correct?
By using dispatchers, you only ever need to pass the name of the event and the correct type of argument(s) and the dispatcher will decide which function to send it to. I'm pretty sure about this, but could somebody please confirm this, and also explain how I would go about initializing dispatchers with more than 1 argument?

Slot containers are similar to dispatchers in the sense that they call functions, but unlike dispatchers, slot containers respond whenever they receive signals. However, I can't figure out how slot containers pass arguments on to the functions they are calling. Could somebody please help me?

I know that this is already a lot to ask, but I have one final question. How would you go about passing custom classes (for example, a coordinates class) as an argument in a NetGameEvent? In the example it converts the class to a NetGameEventValue, but is that necessary? What even is a NetGameEventValue?

Thank you guys so much for even reading this post. I know it's a lot to ask, but the reference docs aren't meant for people like me who don't even understand what the basic function of each class is.

Once again, many thanks,