Joris Eijmberts

Turning crazy ideas into games!

Designing CP Social

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.

CP Social domain diagram


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

Test project

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.

CP Social Untiy test project