Search our site
Search our site

Multiplayer and Game Console Programming

  • Module code: CI6515
  • Year: 2018/9
  • Level: 6
  • Credits: 30
  • Pre-requisites: CI5515 Professional Game Development Environments
  • Co-requisites: None

Summary

This module covers two important specialisms in computer games programming: low level device programming (such as for game consoles or mobile devices) and programming for networked games. The module is taught as "learning by doing" and comprises both theory taught in class and applied work in the laboratory.

Aims

To provide students with the skills in the dual specialisms of low level device programming and programming for networked games, giving students the ability not just to describe and evaluate but also implement well-formed, optimised and reliable game code. In particular they will develop practical skills in performance monitoring, optimisation, debugging and troubleshooting of the code on game devices and running over a network. In more details the main aims are to

  • Introduce low level device programming
  • Introduce programming for networked games
  • Develop students' practical skills in optimisation, debugging and troubleshooting

Learning outcomes

On successful completion of the module, students will be able to:

  1. Create gaming software for a range of gaming devices (like game consoles), platforms (like mobile devices) and environments (like networked environments)
  2. Describe various computation models and discuss them in the context of games consoles and games programming
  3. Efficiently debug and troubleshoot code
  4. Determine code performance, through monitoring and measuring
  5. Improve code performance, through low and high level optimisation and create plug- ins based on DLLs
  6. Program low-level 3D graphics and audio hardware and explain features of forthcoming gaming hardware and peripherals

Curriculum content

  • Architecture of gaming hardware
  • Computation models
  • Network based programming for games
  • Programming for mobile platforms and windows
  • Plug-ins based on DLLs
  • Programming game consoles with a selected game engine (eg. Phyre)
  • Code performance, debugging and profiling
  • Pre-processor, compilation process, linking, performance.
  • Low-level optimisation techniques.
  • Introduction to high-level optimisation techniques
  • Hardware aspects of code optimisation (CPU, memory, GPU)
  • Selected topics in optimisation of console games
  • Network protocols
  • Models, patterns and architectures for networked game programming
  • Networked games and their optimisation (eg. latency, QoS, bandwidth)
  • APIs for network gaming, eg. raknet, photon SDK
  • Security of network and data
  • Gaming in the Cloud
  • Concurrency

Teaching and learning strategy

The course lectures will introduce theoretical aspects and the student will have the opportunity to develop practical skills during the practicals using actual games hardware. In addition to the teaching material, the student will be guided to other sources of information. Unsupervised work, initiative and self-teaching, will be encouraged via the project work.

It is expected that directed and independent study will be used to work on exercises that develop understanding of theory and examples discussed in the lectures and practical sessions.

Studio/workshop-based

The module uses a mix of lectures, workshops, studios, practical classes, and lab support to simulate a game industry environment. The primary means of guiding and facilitating students' learning is either through one 4-hour lab-based sessions, or one 2-hour lecture and one 2-hour workshop each week. Students often work in groups to complete coursework as is common practice in industry and is associated with the module's learning outcomes. Attendance at these sessions is mandatory due to the nature of the group work and simulated game studio environment. Assessments reflect the most appropriate artefacts and products required by industry to develop their skills within the module. Assessments are both formative and summative, are set on Canvas ahead of time, and can include peer-to-peer learning. Ongoing verbal and written feedback and feedforward is provided during the weekly sessions in the lab as befits a concrete simulation of the Games Development industry.

Breakdown of Teaching and Learning Hours

Definitive UNISTATS Category Indicative Description Hours
Scheduled learning and teaching Split between lectures, tutorial/practical/workshop sessions, directed reading 100
Guided independent study Including weekly directed study and independent study 200
Total (number of credits x 10) 300

Assessment strategy

Assessment will be by means of typically two in-course assessments contributing in total 100% of the final module mark. Formative and summative assessments give feedback providing information for students on their progress through the module's outcomes.

One group assignment is used to develop group-working and subject skills focused on multiplayer games and plugins. The second one is focused on console programming.

Studio/workshop-based

The module uses a mix of lectures, workshops, studios, practical classes, and lab support to simulate a game industry environment. The primary means of guiding and facilitating students' learning is either through one 4-hour lab-based sessions, or one 2-hour lecture and one 2-hour workshop each week. Students often work in groups to complete coursework as is common practice in industry and is associated with the module's learning outcomes. Attendance at these sessions is mandatory due to the nature of the group work and simulated game studio environment. Assessments reflect the most appropriate artefacts and products required by industry to develop their skills within the module. Assessments are both formative and summative, are set on Canvas ahead of time, and can include peer-to-peer learning. Ongoing verbal and written feedback and feedforward is provided during the weekly sessions in the lab as befits a concrete simulation of the games development industry.

Mapping of Learning Outcomes to Assessment Strategy (Indicative)

Learning Outcome Assessment Strategy
1) Create gaming software for a range of gaming devices (like game consoles), platforms (like mobile devices) and environments (like networked environments) Coursework 1 Coursework 2 practical exams (presentations)
2) Describe various computation models and discuss them in the context of games consoles and games programming Coursework 1 Coursework 2
3) Efficiently debug and troubleshoot code Coursework 1 Coursework 2
4) Determine code performance, through monitoring and measuring Coursework 1 Coursework 2
5) Improve code performance, through low and high level optimisation and create plug- ins based on DLLs Coursework 1 Coursework 2 practical exams (presentations)
6) Program low-level 3D graphics and audio hardware and explain features of forthcoming gaming hardware and peripherals Coursework 2

Elements of Assessment

Description of Assessment Definitive UNISTATS Categories Percentage
Software Project 1 (Team project on multiplayer games and plugins) Coursework 40
Software Project 2 (3D graphics, game performance for consoles) Coursework 50
Software Project 1 (Presentation) Practical examination 10
Total (to equal 100%) 100%

Achieving a pass

It IS NOT a requirement that any element of assessment is passed separately in order to achieve an overall pass for the module.

Bibliography core texts

  • Garney, Ben. ;Preisz, Eric. (2011) Video game optimization
  • Guy W. Lecky-Thompson; (2009) Fundamentals of network game development
  • Garney, Ben and Preisz, Eric (2011), Video Game Optimization. Course Technology, Cengage Learning
  • Lecky-Thompson, Guy (2008), Fundamentals of Network Game Development, Delmar
  • Steed, A. and Fradinho Oliviera, Manuel (2009), Networked Graphics:
  • Building Networked Games and Virtual Environments, Morgan Kaufman
  • Stagner, Alan R. (2013); Unity multiplayer games : build engaging, full functional, multiplayer games with Unity engine

Find a course

Course finder

Find a course
>