Over the past week or so I've been doing alot of research understanding how cloud code works along with how everything ties together etc.
I am developing a mobile game with multiplayer capabilities, think clash of clans or idle heroes concepts. (Its very different but similar functionality).
In order to make this game secure/viable all logic code has to be down on the server (The majority of the program), and the rest of it will be integrated through unity.
Do you have anything in particular that you think i should take a look at? Such as examples etc for this specific case? (I have been looking at most of the docs/tutorials etc on gamesparks, so specifically if something extra comes to mind)
My main question though, how would you recommend going about a multiple server scenario? If you take a look at the major apps out there, 2/3 days or once a week a new *server* is released, and these games generally have up to 20-300 servers depending on their server release frequency. Basically each server has everything unique, but is run from the same base server. This will help limit data base searches, and more importantly provide a consistent new start opportunity so that players dont have too big of a play gap when your first introduced to the game
The database might look something like this
opposed to a single server/database being
Each server would have their own unique playerList, and their ids would be incremental from 1 to 100 for example.
I believe you can achieve the results you are looking for with GameSparks built in Skill system in the matchmaking request, this will only match players together within a certain threshold to allow for fair competition. If you would like to host your own server binaries, you would have to do so externally as GameSparks doesn't currently fulfill this requirement for your game. GameSparks could store a list of the names of your server binaries and match your players together with our matchMakingRequest.
Thanks, there is alot of great info in there.
I still need a new server system, mainly because it refreshes the player competition, so that there isn't a huge gap between players who have been playing for say a month versus a few days. Its mainly supposed to be a multiple database system.
That being said i do have an idea where if each player has there own unique id, i code store a server list on top of that player.
For instance typical storage might be playerlist->playerData
What i originally wanted was serverList->playerList->playerData
But, i think i could store it like this: playerList->ServerList->playerData
Note: i when i say server system, its more of a database collection.
I think you would benefit greatly from our Multiplayer tutorials that can be found here, in particular I would pay attention to our Asynchronous Challenges and our MatchMaking as I believe this will give you a better understanding of how you can use GameSparks in an efficient way to develop your back end.
The matchmaking in particularly useful to your use case as players can have a "Skill" parameter added to their MatchMakingRequest which will allow you to match lower level players together in a manner you deem fit.
As for introducing ids and multiple servers to your game this is where GameSparks shines through. Each user that is registered in your game will be automatically given a unique _id or "PlayerId" that can be used to identify them throughout your games config, this can be found in the "Player" System Collection. GameSparks will also cover your servers needs automatically as your game grows so there wont be a need to add a new "Server" every week etc.
Does this sound like it would work for your use case?