Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
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 [email protected] 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.