Guild, friends, groups per character instead of per account

What is the best way of architecting every feature like chat, friend, group to Work on a per character basis?

@dungeon2567 We’ve helped game teams with this kind of game design requirement in the past. There’s an elegant solution to achieve this game design:

  1. The player signs in with one of the auth options in Nakama (Steam, Device, etc, etc.)
  2. When the player creates a “character” in the game world you create a random UUID (i.e. `Guid.NewGuid.ToString()` and you authenticate with that.
  3. Store within a storage object against the Nakama user in step (1) the UUID used to create the character. Maybe store it under a collection named by the Nakama user ID in step (1) and the key called `”characters”`.
  4. Use all Nakama features as you normally would while signed in as the Character.

The added advantage of this approach is that if you wanted to; you could have Friends lists and similar belong to the Nakama user created in Step (1) but all the Character specific information and progress would belong to the Nakama user created in Step (2).

This approach also works really well with gameplay frameworks like Hiro.

Hope it helps.

1 Like

What is the best way of autheticating with this guid? using deviceId? is it secure? what if other players have access to this uuid?

@dungeon2567 Use custom auth, and pass in the UUID as the input ID. All of the identifiers used with authentication are private to the player.

There’s also improvements you could make to this flow in the future but it is not worth the over optimization until you have Characters and the various gameplay features implemented on it.

1 Like

I wish I could buy Hiro license, but sales email ghost me for centries. :melting_face: