I was looking for some information on how we can better integrate our development flow within PlayFab. For reference, we've used PlayFab before for a game and it worked fine but it was a single server developer and a single client developer on that team. In our last project that we launched with GameSparks, we had 2-3 server devs and 5-6 client developers and the normal workflow was very error prone and difficult to make changes with that size of team.
For that process, we developed the following flow:
- We had 3 main GameSparks instances, development, QA and Production.
- Development would be our current sprint workload while QA would be under testing (and fixes for bugs found) while Prod would be essentially what's on our "master" or "release" branch.
- If a feature was to be developed, we'd create a branch off of development, and we'd also spin up a "branch" GameSparks instance. Once the feature was tested and validated, it'd be merged back into the main code then pushed to our GS Development instance for client side work.
- Everything that made up our GameSparks instances (IAP, Vgoods, Cloud Code, etc) was all in JSON configuration files that we kept in version control, and all our cloud code was written in TypeScript. This allowed us to maintain and monitor our server development process through pull requests and merging, not accidentally changing live code via the cloud code process.
- What enabled this was a CLI tool I created to dynamically spin up new instances and configure via their REST API, in addition to compiling the cloud code to their JS compliant code and upload.
- Additionally, we built in a testing system to allow us to run unit and end to end tests on our server side API.
The questions I have specifically are:
Does PlayFab have the ability to emulate this sort of process? I know we can manage cloud code, title data, virtual currencies, create scheduled tasks all programmatically, but is there a full coverage to do these things via the admin API? The things I see that may be missing right now are the ability to add rules, adding / changing segments, etc.
Are there mechanisms for end to end or unit testing? Specifically something to emulate a setup and tear down process around the game data.
Is there the ability to automate spinning up a new PlayFab instance with a REST API or something like that?
The process we used while developing with GameSparks dramatically improved our server dev speed and reduced errors, and I'd love to be able to make the same thing work within PlayFab for future games.