Teaching Responsibility
LJMU Schools involved in Delivery:
Computer Science and Mathematics
Learning Methods
Lecture
Practical
Module Offerings
7118COMP-SEP-CTY
Aims
To apply the object oriented and data oriented paradigms in a toolset development environment and how data-driven architectures can be used for localisation, internationalisation and product lifecycle extension.
To appraise different software development methodologies and the impact that a specific methodology has on the development paradigm and development process used.
To develop advanced programming skills using techniques such as templates, design patterns, GPGPU and parallel programming
To leverage game technologies in combination with traditional UI-driven programming for use in alternative domains such as simulation, data visualisation and business application development and tools production.
Module Content
Outline Syllabus:Advanced Data Structures and Algorithms:
- Custom Collections and Iterators
Data Driven Games Development and Data Oriented Programming
- Programming as Data Transforms.
GPGPU Programming
- Using GPGPU for Parallelisation of Game Techniques
- Generalising GPU Programming:
- Compute
- OpenCL/Cuda
Software Engineering Methodologies for Game Programming
- Agile, RAD, LEAN, etc.
- Mobile Games Development – Managed vs Native Programming
Advanced Object Oriented Programming
- Dependency Injection / Inversion of Control
- Advanced Abstraction Techniques.
Game Design Patterns
- Gang of Four – Command, State, Singleton, Observer, Flyweight
- Sequencing Patterns
- Behavioural Patterns
- Decoupling Patterns
- Optimisation Patterns
Parallel vs Sequential Programming Techniques in C++
- AMP
- Loop Unrolling / Vectorisation
- Threading, Mutex, Locks
Developing Tools using Accelerated Render Targets and UI Frameworks.
Applying Game Technologies to simulation and data visualisation.
Game Technologies for Information Systems.
Localisation and Testing.
QA and Internationalisation.
Source Control Management and Project Management.
Data Driven Architectures for Support Systems
Accelerated Graphics in a Web Environment.
Game Editor Architecture and Platform Integration.
Additional Information:In this module, students will be exposed to the wider fields of development in the games industry, outside of core game programming. Students will develop advanced software engineering skills using programming strategies such as design patterns, optimised data structures, data-oriented programming paradigm and GPGPU programming. The focus will be on the practical application of these techniques to the wider games industry development ecosystem and how game technologies can be leveraged in domains other than games development.
Students will be working in team and learn to build a production tool-chain, which utilises data-driven game development, optimised real-time performance and the utilisation of the GPU for non-graphical tasks. The process of building a toolset will demonstrate the importance of a multi-disciplinary approach to development and how development team members in a specific role collaborate in order to create a coherent ecosystem.
Assessments
Technology
Centralised Exam