Take a look in some of the examples, code snippets, tutorials etc.
You should come across references to replication, client, server, standalone, dedicated & listen.
eg. Sync character health to all clients:
MyCharacter.h:
UPROPERTY(Replicated, Category=Health)
float Health;
MyCharacter.cpp:
int32* AMyCharacter::GetReplicationList(uint8* Recent, FPropertyRetirement* Retire, int32* Ptr, UPackageMap* Map, UActorChannel* Channel, FReplicationFlags RepFlags)
{
Ptr = Super::GetReplicationList(Recent, Retire, Ptr, Map, Channel, RepFlags);
// Replicate to everyone
DOREP(AMyCharacter, Health);
return Ptr;
}
eg. Command from client to server:
MyCharacter.h:
bool bSomeBool;
UFUNCTION(reliable, server)
void SetSomeBool(bool bNewSomeBool);
UFUNCTION(reliable, server)
void ServerSetSomeBool(bool bNewSomeBool);
MyCharacter.cpp:
void AMyCharacter::SetSomeBool(bool bNewSomeBool)
{
bSomeBool = bNewSomeBool;
if (Role < ROLE_Authority)
{
ServerSetSomeBool(bNewSomeBool);
}
}
void AMyCharacter::ServerSetSomeBool_Implementation(bool bNewSomeBool)
{
SetSomeBool(bNewSomeBool);
}
The only thing you need to make sure of is that anything you create is tested in a networked/multiplayer situation.
The good thing is that you can run quick, local multiplayer games using the editor.
It will let you select server type, how many clients, the screen size for each etc.
Very handy.