There's very little documentation with integrating relay with netcode. I took a look at the HelloNetcode sample for relay integration with entities and flew way over my head.
Can anyone please give me an explanation on how I would integrate relay into netcode? Perhaps there's a struct or method I should look into?
I got this going with my current netcode implementation (without relay) but from what I've seen from the sample, they have a completely different way of networking (Or at least different syntax).
private void StartServer()
{
var serverWorld = ClientServerBootstrap.CreateServerWorld("Server World");
var serverEndpoint = NetworkEndpoint.AnyIpv4.WithPort(Port);
{
using var networkDriverQuery = serverWorld.EntityManager.CreateEntityQuery(ComponentType.ReadWrite<NetworkStreamDriver>());
networkDriverQuery.GetSingletonRW<NetworkStreamDriver>().ValueRW.Listen(serverEndpoint);
}
}
private void StartClient()
{
var clientWorld = ClientServerBootstrap.CreateClientWorld("Client World");
var connectionEndpoint = NetworkEndpoint.Parse(Address, Port);
{
using var networkDriverQuery = clientWorld.EntityManager.CreateEntityQuery(ComponentType.ReadWrite<NetworkStreamDriver>());
networkDriverQuery.GetSingletonRW<NetworkStreamDriver>().ValueRW.Connect(clientWorld.EntityManager, connectionEndpoint);
}
World.DefaultGameObjectInjectionWorld = clientWorld;
Entity joinRequestEntity = clientWorld.EntityManager.CreateEntity();
clientWorld.EntityManager.AddComponentData(joinRequestEntity, new ClientRequestEntryTag { });
}