Juniper Studios has released its first mobile game — GalaxySurfer — on the mobile app store. GalaxySurfer is a massively multiplayer space exploration adventure game. Users sign up, create a character, build a spaceship, and then spend time exploring new planets, chatting with friends, and fighting aliens.
Initially, the studio's game releases, and they gain a small but dedicated user base. However, several months into the game's release, a swarm of new players begin to join, putting pressure on their back-end infrastructure, including their simple MySQL database configuration. As time passes, the number of players explodes, and with their upcoming 1st release anniversary, they will soon hit over one million simultaneous users. In this course, we'll see how the techniques discussed here can be applied to help Juniper Studios scale their database to support this surge in popularity.
The database will contain six main types of entities:
- Players
- Spaceships
- Planets
- Achievements
- Items
- Chat messages
Each user that signs up creates a player, and each player has a home planet and can own one or more ships. A user can also have an inventory of items, earn achievements, and chat with friends. Check out the video to see a diagram of the schema and the corresponding DDL.