Advanced Game Development
Run by School of Computer Science and Electronic Engineering
20 Credits or 10 ECTS Credits
Overall aims and purpose
Introduce advanced video game development concepts and techniques.
Familiarise students with modern video game development pipelines, engines and tools.
Provide practical experience in implementing advanced algorithms and techniques for video game development.
Indicative content includes:
- Modeling + Animation - Meshes, rigging, UV mapping, skinning, inverse kinematics, key-frame animation, dynamic animation, blend trees, motion matching.
- Rendering - Rendering pipelines, cameras, lighting, lightmaps, volumes, blending, shadows, shaders, post-processing, particle systems, tessellation, real-time ray-tracing.
- Scripting - Common algorithms, API calls, vectors and quaternions
- Performance and Optimisation - Profiling, object pooling, level of detail, draw calls, batching, culling, mobile optimisation.
- Physics - Collision detection, rigid bodies, joints, articulated figures, soft bodies.
- Navigation and AI - Pathfinding, nav-meshes, finite state machines, behavioural trees.
- Procedural Generation - Procedural generation of environment, characters, animation, gameplay.
- New Technologies - Virtual Reality, Augmented Reality, cloud computing.
- Misc - audio, input, haptics, streaming, networking, analytics, tools.
Equivalent to 40%. Uses key areas of theory or knowledge to meet the Learning Outcomes of the module. Is able to formulate an appropriate solution to accurately solve tasks and questions. Can identify individual aspects, but lacks an awareness of links between them and the wider contexts. Outputs can be understood, but lack structure and/or coherence.
Equivalent to the range 60%-69%. Is able to analyse a task or problem to decide which aspects of theory and knowledge to apply. Solutions are of a workable quality, demonstrating understanding of underlying principles. Major themes can be linked appropriately but may not be able to extend this to individual aspects. Outputs are readily understood, with an appropriate structure but may lack sophistication.
Equivalent to the range 70%+. Assemble critically evaluated, relevent areas of knowledge and theory to constuct professional-level solutions to tasks and questions presented. Is able to cross-link themes and aspects to draw considered conclusions. Presents outputs in a cohesive, accurate, and efficient manner.
Critically reflect on different algorithms and techniques, and their impact on game development process and performance.
Demonstrate intermediate C#/C++ programming skills.
Display knowledge of the state of the art and future of game development algorithms and techniques.
Understand suitability of game development techniques across different platforms (PC, console, VR, mobile).
Implement several advanced game development techniques in a game engine.
Demonstrate understanding of advanced game development concepts and techniques.
Teaching and Learning Strategy
Implementation of two separate game development techniques, write report about both. Develop example game that combines the two techniques, or alternatively new ones.
1-2 hour lecture / tutorial per week.
2 hour lab x 12 weeks.
Background reading, revision, game engine tutorials.
- Literacy - Proficiency in reading and writing through a variety of media
- Numeracy - Proficiency in using numbers at appropriate levels of accuracy
- Computer Literacy - Proficiency in using a varied range of computer software
- Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
- Exploring - Able to investigate, research and consider alternatives
- Information retrieval - Able to access different and multiple sources of information
- Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
- Leadership - Able to lead and manage, develop action plans and objectives, offer guidance and direction to others, and cope with the related pressures such authority can result in
Subject specific skills
- Knowledge and understanding of facts, concepts, principles & theories
- Use of such knowledge in modelling and design
- Problem solving strategies
- Deploy theory in design, implementation and evaluation of systems
- Specify, design or construct computer-based systems
- Deploy tools effectively
- Development of general transferable skills
- Defining problems, managing design process and evaluating outcomes
- System Design
- Knowledge and understanding of mathematical principles
- Knowledge and understanding of computational modelling
- Specify, deploy, verify and maintain computer-based systems
- Principles of appropriate supporting engineering and scientific disciplines
Resource implications for students
Unity will be available on lab machines. Personal laptops or desktops with Unity installed also recommended.