CU4007 - Computer Gaming Hardware Architectures (2020/21)
|Module specification||Module approved to run in 2020/21|
|Module title||Computer Gaming Hardware Architectures|
|Module level||Certificate (04)|
|Credit rating for module||30|
|School||School of Computing and Digital Media|
|Total study hours||300|
|Running in 2020/21||
The module introduces students to the basics of Information Technology; past, current and future trend in computer and gaming systems. The detailed design of a small scale Gaming System is presented where students have the opportunity to directly program the hardware. Students will learn how a knowledge of assembly language and different compilers should inform the development of higher level programming languages, such as C++, in order to produce optimal code. Students will develop expertise and transferable skills in writing for a particular handheld gaming platform.
The module aims are:
To introduce students to the fundamental concepts of Information Technology and basic networking,
To provide a working technical knowledge of modern computer and gaming systems and their respective components,
Build awareness of assembly and compilers so as to inform the development of optimal programming code
Gain skills in interfacing assembly with a high level language for a console emulator
Gain skills in interfacing assembly with a high level language on a PC.
Introduction to Information Technology
Basic Digital Logic Elements
Microprocessors ; past, current and future
Computer Architecture, elements and their operation in a typical computer system
The relationship and role of hardware and software
Assembly language programming
The design of Computer and Gaming Hardware architecture, typical examples. Memory types and IO peripherals,
The detailed design of a small-scale computer and gaming system
Communications Channel; Serial, USB etc...
Advanced hardware fundamentals, High performance systems
Writing example game for GBA emulator - eg. visual boy advance
Optimisation of code for different platforms
Interfacing high level languages (C++) with assembly
Input and output to video memory
Accessing audio hardware
Current trends in Computer and Gaming hardware / software architecture
How to use compiler and debugger with competence
LO1, LO2, LO3, LO4
Balance of independent study and scheduled teaching activity
The teaching and learning strategy for this module is a combination of intensive laboratory work were students will be expected to develop their programming skills. Group work is encouraged and reinforced at the laboratory sessions. The student’s understanding will be tested by practical exercises in class.
On successful completion of this module students will be able to:
LO1.Understand how the modern PC and Gaming systems work, the interrelation between hardware and software and their evolution.
LO2. Ability to distinguish between assembly and higher level languages with regard to writing optimal code for particular tasks thus being able to Implement hardware and software performance troubleshooting techniques;
LO3. Ability to plan and program a simple game for a handheld device
LO4. Ability to program audio hardware
The following is indicative of the assessment strategy. The coursework will implement ideas that have been introduced in lectures to assure the student has understood what has been presented. Students will present and explain their work for peer assessment. The module is passed on the aggregate mark.
A progress report is due in week 8 of the semester. Students will be given comprehensive individual feedback in week 9. Students are provided with weekly practical workshops throughout the two semesters. They perform these in small groups with one tutor assigned to each group. The tutors will provide verbal feedback to their group during these sessions.
Tonc Online tutorial - http://www.coranac.com/tonc/text/toc.htm
R., J., (2007). Arm Assembly Language - An Introduction. Lulu.com.
Cisco Networking Academy (2010) IT Essentials: PC Hardware and Software, Companion Guide. Cisco Press
http://www.gbadev.org - for useful links and sourcecode