Turn based board and card games - final stages of research


I’m researching multiplayer solutions for turn based games made with Unity.

I am currently working on a turn based card game.

I eventually want to update a simple turn based strategy game that I wrote way back in the pre-uNet days based on a “summer of code” tutorial by the team (brothers? Verdun creators?) that eventually became PUN, afaict.

In general I have a few ‘board game over the internent” projects I’d like to work on. It’s all pro-am as time allows work.

I program because I need to rather than because I like to. I code as part of the work towards my end-goal, so I don’t need to reinvent the wheel for the joy of it. I can do it if it’s required, and I’m fairly proficient with C#, but coding is my second focus, at best.

My current card game is played primarily using the Unity UI system. I move graphical elements into and out of layout groups, as the cards move around the game table, so I will need to sync gameobjects as they move in the hierarchy.

I’ve been reading through all of the solutions I can find, including non-photon solutions, and none jump out as the obvious “right choice”.

I feel that the best options (at least within the photon-verse) are either Realtime or PUN2, more by process of elimination than choice. Bolt seems more FPS based and Qantum more for large scale RTS games.

I’ve yet to be drawn into Mirror, MLAPI, or any of the others; as I’m worried about the lack of support ongoing.

On the other hand, I don’t see much in the way of turnbased tutorials for current photon products.

There are a few notes in the Realtime docs (https://doc.photonengine.com/en-us/realtime/current/tutorials/async-and-turnbased) but nothing like a tutorial. The PUN turnbased tutorial (RPS...https://doc.photonengine.com/en-us/pun/v1/demos-and-tutorials/package-demos/rockpaperscissors-demo) has been deprecated along with (afaict) the PunTurnManager, so I’d be starting from the ground up with PUN2vas well, it seems.

Does anyone have any concrete guidance?

I’m willing to dig into it and find a solution, but I’d rather not start down one path and wish I’d used the other.