Designing a Multiplayer Game Similar to Teamfight Tactics

I’m currently struggling to create a multiplayer game similar to League of Legends Teamfight Tactics. I want to generate the same map for each player and position them accordingly. Additionally, I want to implement a player list UI on the right side, and when a player icon is clicked, the camera should switch to view that specific player’s perspective. Could you provide some ideas on how to design this? Should I use multiple scenes for this purpose?

Judging by a video this seems a purely turn-based game. You may not even need NGO for this, it could be implemented solely with cloud/web services. More so if this is what it seems to be: a purely 1vs1 experience much like chess.

The players seem to be able to perform only discrete actions. They can tell to attack a target and then the figures perform their animation. The command “attack” is networked, but everything else each client can run on its own because it has no impact on the gameplay, it’s purely visual.

I don’t know about maps. Are there even custom maps? It looks quite simply like a chess board but with hexagonal fields. This may be presented with different visuals but as far as I can tell the “map” is the same size and shape throughout the game.

If by player list you mean a feature where you can watch other player’s matches as a spectator, then there’s all the more reason to implement this with webservices because then you needn’t have all the players and spectators connected to the same server.

In any case, keep in mind that a scene is a container for game objects. You can load a scene or you can toggle one game object tree inactive while setting another active - same effect except the latter is faster and easier to handle. It also lends itself well to using additive scene loading where the scene becomes nothing but a prefab of content that you can load and unload.

Having clients in multiple (single-loaded) scenes in NGO is not possible without implementing custom scene management, which is quite challenging to implement.

Thank you very much for your reply! The game I want to implement does not need physical interactions between players, but they can observe each other’s play. It is similar to a tower defense game where each player has their own map to play on. You mentioned that it does not even need networked game objects (NGO). Could you please recommend any solution that can be used to make this game?

One solution would be Unity’s Cloud Services. Authentication, Cloud Save and Cloud Code could make that game tick.

Thanks I will have a look at it.

Just one more question that I am curios about is that, by using that solution, instead of synchronizing every object in the game, is it possible to just switch the camera view to another player’s perspective?

Sure since this has no impact on the gameplay.

Although it depends a little on what “another player’s perspective” actually is. Say you have 100 matches running, each 1 vs 1, then you’d have the list of matches stored in the cloud with the player IDs. In order to show any viewpoint you’d also have to have each match’s current state in the cloud.

It’s absolutely doable but make no mistake, neither networking nor cloud implementation are easy to accomplish. Particularly if it’s your first time attempting such a game. Try to take small steps at a time.

Thank you again for your response. However, I don’t understand how it’s possible to show your play to others without sending movement data or similar to the server.

“Movement” is irrelevant.

The command is like in chess: “Piece A moves to location X/Y” or “Piece B attacks piece on location X/Y”

Given those commands, the game knows how to move pieces and how to animate them. It might even get told which piece wins if there’s some form of simulated combat, or the attack is merely damaging but not killing the opponent so the attacker doesn’t actually change its game state - it merely performs animations moving to the target, swinging his arms, and returning.