I am in the process of developing a multiplayer card game and would appreciate guidance on the most suitable multiplayer service for a turn-based multiplayer game. The game will have a fixed number of players and requires to share the cards are played by each participant over the network. Latency in not a concern.
Most turn-based games would work well with a stateless REST API, and for the large majority of them that’s the solution of choice as it will only create traffic once per turn and the running costs of the server-side are quite low. This however requires you to use non-Unity tech for the server side.
In all other cases any realtime networking framework is still suitable. There is no real preference one over the other for a low-key turn-based game. It really matter more what you are comfortable working with and the state of documentation and support.
For an actual recommendation of any kind the post lacks specifications. Like: target platform(s), client-hosted vs dedicated server, service needs like Lobby, Matchmaking, Persistance, and so on.
Given that, I think you are trying to make a right choice before even knowing what you truly need. It is your job to define the specifications and then look for the most suitable solution. If you can’t or don’t want to do that, again, it literally does not matter which solution you will pick as long as you can work with it.
@CodeSmile I truly appreciate your response. I want to avoid managing my own server, so I am looking for an existing multiplayer gaming service that I can use. I was considering Unity Game Services with Netcode and Relay, but it seems more suited for real-time games rather than turn-based games. I would like to know if there are other technologies in Unity that support turn-based games.
Additionally, while I was researching, I came across Firebase Realtime Database and would like to hear your thoughts on that as well.
You can build a client-hosted game with Relay and NGO, that’s sound if cheat safety is no big concern.
There’s no specific turn-based networking framework that I know of.
Technically it’s really only about whether the clients push and request data on demand (REST API) or whether there is a constant synchronization and communication between two clients (realtime networking). In the latter case, even with nothing going on in the game, packets are exchanged regularly to keep the players connected and time synchronized but the bandwidth for this is minimal.
Realtime frameworks just happen to be encouraging developers on synchronizing things in turn-based games that needn’t be synchronized at all. Common case being a card game, where each card drawn and played onto the table has a NetworkTransform - even though start and end position of the card are known and there is no interaction of a “flying” card with anything in the game, thus it needn’t be realtime synchronized. An animation that every client plays would suffice. But that’s just something you need to learn.
I am a beginning, beginner at this. Im trying to learn how to make a Turn-based, realtime Card game (Kinda like spades, or go-fish, or rummy. What would be the best core to start out with? is it 2D-mobile?
Im using iOS, i need it to be realtime. I need a lobby, and I need it to be client hosted.