multiplayer ten pin bowling game in C++ -- 2

Job ID: 32816179

Budget: £20 – £250 GBP

(1) Develop a playable online 3D ten pin bowling game with rules similar to a physical ten pin
bowling game that can be played by a good number of online players, with potential to scale up
for massive online players;
(2) Write a formal report covering the development details of the game, and your insights on the
challenges, solutions, programming languages and skills regarding large-scale programming
issues.
The purpose of this assignment is to evaluate your capability in evaluating, proposing and
implementing solutions for a large scale programming problem, and your deep understanding of
different object-oriented programming languages and state-of-the-art tools for large scale
programming issues.
To meet the minimum requirement, your
developed online game should allow at least 100 online players to play at the same time.
The detailed technical requirements are detailed below. Please note that you are expected to
submit the report on your development addressing these requirements below, along with all
source code and project files of your system.
The Playable Online Game
Similarly to the C++ classes Ball, Table, Cushion and Players — designed or restructured during
the workshops - you are required to think carefully about the classes you will design and
implement to make a playable online ten pin bowling game suitable for large number of players
with potential to scale up for massive online players. To complete a playable game, the following
classes and effects must be implemented.
1. Lanes
A lane shows the area for two players to play the game with certain layouts. The online game
will have multiple tracks or courses allowing multiple players to pair with and play at the
same time. This means that a lane class should be designed and implemented, and your game
should support large number of lanes, at least 5 lanes for demonstration.
2. Balls and pins
Add programmatic ball and pin classes to the lanes. This will require the design and
implementation of new classes to support the attributes and functionality of a ball/pin. You
will then be able to add ball/pin objects to the lanes, implement a method for detecting a
ball/pin’s collisions and positions, and construct a system for managing balls/pins/scores.
Typically, there are one object ball plus ten pins for a lane. Your game should allow 2
players playing in each lane.
3. Players and Scores
You should design and implement a ten pin bowling game to accommodate a few players at
the same time. This does not need to follow exactly standard ten pin bowling game rules, and
may be quite simple. However, it should be turn-based, and players should score points.
Again, you should think carefully about a suitable class structure to represent the players and
game rules. You should also consider how your game logic code could be extended, and
reflect this in your code design. For example, could your game be easily scaled up to support
10,000 players to play at the same time rather than just 10 players?
You should also design and implement functionality for displaying the current player(s),
players’ score(s) and ranking. You can either display the text information in the game
window (ideal case), or print text to the console window as a basic/minimal solution.
4. Multiple Computers
You should also design and implement functionality allowing game play in multiple
computers via a computer network. The scores and ranking of players, even in different
locations/computers, should be displayed and updated as well.
You should think about how to allow massive players to join the online game and implement
this to your game.
The above tasks will be evaluated via a software demonstration, where both the functionalities
and the source code will be evaluated by two markers during the demonstration.