Thinking about this again, and a couple of related ideas.
I want to make it easy for a user to manage their account. Namely these two things:
- Manage what social providers the account is connected with
- Manage what devices their account is linked to
It would be great if these were things possible outside of the video game though. Basically, I want to let people use the same account on their Oculus Quest, Steam device, or eventual Apple AR/VR headset. I can’t imagine configuring one’s Steam or Apple account while in an Oculus Quest experience, or vice versa. But otherwise, how do you (as a user) find your Oculus linked account in order to link it to a Steam account, etc?
@EarthAdam Good question, it’s a common issue when working within closed systems like your targets. Generally speaking you have 4 options for merging two accounts (whatever they may be), let’s say Apple and Steam:
- While already authenticated with Steam, link your Apple account.
- While already authenticated with Apple, link your Steam account.
- Use a platform-neutral authentication factor like email first, then link Apple/Steam/whatever on top.
- Ask your user to set up all their account links through an online portal you control, before they go off and use your game on device.
Options 1 and 2 are probably least friction but they do require your user to actually use those login providers, which might be tricky in VR environments. Most platform providers don’t really have much incentive to make it easy for you to connect and potentially move users into other platforms, they want you and your users to stay in their ecosystem.
Generally Nakama can support any approach you choose - I think the decision is really what kind of user experience and/or friction level you decide is right for your game. Hope this helps!
Hey @EarthAdam I was considering the same scenario and had some ideas here: Multiplatform - One Account? - #5 by novabyte
There is still the concern that the user has to have access to the current platform to register a new one though. Having an intermediary like email or facebook could do the trick. So if I lose my existing platform, you could send the account code to email or login as facebook to retrieve it, before registering the new platform.
Personally, I’m getting rid of the idea of ‘device login’. Too many issues can happen, and edge cases to deal with.
As I’m building more of an app and less of a game in VR, I’m just using game stuff (like Unity and Nakama) to build the experience. I think early adopters will be cool w that, and will probably even favor the ecosystem, although I don’t want to lock users in to the gaming world per se. So if they want to manage their account alternatively they can have that option.
It sounds like while I can use the DeviceID and Email for now, I’ll still be able to build out the functionality to eventually say “Click here to link an existing account” as a way to manage accounts across ecosystems. That said, it seems like the online portal option is ultimately what I want to build out.
Just making sure I have the right understanding of that capability once the time comes down the road. Thanks!
Thanks for sharing @Bunzaga , this is a good thread to dig into. It makes me wonder (probably for @zyro ), once several social accounts are linked, can friends from all of them be added into the friend’s list of that Nakama account?
@EarthAdam A user account in Nakama exists with a collection of social identities attached to it (as “links”). When a friend is added from Facebook or Steam network its checked on import against the identifier from that social network to generate the friend relationship in Nakama.
There’s no separation between friends that came from one network and another. That’s by design because the social network for your game exists within your game and not as a property of the separate social platform.
once several social accounts are linked, can friends from all of them be added into the friend’s list of that Nakama account?
Hopefully my explanation above was helpful. In short yes. Friends exist on a Nakama user account and are “imported” (if you want) when a social provider is “linked” to the account.
Do these show up in the database? I don’t see a table for friends, or a column on the
users table. Thanks
@EarthAdam Yes, friend relationships are of course in the database. Have a look at the
Keep in mind we don’t really recommend using the database directly to read/manipulate this data. Use the Nakama APIs for friend management instead.
Sweet, that makes sense. It’s much easier to use the APIs you guys make for it, especially from Unity, I just like to look at the tables to double check I actually understand what’s happening. Thanks @zyro !