The main objective of the client was to create a multiplayer board game where players could choose their car and the number of laps and race on the track. The players would throw the dice and the result of the dice release number would move their cars many steps forward / backwards according to the player’s choice. Each step / box would have rules that would be dynamically generated randomly from the rule array. The customer was concerned about the performance of the game and also needed something that would have attractive graphics.
The requirement from the end of the client was to find a capable outsourcing company, who would be able to understand their basic requirements, their idea of the game, match the objectives and create something that would be in tune with their concept.
The game needed a race track and there had to be a provision for the player to pick up his car. The number of players in the game who can play together should be limited to 6 in one group while they could ideally be talking unlimited numbers of groups that could play the game at the same time. There had to be an option for the virtual players so that at least two people could play the game.
The player can start the game by rolling the dice and the number in the dice then reflects the number of places where the car can move. And based on the position of the car in the track boxes, the rules would automatically arise and be applied to the car. Consequently, the car moved up, down, omitted three possibilities of throwing the dice, etc. It was a huge list of rules that had to be applied when the car moved and stopped in a block on the road. And the game would continue until there was a winner.
When they hired ValueCoders, we had to address to the following tasks:
While developing, we faced various challenges including the following ones:
Our web developers at ValueCoders had overcome these challenges with their innovative ideas and technical expertise.
The whole way had about 70 boxes, which stored more than 400 rules and cards. The challenge was to retrieve all of this from the database, quickly and then do the calculations and store the dynamic rules for the players before passing the dice to the next player within the group. We had to design storage structures for each player in the group. The design of the database had to take into account the loading time and had to be robust and very fast.
We decided to go with MongoDB, a popular noSQL database. The name comes from the word “Humongous” (huge and huge). It is an open source, document-oriented database system that allowed us to easily store complete results sets and the status of each player and then the game at any given time.
We take advantage of Amazon EC2 replication to scale dynamically and use Amazon S3 to host all static content in the application (all HTML / JS / CSS and Media