Hello! I just have a general question about which kind of networking (netcode, mirror, various photon products, etc…). I ought to use for a project. The idea is something like (and I have a singleplayer prototype), a real time, total war type multiplayer only formation tactics game that is:
- 1v1 only
- multiplayer only, no campaign
- doesn’t require leaderboards or any persistent data stored about players
- but I would like to have some kind of authentication
- hopefully some anti-cheat (whatever is available with p2p? or do you really need DGS for anti-cheat?)
- lobbies for players to host and join games, rooms where after joining you pick units, a game where those units deploy/fight, and a chat system both in the lobby, in rooms, and in the game, and hopefully ability to reconnect disconnected players (at least in the lobby/first room, if not in game)
- because it is a formation tactics type game, I would only need to network the formations themselves, and their state (so basically a transform + some info about number of men remaining, cohesion state, whether running/walking/fighting, status effects, etc…), only syncing about 10-20 formations per side
- and the individual men would be recreated on each client just as a kind of elaborate visual, but their individual positions would not need to match exactly over the network, as it is whole formations that are moved around by the player and determine fighting outcomes, ie individual 1v1 fighting not simulated, only the formations themselves are gameplay relevant.
- it would be slow paced, have no need for any aiming or fps type low latency or client prediction requirements, and it would even have intentional order delays, so basically just syncing the movement and state of total up to about 40 formations between only two players, moving slowly, and with pretty high latency being tolerable.
Would Photon’s PUN2 be sufficient for that? For authentication and lobby hosting do you need dedicated game servers, or can PUN do that? Would netcode be better? I’ve done some PUN and Mirror tutorials, and PUN seems pretty easy, but I want to make sure I don’t run into unforeseen performance issues mid development. Unity’s netcode for gameobjects with relay/lobby/authenticate also seems good in theory, but is relatively new and maybe not as well established or easy to use as PUN? Is there any obvious best solution for this sort of thing?
Thanks for any help.