I want to implement a real-time multiplayer game, like a word game in my mobile app. I'm sorry if the question is too broad, but I want to set a learning path to myself to achieve my goal.
The idea roughly goes like:
userA clicks Play Now button and gets directed into a pool
Every 10 seconds, the pool gets analysed according to data of users (rating, etc) and 5 user to each room with 5x close-rating users in the same rooms.
First of all, I want to ask if this approach is correct?
Secondly, during the game-play, after getting assigned to the rooms, I want:
User1 selected randomly between 5 users.
Game starts..
For the round to finish:
User1 has 60 seconds to complete or,
All other 4 users click 'success' or 'fail' button.
During rounds, users should be able to real-time chat.
To achieve this scenario, what kind of learning path should I set to myself?
Is Node.js, Socket.io and Redis good for achieving what I want to achieve? What do you suggest me as a learning path?
Lastly, I did reading and I came across Google Play Games allow this matchmaking, but requires users to login with Google+ accounts, however I am doing my login with OAuth2, and I don't want to change that. I want to achieve this on my own instead.
Node.js
and socket.io
will work just fine, I suggest you learn concept of rooms
in socket.io
for players to be in the game round. I don't see real need to use redis
, it is key-value storage, but mondodb
(or any kind of *sql db) could be useful for some data to be stored, like scores, leaderboards, etc.