It's already kinda/sorta there - but needs to be made more consistent - but these 4 events should be available to a BeamFrontend.
This can happen either via:
GamNet -> Apian -> appCore -> Frontend
GameNet -> ApianApplication -> Frontend
Missing/returned is currently done per-apian group using the former
There is some infrastructure for doing network-level (as opposed to group-level) peer join and leave via the latter
2 results are needed:
a) Both the Unity and Cli implmentation frontends need to report them (actually, should report net-level stuff too)
b) Code for the whole thing should be made consistent
OnPeerMissing() and OnPeerReturned() should be added to the IGameNetClient interface and called by the base GameNet implementation if a peer is reported missing or returned by the main "network" channel. Note that this is all about a PEER's presence in the P2pNet idea of a "network".
ApianGameNet's override of the GameNet methods which do the above dispatch will also dispatch those messages to any Apian instance using that particular "channel" before calling the base implementation.
So: the iGameNetClient gets notified about events related to the main net channel, and Apian gets the others.
It's already kinda/sorta there - but needs to be made more consistent - but these 4 events should be available to a BeamFrontend.
This can happen either via:
Missing/returned is currently done per-apian group using the former There is some infrastructure for doing network-level (as opposed to group-level) peer join and leave via the latter
2 results are needed: a) Both the Unity and Cli implmentation frontends need to report them (actually, should report net-level stuff too) b) Code for the whole thing should be made consistent
Either can happen first.