Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
Module: CMP-7000A - Applications Programming
Assignment: R002-Game Coding and Testing Presentation
Learning outcomes
• You will demonstrate competence in using Python programming skills by creating and coding your own personal game application.
• You will demonstrate your understanding of the need for software testing
using existing techniques, to ensure your coded application is usable and works effectively.
• You will professionally demonstrate the knowledge you have gained through presentations and demonstrations, based on standard industry requirements for software development applications.
Specification
Overview
Individually, you are required to manually code and test a small command line game using the Python programming language. This game must be coded to
resemble a Multi-user (not multi-player) adventure Dungeon (MUD) game. This
R002 reassessment game must be a different scenario to the one you coded in assignment 002, during the Autumn 2022-2023 semester, and you must not
reuse any code from your original submission.
To evidence the learning objectives, you must produce working Python game code
(entirely coded by yourself with no content from the internet, other sources, a
previous course, or your 002 assignment). You also need to deliver a recorded
maximum 10-minute MP4 (max 720P) video to evidence your game working from both a gamer and code perspective You will need to evidence system unit testing and think aloud user testing, by showing and discussing completed test plans and code.
Description
Individually, you should code a new R002 unique command-line MUD game, using Python coding techniques. You must not use any code found on the internet
(including GitHub, YouTube, ChatGPT, etc.), or any other external sources,
including any previous courses you have taken, or from assignment 002; you
must code this new unique game entirely by yourself for this R002 reassessment.
If you are not sure if your game is fully compliant with MUD game specification
requirements, please email the MO Debbie Taylor on Debbie.taylor@uea.ac.ukto check.
The game should resemble a Multi-User adventure Dungeon game (also known as MUD game). This needs to be a multi-user game, not multi-player, so you should enable a single person play the game and collect information as they move
throughout the game. You should then evidence that several different single gamers have played, by producing a leader board at the end.
There are multiple examples of these types of games available on the internet,
however Figure 1 below shows a basic example of one process a gamer should see within a MUD game:
Figure 1 - Example MUD Game, showing a gamer starting a game
Tasks
The following shows the tasks you need to code for this R002 reassessment, as well as ideas for extra processes:
Input and output:
You will need to code input and output of textual information within your game, via the terminal console – there must not be any graphical user interface created as this is outside the scope of the module.
The input and output information will require you to give options to the gamer to choose from, and then receive input choices from them in return.
Consider consistency of output and input, potential reuse of classes and functions, and what data/questions etc. You need to pass to and from the gamer.
Character creation:
Whenever a new game begins the gamer should be prompted for a series of character creation options. This will require you to manually code a class or function that allows the gamer to customise the character at the start, with multiple options for the gamer to choose from.
You will need to be able to access these option choices throughout the game. For example, if a gamer chooses a name at the start of the game you must code the game to use this multiple times throughout the game, not just at the start.
Interaction:
Manually code classes and functions that allow the gamer to interact with your uniquely created game world. This could be moving around the game world itself, accessing and receiving information about locations, weapons, items found, health points gained or lost, etc.
For example, if a gamer enters a location, they must be able to receive output information about that location and any potential items available to pick up. They should then be given options on how to pick up the item(s) if they choose to do so.
Saving/loading progress:
Manually code classes or functions that allow you to save and load progress during the game. The progress information must be saved to a text file, CSV or JSON file.
As your game progresses you should store the players location, items collected and general progress. This will enable the gamer to exit the game at any point and reload later at the saved point.
You will also need to save the gamer’s score at the end of the game (win or lose) and output this information to a saved leader board, with the highest score at the top, and lowest at the bottom. The leader board should be available to view on both the console terminal and via a text file, CSV or JSON file.
Testing:
You are expected to perform and discuss white box system unit testing using Python unittest, along with think aloud user testing.
Ensure both are recorded on a valid test plans. Blank test plans are available in the week 10 Software Testing folder on Blackboard.
These test plans should then be included and discussed during the video demonstration.
Project File Structure
You need to store scripts, resources and tests in separate folders. You should also store your saved text pictures in separate classes or txt. files and use functions to load them, not just save them in the main program. See below example:
Additional areas to consider for your game coding:
Extra marks are available for coding additional functionality specific to your game. A few example ideas given below should prompt you to think about areas to develop, so that you produce a unique piece of work. You will need to justify these decisions during your video.
Visualisations:
Consider creating textual pictures and then loading the pictures at relevant points within the game world. For example, if the gamer sees a castle appear before them, you could call the picture class or function and output a visual textual picture of the castle to the console terminal.
You also might want to consider different colours for input and output text.
Equipment:
You might want to consider customising what your character is wearing or using at different points within the game. What equipment can be found within the game and where? How can specific equipment collection impact the potential ability to add or deduct health points, etc.?
Inventory:
Do you want to allow users to collect specific items or objects that can increase health or power scores, etc.? You might want to design a system to store these items so that players can see what items they have collected and interact with them. You may wish to only deal with unique items; however, you may want to consider how to handle multiples of the same item.
Help option:
What happens if a gamer gets stuck and doesn’t know what to input or what options are available for them to select?
To evidence the above R002 reassessment code and testing processes, you must record a maximum 10-minute MP4 (max 720P) working video. This must show the code working from both a gamer user perspective, the code itself, testing (both unit and user think aloud) as well as the test plans. The working video will need to be uploaded to oneDrive and a link sent to the MO Debbie Taylor
([email protected]). The code and test plans must be uploaded, via a zipped folder, to Blackboard.
If the video exceeds 10 minutes any information discussed after this time will not be marked. You must not alter the playback speed of the video to remain under the 10-minute limit.
You must not use any code found on the internet (including GitHub, YouTube, ChatGPT, etc.), from a previous course you have taken, or your 002 assignment; you must code this game entirely by yourself specifically for this R002 reassessment, to achieve the learning objectives.
Relationship to formative assessment
The skills needed to complete this assignment relate to the lectures and labs from week 3 onwards. You can also use the feedback provided for assignment 002.
Deliverables
You must upload a .zip file to the R002 submission point on Blackboard, containing all the source files for your python code and copies of your unit and user think aloud test plans.
The maximum 10-minute single MP4 video (max 720P) file must be uploaded to OneDrive and a link must be emailed to the MO Debbie Taylor
If the video exceeds 10 minutes any information after this will not be marked. You
must not alter the playback speed of the video to remain under the 10-minute limit. The zip file must use the following naming format of studentID.zip e.g.10000000.zip.
Please ensure you upload a working video, as you will not be asked to provide another copy if the uploaded version does not play when being marked.
Resources
Lecture slides and lab sessions from week 3 onwards, are highly relevant to this work. You can also use the feedback provided for assignment 002.
You can use any video editing software you choose but the upload must include a single video file for the entire presentation from start to finish, not a recording per
slide. You can show awatermark across the video, but only if this does not stop the markers being able to view your working system and code.
If you have questions, please email the MO Debbie Taylor on Debbie.taylor@uea.ac.uk.