Greetings,
Quite a few of the top grossing games on iOS and android are async
challenge-based multi-player.
I was wondering what does it take to build a good multi-player game.
I’ve been playing around with Unity for some time now (nothing fancy - just n00b stuff). But, I’d like to learn more about multi-player games.
Primary target platforms are iOS and android - Windows Phone may follow later
on. Given Internet latencies, real-time seems out of question - hence, going
down the async route.
I would like to hear from the experts here who have built multi-player games
before - what has been their experience and major pain points they’ve faced.
Typical features used in existing multi-player games that I have seen include:
- social integrations with FB and/or G+
- ability to send/receive challenge notifications - both push as well as in-app (for larger payloads - since, APNS supports very small payload)
- match-making based on user attributes - level, scores, friends etc.
- leaderboards - both app-level global and social (among friends)
- achievements
Questions:
-
Clearly, you need some sort of server to be able to connect players together.
Any options there? I’ve heard about Photon server - would like to know how
easy/difficult is it to integrate with. -
Looking at Photon Turn-based documentation, it seems to implement
match-making based on rooms concept (and attached attributes) and
not based on user attributes.
Am I correct in this interpretation?
How does one implement match-making which is based on user attributes?
Is there any existing solution? or have you built it in-house? -
How do we implement the results computation logic - in case of photon or
otherwise? What options have you considered/come across? -
How to implement leaderboards and achievements? any existing solutions?
Google Play Game services provide both leaderboards and achievements.
I’ve not yet explored it much - but, would like to hear about your
experiences with it.
Does it work across platforms (i.e. iOS, windows phone)?
Does it support users logged in with say, FB - or does it require google accounts? -
Looking at the Google Play Game services documentation, it seems like
the developer needs to write code to keep posting score updates to leaderboards
including tracking of the leaderboard id to which to submit the score.
Also, for achievements, the developer needs to keep posting the progress
to the achievements and needs to keep track of the achievement id in the app.
I think this is too complicated. I think having a single point to post/submit
the score is important - which should internally trigger the required updates
to leaderboards/achievements/others.
Comments?
Please feel free to add any other points or attributes I might have missed.
PS: I’ve also posted the same thread on Unity Answers - don’t know how the forums and Answers are linked.
Please forgive me if it’s not advisable to do so.
thanks.