From what I read, AGameSession
is a wrapper around the IOnlineSession
, but I don’t understand how exactly. AGameSession
has fewer methods than IOnlineSession
and no references to it either. I’ve read differing takes on what AGameSession
actually does (here and here) and where it’s supposed to live.
I’ve boiled it down to this:
AGameSession
: For server ↔ online service communication. Eg. TheRegisterServer()
method.IOnlineSession
: For client ↔ server communication. Eg. TheJoinSession()
method.
I know AGameSession
comes with the engine, while IOnlineSession
comes in the OSS plugin, so it’s only required for OSS. So my question is:
- Do the two target different parts of the multiplayer flow? (as I deduced above)
- Where do they live?
IOnlineSession
also hasCreateSession()
which makes me think it should live on the server. - If I don’t need OSS, what can I use
AGameSession
for?
NOTE: I’m not talking about any particular implementation of OSS (like EOS or Steam OSS.) I’m only experimenting with the default SubsystemNULL to understand the multiplayer flow in an uncomplicated manner. I’ve also gone through the (very good) Network Compendium but unfortunately it doesn’t clear my doubts.