Hi. Before soft launch, I need to understand how the game scales.
We have a game written purely on c# with unity. Our server logic is divided to META and BATTLE modes that execute as Playfab Custom Servers.
Battle handles some realtime interactions - one battle per server instance (2-20) players. It just relays commands among players.
Meta is for some player progression part. So Meta reads player from Playfab database when player authes, than player rarely executes some command batches during his session. Than once player left, we update player's database entry. We assume we can do 1k-100k players with one server instance.
I know there's a lot of questions about load testing already, but with custom servers its more about AWS load testing. AWS has CloudWatch - a nice tool for monitoring its resources (cpu, network, disk, memory etc)
For example for monitoring cpu for our default t2.medium servers there is a useful api there:
First question: so can I get access to CloudWatch API from my Playfab account?
If no, whats are best practices to make load tests on custom servers? I mean how can I understand how many clients can I handle on one t2.medium host instance and/or decide which AWS plan to choose. I can't just measure cpu usage and network traffic with my custom server because there's a hell lot of factors that will make AWS numbers different from what I'd receive.
Second question, why 'Max instances per host' is build setting and not mode setting? In our game the same build operates in 2 modes and eats significantly different resource amounts. So to tell Playfab that there can be 2 META-games per one host and 100 BATTLE-games per one host, I need to upload the same build twice. Also it seems that I cant therefore have 1 META-game and 50 BATTLE-games on one host instance.
Third question, How should we decide about 'Max instances per host' and 'Max players count' for META server? Yes, we actually decided to avoid using CloudScript and make our game operate purely on custom servers.So can we have 'Max players count' in this case insanely large (like 100k)? what limits should be we aware of? network connections count? game istance limits on Playfab API requests? Is there a reason to split our META-server from 1 instance per host X 100k max players count to, say, 100 instances per host X 1000 max players? I mean, if those amounts of players fit cpu and memory limits of our AWS plan.
Fourth question: when I start doing load testing, how to avoid being blocked because of client requests amount from same IP? Without that testing I obviously can't determine my 'Max instances per host' and 'Max players count' for both game modes for my AWS plan.