Just wanted to give another status update for the projects.
Coding P2P for use with the Steam Platform is… complicated. There are a lot of resources out there for networking and I’ve selected Mirror as my resource to ensure proper communication between players in a P2P format.
However, setting this up for communication via Valve is a bit of a hurdle. There’s a significant learning curve for this, and it’s a LOT higher than I expected it to be.
I’ve been dividing my time between pouring over example code, creating my own network manager scripts, and doing general testing of P2P systems that will ultimately enable Autumn Park Mini Golf to be multi-player. There are dozens of moving parts on this, and thus far there are a couple gears that just aren’t turning with the rest of the team.
I’m more optimistic today than I was a week ago with regards to what needs to be done. I feel that I have a better understanding now, although I’m far from an actual solution. A lot of it has to do with Valve’s lobby and chat systems, two resources that I’m not entirely sure how best to implement.
I’ve looked at other games that have multiplayer configured within them. Terraria, for example, simply lists networked games as a menu option and then after providing some Steam-related information, just starts the game on the host’s system and allows others to join in as they wish, at any time until the host quits the game.
Other games will create a full lobby system that requires players flag themselves as ready before the actual match begins. GTA5 does this with their heists, for example. There’s a lobby as players come in to the initial set up screen, they have to flag as ready, then the mission begins.
I’m leaning towards the latter scenario than the former, as it doesn’t make sense to let a player join in when an unknown number of holes have been played prior to them hopping in.
If I go that way, it will require all networking resources be immediately present and available when the game first loads up the title screen without knowing if the player plans to go single player or multiplayer.
Because I understand how important this feature is to a lot of people, I am trying my best to get it incorporated. I still don’t have an exact time line for it to be fully implemented, but I’m giving it the proper attention and focusing on this to the best of my ability. I am a team of one, after all, and sometimes the brain just melts down after reviewing thousands of lines of code. However, I am grateful for the folks who developed Mirror and the various YouTube channels that discuss this resource in detail because they did quite a bit of work for me. Now I just have to understand it all and make sure it works consistently.
I will be providing another update soon-ish. Thanks for stopping by!