The design process of CP Social started out by creating a domain diagram (image below) to create a visual representation of a single platform implementation in CP Social.
By splitting CP Social into different services I was able to keep development as close to the SOLID principles as possible. Each service had was responsible for implementing a single functionality.
The authentication service is responsible to authenticating the player on a third party service provider.
The achievement service is responsible for retrieving, incrementing and unlocking achievement on a third party service provider.
The cloud save service is responsible for managing remote save games that are stored in the cloud of a third party service provider
After designing CP Social’s inner workings I started working on a test project that I could use to test all features of CP Social’s unified api. This project had a couple requirements, it had to be:
- Quick, nothing fancy
- Include all functionalities
- Preferably fast to build
The image below shows a screenshot of the final test project, it consisted of a single page that contained all functionalities that had to be tested.