联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2020-12-14 10:49

BIRMINGHAM CITY UNIVERSITY

FACULTY OF COMPUTING ENGINEERING AND THE BUILT ENVIRONMENT

COURSEWORK ASSIGNMENT BRIEF

CMP5327 C++ Programming for Games

1 CEBE UG Assignment brief revised 03/08/2018

Coursework Assignment Brief

Assessment - Undergraduate

Academic Year 2020-21

Module Title: C++ Programming for Games

Module Code: CMP5327

Assessment Title: Development of a 2D shooting game

Assessment Type: CWRK Weighting: 100 %

School: School of Computing and Digital Technology

Module Co-ordinator: DR CARLO HARVEY

Hand in deadline date: Monitoring Points: Week 6, 9, 12.

Deliverables: 12pm Mid-day on 8

th January 2021

Return of Feedback date

and format

20 working days from date of submission (see Moodle for

details).

Re-assessment hand in

deadline date:

12pm Mid-day on Monday 26th July 2021

Note: the reassessment work may be different.

Support available for

students required to

submit a re-assessment:

Timetabled support sessions will be arranged for the period

immediately preceding the hand-in date

NOTE:

At the first assessment attempt, the full range of marks is

available. At the re-assessment attempt the mark is capped

and the maximum mark that can be achieved is 40%.

Assessment Summary This coursework comprises of formative monitoring points, one

shooting game project written in C++ and a video demonstration.

? (15%) Monitoring Points: demonstration of progress at 3

monitoring points throughout the delivery of the module.

? (65%) The Game: develop a 2D shooting game in C++.

This game must use the SDL2 (https://www.libsdl.org/)

development library to implement graphics. The game may

take inspiration and amalgamate from other existing

games but must not attempt to replicate entirely the game

mechanics of any existing commercial game

? (20%) Video: A video showcase of your work where you

will embed narrative that rationalises any problems

encountered, how you overcame these and provide a

critical analysis on the strengths and weaknesses of your

implementations.

2

IMPORTANT STATEMENTS

Undergraduate Regulations

Your studies will be governed by the BCU Academic Regulations on Assessment,

Progression and Awards. Copies of regulations can be found at

https://www.bcu.ac.uk/student-info/student-contract

Cheating and Plagiarism

Both cheating and plagiarism are totally unacceptable and the University maintains a strict

policy against them. It is YOUR responsibility to be aware of this policy and to act

accordingly. Please refer to the Academic Registry Guidance at

https://icity.bcu.ac.uk/Academic-Services/Information-forStudents/Assessment/Avoiding-Allegations-of-Cheating

The basic principles are:

? Don’t pass off anyone else’s work as your own, including work from “essay banks”.

This is plagiarism and is viewed extremely seriously by the University.

? Don’t submit a piece of work in whole or in part that has already been submitted for

assessment elsewhere. This is called duplication and, like plagiarism, is viewed

extremely seriously by the University.

? Always acknowledge all the sources that you have used in your coursework

assignment or project.

? If you are using the exact words of another person, always put them in quotation

marks.

? Check that you know whether the coursework is to be produced individually or

whether you can work with others.

? If you are doing group work, be sure about what you are supposed to do on your

own.

? Never make up or falsify data to prove your point.

? Never allow others to copy your work.

? Never lend disks, memory sticks or copies of your coursework to any other student in

the University; this may lead you being accused of collusion.

By submitting coursework, either physically or electronically, you are confirming that it is your

own work (or, in the case of a group submission, that it is the result of joint work undertaken

by members of the group that you represent) and that you have read and understand the

University’s guidance on plagiarism and cheating.

You should be aware that coursework may be submitted to an electronic detection system in

order to help ascertain if any plagiarised material is present. You may check your own work

prior to submission using Turnitin at the Formative Moodle Site. If you have queries about

what constitutes plagiarism, please speak to your module tutor or the Centre for Academic

Success.

3

Electronic Submission of Work

It is your responsibility to ensure that work submitted in electronic format can be opened on

a faculty computer and to check that any electronic submissions have been successfully

uploaded. If it cannot be opened it will not be marked. Any required file formats will be

specified in the assignment brief and failure to comply with these submission requirements

will result in work not being marked. You must retain a copy of all electronic work you have

submitted and re-submit if requested.

Learning Outcomes to be Assessed:

1 Create object-oriented programs in C++ making use of class libraries.

2 Develop and apply testing and debugging strategies to C++ programs.

3 Utilise code optimisations, including compiler optimisations, and apply them to a

program.

4 Select and use code profilers to determine performance of a program and devise a

strategy to optimise the program to meet space and time requirements.

Assessment Details:

Title: Developing a 2D shooting game using C++

Style: Milestones, Code and Video Demonstration

Rationale:

This assessment has been designed to incorporate several areas within game development that are

recognised as key skills when working in industry. A pass grade in this assessment will demonstrate

that you have enough skills to develop your own software and implement the strategies to test,

profile and optimise your code to make a product which meets industry standards.

Description: Your task is to develop a 2D shooting game in C++. This game must use the SDL2

(https://www.libsdl.org/) development library to implement graphics. The game may take inspiration

and amalgamate from other existing games such as space invaders but must not attempt to replicate

entirely the game mechanics of any existing commercial game. Graphics and other game assets can

be used from online sources but must be referenced within your README markdown file within your

project directory. Any use of external code from online sources more than three lines long which are

copied without modification must be referenced within the code as a code comment which contains a

URL to the source of information and the date of access.

Alongside developing the game, you must use code profiling to determine the performance of your

software and devise a strategy to optimise the program to meet time and space requirements. You

should utilise code optimisations, including compiler optimisations and apply them to your program.

Finally, as a part of developing professional skills you will implement your code using version control,

specifically a GitHub repository. As part of the assignment deliverables you will be required to

commit your work through GitHub which will be checked by your tutor intermittently.

4

Assessment Tasks:

Milestone 1 (5%) - Week 6

Demonstrate your project is set up on GitHub along with a working Game Loop implemented and

have a finalised design of your game which identifies two unique game mechanics which will be

implemented.

Milestone 2 (5%) - Week 9

Demonstrate a basic prototype which implements at least 1 of the required game components. You

should also demonstrate continued professional development techniques by implementing GitHub

into your workflow.

Milestone 3 (5%) - Week 12

Demonstrate an advanced prototype which implements at least 2 of the required game components.

You must perform code profiling and optimisation techniques and demonstrate the statistics of the

data you have gathered.

Final Game (65%)

For this Task, you are working individually on producing a game-based software application written

in C++ which will demonstrate your capabilities of creating 2D tile-based games using low level

languages and graphics libraries. You must use C++ and the SDL library for this assignment.

Required Components: In order to meet a pass grade in this module, your game should contain all

the required components.

1. Evidence the ability to shoot at enemy entities and demonstrate collision detection

mechanics.

2. Implementation of a game map which uses tiled mapping mechanics.

3. Implementation of scoring mechanics which can be measured and is demonstrated in a

graphical user interface.

Extensions: Extra merit can be achieved by implementing further advanced game mechanics. Some

ideas are listed below. If you intend to implement advanced mechanics that are not listed here, then

it is advised that you discuss these with your tutor first. Up to 20 additional marks can be added to

your final demonstration for this.

4. Implement game sound effects and music using a chosen external library.

5. Menu screens, high scores and loading screens.

6. Load game configurations (such as map layout, high scores and settings) from external files.

Encryption and checksums could be used to prevent access and modification.

7. Advanced path finding techniques for enemies such as the A* search algorithm.

8. Special effects such as particles, playing video files and using animations.

Video (20%)

Alongside the entire source code and assets required for the project you should submit a video. Your

video submission should be a maximum of 10 minutes in duration and demonstrate key aspects of

your work and be used as a portfolio showcase of the development work. At least two minutes of the

video should be dedicated to gameplay footage.

The video narrative should rationalise the following:

? An overview of your project and an early specification of what you set out to be doing.

? Any problem solving or research you undertook while writing the program (including looking

at what work others have done in this area), and details coupled with comparisons of

mathematical solutions or algorithms you used.

? The internal class structure of your project and the reasons for laying it out like this.

5

? A high-level description of your program describing how it works and justifying the design and

technical choices you made.

? The video should illustrate performance metrics you have gathered and present any

optimisation techniques you have used.

? A critical analysis of your program, identifying its strengths and weaknesses. This can

potentially consider time and space complexity considerations but should also consider

testing and algorithm correctness.

Additional information:

For advice on writing style, referencing and academic skills, please make use of the Centre

for Academic Success: https://icity.bcu.ac.uk/celt/centre-for-academic-success

Workload: This assessment is equivalent to 4000 words and a typical student would be

expected to take 40 hours to pass this assessment.

Transferable skills:

This module will involve the following skills which are transferrable to other modules as well

as in industry:

? Mathematical and Algorithmic Knowledge and Application

? Presentation and speaking

? Software design

? Version Control

? Object oriented programming

? Software testing

? Software performance profiling

6

Marking Criteria:

Learning

Outcomes

1

Create

objectoriented


programs in

C++ making

use of class

libraries.

2

Develop and

apply testing and

debugging

strategies to C++

programs.

3

Utilise code

optimisations,

including compiler

optimisations, and

apply them to a

program.

4

Select and use code

profilers to determine

performance of a program

and devise a strategy to

optimise the program to

meet space and time

requirements.

Milestone 1 (5%) – Week 6

Tasks: (LO1, LO2) Marks

available:

GitHub repository has been created for the project with at least one code

commit.

50

Basic game loop has been created with update and draw functions within a

loop.

25

Game design complete. Identify two unique game mechanics which must be

applied within the game.

25

Milestone 2 (5%) – Week 9

Tasks: (LO1, LO2) Marks

available:

Basic game prototype which demonstrates at least one of the required game

components.

75

Code has been continuously committed through GitHub repository with

suitable titles and comments for commits.

25

Milestone 3 (5%) – Week 12

Tasks: (LO1, LO2) Marks

available:

At least two of the required components has been implemented into the game. 60

Code has been continuously committed through GitHub repository with

suitable titles and comments for commits.

20

Initial statistics of performance have been gathered through code profiling. 20

Final Game (65%)

Note: The number of marks awarded for each element within this table will depend on the

quality of the implementation. Each of the elements of the marking table are separate and

do not depend on other features being implemented in order to achieve the marks. For

example: To be awarded 4 marks for implementing a circle collider, you do not have to

implement a box collider first.

Tasks: (LO1, LO2, LO3, LO4) Marks

Available:

Game Implements appropriate player shooting mechanics.

? Player can control shooting with a keyboard and/or mouse (4 marks)

10

7

? Appropriate memory techniques have been considered for shooting

performance (i.e. object pooling) (6 marks)

Game implements collision detection mechanics:

? Box colliders (6 marks)

? Circle colliders (4 marks)

10

Tiled mapping:

? Mapping with different images for tiles (4 marks)

? Collision within mapping (4 marks)

? Ability to change game tiles within gameplay (2 marks)

10

User interface:

? Player score (5 marks)

? Additional non-text elements, such as health bars. (5 marks)

10

Rationalised code profiling and performance statistics, evidenced via testing. 10

Justified code optimization and resultant increases in performance measures. 10

Animated game elements. 5

Implementation of sound and audio:

? Sound effects (3 marks)

? Background audio (2 marks)

5

Game data reading or writing from/to custom external files (Loading formats

such as PNG through SDL does not count):

? Text files (2 marks)

? Binary files (3 marks)

? Additional file security features (5 marks)

10

Showcase of additional advanced game features. See Extensions for

examples.

20

Video (20%)

Tasks: (LO1, LO2, LO3, LO4) Marks

available:

10-minute video. Mp4 container, h264 video encoding and AAC audio

encoding

25

Video has at least a 2-minute segment dedicated to gameplay footage with

appropriate narration.

25

Video is edited to improve engagement. 25

Video uses intelligent annotation and narrative throughout that addresses the

technical descriptions required.

25

Submission Details:

Format:

Your final demonstration must be uploaded to Moodle. For milestone deliverables you are to use

your GitHub classroom repository for the elements required for each milestone.

Note that for your game implementation you must upload all the source code and resources, e.g.

model files, sound files, texture files, etc. for the tutor to be able to build and run your scene without

modification. Tutors will not modify your source code to make it build and run. You will lose marks if

8

you submit an implementation that cannot be built and run on the tutor’s PC or the PC mentioned in

your submitted README markdown.

Your directory structure for the submission should be as follows:

? firstname_lastname_id

- code

- bin

- README.md (make appropriate use of this in your GitHub repo)

- video.mp4 (h264/aac)

Please submit an archive file (7z/zip) containing the following:

? code: complete source code with appropriate build files for compiling and asset files so that it

will be able to run. Build files should be via a MS Visual Studio 2019 project, asset files

should all be relatively linked so no path changes are required.

? bin: a Windows executable (compiled in release-mode) with all required asset files and

libraries relatively accessible. Please do not submit any unnecessary and large build files.

Please also do test that your executable runs on a PC in the Games lab, MP135.

? README: a simple markdown file. Provide the clearly labelled file in your project directory

explaining how to run and use your program. An in-program user guide can also be provided.

Note the tested PC in MP135. The user guide should be where you cite any references.

? video: A video using an mp4 container, with h264 video encoding, AAC audio encoding. This

video should be a maximum of 10 minutes in duration and summarise the key achievements

of the project. The video should make use of annotation and audio narrative.

Regulations:

? The minimum pass mark for a module is 40%

? Re-sit marks are capped at 40%

Full academic regulations are available for download using the link provided above in the IMPORTANT

STATEMENTS section

Late Penalties

If you submit an assessment late at the first attempt then you will be subject to one of the

following penalties:

? if the submission is made between 1 and 24 hours after the published deadline the

original mark awarded will be reduced by 5%. For example, a mark of 60% will be

reduced by 3% so that the mark that the student will receive is 57%. ;

? if the submission is made between 24 hours and one week (5 working days) after

the published deadline the original mark awarded will be reduced by 10%. For

example, a mark of 60% will be reduced by 6% so that the mark the student will

receive is 54%.

? if the submission is made after 5 days following the deadline, your work will be

deemed as a fail and returned to you unmarked.

The reduction in the mark will not be applied in the following two cases:

9

? the mark is below the pass mark for the assessment. In this case the mark achieved

by the student will stand

? where a deduction will reduce the mark from a pass to a fail. In this case the mark

awarded will be the threshold (i.e.40%)

Please note:

? If you submit a re-assessment late then it will be deemed as a fail and returned

to you unmarked.

Feedback:

Marks and Feedback on your work will normally be provided within 20 working days

of its submission deadline via Moodle.

Where to get help:

Students can get additional support from the library for searching for information and

finding academic sources. See their iCity page for more information:

http://libanswers.bcu.ac.uk/

The Centre for Academic Success offers 1:1 advice and feedback on academic

writing, referencing, study skills and maths/statistics/computing. See their iCity page

for more information: https://icity.bcu.ac.uk/celt/centre-for-academic-success

Additional assignment advice can be found here: https://libguides.bcu.ac.uk/MA


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp