Not a game but for all intensive purposes the same thing, I have a real-time 3D medical simulation environment (C++, multiplatform Windows/iOS). One thing I'd love to do is join a session with a user so I can see what they're doing, and be able to take over to demonstrate to them.
I don't really want to write server-side applications if they're not needed but other than using 3rd-party server middleware (Smartfox) I haven't done real-time multiplayer stuff and have a few questions:
- How hard is it to get a P2P connection between two arbitrary computers anywhere on the web, typically at least one behind a company firewall? Users are quite typically not very technical and while telling their workstation firewall "yes allow access" is OK, getting them to open ports would be a problem... plus every extra step is a barrier to them actually bothering through when I send them a free version and want to demo it.
- If it is strictly a 2-player scenario, is P2P better or would you tend to write a server application regardless?
- What about a 'hybrid' setup where sessions are P2P but a simple server is used to facilitate things?
- What are the main C++ cross-platform libraries these days? It's been 15 years since I was doing this stuff as a hobby