DEV Community

Nik ksk
Nik ksk

Posted on

What multiplayer architecture and solution is suitable for my game

Hi, I’m an intermediate solo game developer, and I’ve been using Unity for about 1.5 years. I’m working on a game that requires multiplayer functionality.

Game Overview: The game features asynchronous multiplayer (similar to Clash of Clans), where players can attack offline setups of other players. The battles occur without the attacked player being actively involved. The combat resembles an autobattler (like LoL Teamfight Tactics), where players set up their characters, and these setups automatically battle the stored configurations of opponents.

Requirements:

I need to retrieve the opponent’s setup from a database once a suitable match is found.

I want notifications (e.g., “someone battled you and lost”).

I need leaderboards and in-app purchases (IAP).

I’ll be using Unity Game Services for most of the game’s features, but for the database, I’m not sure Unity provides a suitable solution. Since it’s asynchronous multiplayer, I’m not sure if dedicated server hosting is necessary. However, I do need a way to send and receive data from a database, and I’ve read that a server might be needed as a middleman for this.

Someone recommended using a simple database (like Azure Storage) with Azure Functions. I’ve also come across mentions of WebSockets and Lambda functions, but those seem to be more for peer-to-peer multiplayer, which doesn’t apply to my game. I’m not very experienced with multiplayer systems, so I’d appreciate any advice or suggestions on what I actually need. My game probably won’t have a large player base, as I’m an independent developer.

Edit: I forgot to mention I need this game to be server/central authoritative. I don’t trust players with game logic. Do I need a dedicated hosting server for that. If I don’t make it that way players may cheat and since it has IAP I don’t think it is safe.

Top comments (0)