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

  Write a program that simulates inventory bins in a warehouse

In C++, write a program that simulates inventory bins in a warehouse. Each bin holds a number of the same type of parts. The program should use a structure that keeps the following data:

  Programming problem for weight conversion

Write a program that prompts the user to enter the mass of a person in kilograms and outputs the equivalent weight in pounds. Output both the mass and the weight rounded to two decimal places.

  A linked list of your song structure in cd

The CD object should have a data member that is a linked list of your song structure that you have in CD.  The CD class needs a function that allows it to add a song to the object, that function would then append the song to that instance of the link..

  Implement a program that collects the statistics of word

Implement a program that collects the statistics of word, number, and character usage in a file (redirected as the standard input).

  What is the output for the pseudocode segment

What is the output for the following pseudocode segment? For your answer list all output. m = 9 n = 5 while n

  Using the labor market, production function

Using the labor market, production function. and AS/AD graphs of the classical model, show the effects of an increase in the marginal product of labor. What are the effects on real wages, the quantity of labor, real GDP, and prices? Explain and show ..

  Write c program that forks two child processes

Write a C program that forks two child processes. The parent process will print all prime numbers up to 229, the first child process will print the first 50 Fibonacci numbers.

  Calculate that implements a simple arithmetic calculator

Write a  C program  calc.c that implements a simple arithmetic calculator. Input to the calculator consists of lines composed of integer constants separated by the five arithmetic operators used in C: +, -, *, /, and %. For each line of input,

  Write program which prompts user to enter numbers

Write down the program which prompts the user to enter numbers, findsout how many positive and negative values have been entered, and calculates sum and average of numbers entered.

  Write a function prototype

Determine the value, true or false, of each of the Boolean expressions - Write a function prototype and a function definition for a function.

  How do i take the location for the neighbour of each element

I have done the code the "wrapping of the matrix" via concatenation so I can count all the neighbours. Find highest score neighbor take location from S --> How do I take the location for the neighbour of each element? find strategy from A end.

  A website for a popular international music store

Imagine that you are building a Website for a popular international music store. The owner wants to play an audio clip featuring the musical instrument of the month on their home page. Determine how you would add audio to the page so that it is compa..

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