Because of the nature of our current project, we decided to hand craft our own LightWeight LobbyServer Database so that we could host a dynamic set of changing content. This will continue to provide some much needed functionality to our project.
Things are working well so far. But I have a few questions, as I only understand NAT Punchthrough on a superficial level.
I’ve been reading about the Master Server and trying to figure out what it offers that we don’t have or can’t do for ourselves. And NAT Punchthrough is looking like its on that list.
Right now, I have players who want to host games, announcing their availability in a LobbyServer. Players who wish to join a game can specify some criteria and pull a list of available hosts who match their request.
All participants are currently referenced via a unique key and their external IP address, which as you know, may not resolve to their machine.
I’ve got the mechanics of basic gameplay working on a timer.
The game employs turn-based play so as a temporary measure, the closer you get to your turn, the more frequently you check to see whose turn it is and whats going on. When its your turn though, the only communication between you and the gameserver is when it tells you what your options are and you choose to do something.
As it stands, all communication is either user initiated or conditionally timed.
All of this works without Unity’s built in networking. But I think that I’ve been lazy, choosing to build with technology that I know rather than learning how this part of Unity is designed to work.
Our testing hasn’t reached a stage where we’ve had to resolve through NAT. So I’m wondering if we will need to run the Master Server and tie into its functionality to get this working?
Is there any other way to do this?