CMP9133M Advanced Programming Assignment

Assignment Help C/C++ Programming
Reference no: EM133066746

CMP9133M Advanced Programming - University of Lincoln

Assessment TasK: Complete the following two tasks.

Part (1) Develop a playable online 3D ten pin bowling game with rules similar to a physical ten pinbowling game that can be played by a good number of online players, with potential to scale upfor massive online players;

Part (2) Write a formal report covering the development details of the game, and your insights on thechallenges, solutions, programming languages and skills regarding large-scale programmingissues.

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 scaleprogramming issues.

Your development can recycle and extend the materials used in the module workshops. Please note that it still needs significant modification to the provided system design and implementationto meet the requirements. Alternatively, you can opt for implementing your own GUI-based gamefrom scratch addressing the massive online challenges.

To meet the minimum requirement, yourdeveloped 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 allsource code and project files of your system.The Playable Online GameSimilarly 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 andimplement to make a playable online ten pin bowling game suitable for large number of playerswith 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 gamewill have multiple tracks or courses allowing multiple players to pair with and play at thesame time. This means that a lane class should be designed and implemented, and your gameshould 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 andimplementation of new classes to support the attributes and functionality of a ball/pin. Youwill then be able to add ball/pin objects to the lanes, implement a method for detecting aball/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 2players playing in each lane.

3. Players and Scores

You should design and implement a ten pin bowling game to accommodate a few players atthe same time. This does not need to follow exactly standard ten pin bowling game rules, andmay 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 andgame rules. You should also consider how your game logic code could be extended, andreflect this in your code design. For example, could your game be easily scaled up to support10,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 gamewindow (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 multiplecomputers via a computer network. The scores and ranking of players, even in differentlocations/computers, should be displayed and updated as well.

You should think about how to allow massive players to join the online game and implementthis to your game.The above tasks will be evaluated via a software demonstration, where both the functionalitiesand the source code will be evaluated by two markers during the demonstration.

The Report

You should submit a report (1) describing your online ten pin bowling game development indetail, (2) describing the key challenges and your solutions, if your game is re-designed formassive online players e.g. more than one million users at the same time. The report should bemaximum 8 pages with the font size of 11pt, excluding front cover, references and appendices.

The report should clearly structured and include the following sections:About your developed artefact? The game. Please describe your game including the rules of your game, how to play thegame, and at least one snapshot of your game (approx. 0.5 page)? Design and implementation. Please describe briefly your game design and the implementation of the classes and the key functions you have used in the game, usingdiagram if necessary (approx 1 page)?

Implementation. Please include detailed descriptions of the new classes, functions and concepts you have implemented for each of the above 4 requirements including lane/ballpin/players-scores and multiple computers, with diagram/plots/snapshots of source code if necessary (approx. 4 pages)? Memory and scalability. The method you use to cope with memory (e.g. too many detailedobjects to be loaded) and scalability (e.g. 1,000 or even more online players at the sametime) issues, with diagram/plots/snapshots of source code if necessary (approx. 0.5 page)? Strengths and weaknesses of programming languages in implementing the game. Your own reflective thinking about the strengths and weaknesses of C++ programming language, as compared to other development tool(s) such as Python/Java/C#, especially your own experiences in the development of the game (approx. 1 page)

Challenges and solutions if your game to be scaled up for massive online players? Please list key challenges if your game is scaled up for more than one million online usersplay at the same time, and propose your solutions to these challenges. Your solutions maynot be restricted to only one specific program language or specific platform (approx. 0.75pages).

Please also provide a brief review/examples of similar large scale projects or online games(approx. 0.25 page)Appendix? You are expected to include your own code as an appendix to the report, or any other materialrelated to your solution such as detailed design diagrams or screenshots.

On successful completion of this component a student will have demonstrated competence in thefollowing areas:?

Learning Outcome 1: Evaluate the strengths and weaknesses of different object-oriented programminglanguages in comparison to alternative development tools?

Learning Outcome 2: Propose and implement solutions for a large-scale programming problem?

Learning Outcome 3: Critically evaluate different solutions for large-scale programming problems

Knowledge & Skills Assessed:Advanced Programming Knowledge, Skills and Understanding: e.g. Literature searching,Referencing, Project Planning, Techniques and Advanced Skills for large scale programming.

Professional Graduate Skills: e.g. independence and personal responsibility, adaptability, verbal communication, written communication, creativity, critical thinking, self-reflection, problemsolving, group or team skills, effective time management, working under pressure to meetdeadlines.

Reference no: EM133066746

Questions Cloud

Prepare journal entries for Macaron to record transactions : On July 1, R. Matthew paid the note and any remaining interest. Prepare the journal entries for Macaron to record the transactions only on the dates listed
What is the amount of interest due on the note : Assume a 60-day, 6% note for $60,000, dated June 1, is received from a customer on account. What is the amount of interest due on the note when the note matures
Difference between low and remote inclusion : Do a bit of research into File Inclusion Vulnerability. What is the difference between low and remote inclusion?
Journalize the petty cash transactions : Journalize the petty cash transactions - Feb. 1 Established petty cash fund by writing a cheque on Algonquin Bank for $200.00
CMP9133M Advanced Programming Assignment : CMP9133M Advanced Programming Assignment Help and Solution, University of Lincoln - Assessment Writing Service
Joseph schumpeter concept of creative destruction : Watch this video about Joseph Schumpeter's concept of Creative Destruction.
How economies of scale would impact the long run costs : Identify which of those costs would be fixed and which would be variable.
Question on economic development : Explain the Circular Flow Diagram.
Three risk management issues in initial posting : Research the event related to the container ship that was stuck in the Suez Canal and identify at least three risk management issues in your initial posting tha

Reviews

Write a Review

C/C++ Programming Questions & Answers

  Create program that uses functions and reference parameters

Create program that uses functions and reference parameters, and asks user for the outside temperature.

  Write a program using vectors and iterators

Write a program using vectors and iterators that allows a user to maintain a personal list of DVD titles

  Write the code required to analyse and display the data

Calculate and store the average for each row and column. Determine and store the values for the Average Map.

  Write a webservices application

Write a webservices application that does a simple four function calculator

  Iimplement a client-server of the game

Iimplement a client-server version of the rock-paper-scissors-lizard-Spock game.

  Model-view-controller

Explain Model-View-Controller paradigm

  Design a nested program

How many levels of nesting are there in this design?

  Convert celsius temperatures to fahrenheit temperatures

Write a C++ program that converts Celsius Temperatures to Fahrenheit Temperatures.

  Evaluate and output the value in the given base

Write C program that will input two values from the user that are a Value and a Base with which you will evaluate and output the Value in the given Base.

  Design a base class shape with virtual functions

Design a base class shape with virtual functions

  Implementation of classes

Implementation of classes Chart and BarChart. Class barChart chould display a simple textual representation of the data

  Technical paper: memory management

Technical Paper: Memory Management, The intent of this paper is to provide you with an in depth knowledge of how memory is used in executing, your programs and its critical support for applications.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd