MODULE LEARNING OUTCOMES
1. Appraise the technologies and techniques used in network programming.
2. Research networking and concurrency techniques used in multiplayer games development.
3. Develop a multithreaded codebase that is able to handle race conditions.
4. Design multiplayer game systems that are synchronised across multiple clients.
MODULE ADDITIONAL ASSESSMENT DETAILS
Assessment Component 1 – (Learning Outcome 1)
Literature weighted at 30% and consisting of:
- 1800-word literature review focussed on the different networking and concurrency techniques used when creating a network library and a multiplayer game.
Assessment Component 2 – (Learning Outcomes 2, 3 and 4)
Multiplayer Game weighted at 70% and consisting of:
- A multiplayer game and networking library that utilises socket programming and concurrency techniques to handle multiple players over a client/server network architecture.
MODULE INDICATIVE CONTENT
This module will cover the following topics:
- Concurrency
- Networking architecture
- Optimisation
- OSI and TCP/IP
- Prediction algorithms
- Security
- Serialisation
- Socket programming
- Transport protocols
WEB DESCRIPTOR
Networking and multiplayer elements are used in most games to connect players together and to allow them to interact and engage within a game world. In this module you will learn how to create a networking library that is able to send complex information over a network, design a multithreaded codebase that is able to run multiple strands of code concurrently and design and develop a multiplayer game.
MODULE LEARNING STRATEGIES
2x 1-hour lectures per week presenting key topics and concepts
2x 2-hour practical tutorial sessions per week, providing assistance and guided learning
MODULE TEXTS
- Glazer, J. and Madhav, S. (2016) Multiplayer game programming : architecting networked games. Boston: Addison-Wesley. ISBN: 978-0134034300
- Engelbrecht, D. (2022) Building multiplayer games in unity : using mirror networking. Place of publication not identified: Apress. ISBN: 978-1484274736
MODULE RESOURCES
- Appropriate IDE (Visual Studio, Rider, etc)
- Windows PC
- Office 365
- Version Control (GitHub, Plastic SCM or equivalent)
- Digital Academy Forum
- Digital Academy Upload