COMP06268 2018 3D Game Programming
The purpose of 3D game programming is to teach the student to develop 3D games using a
mixture of 3D models, physics, scripting and audio content. Students will learn how to draw
both graphics primitives and 3D models. They will learn how to programmatically manipulate models
and cameras. Students will implement rendering, physics and scripting in simple 3D games.
Learning Outcomes
On completion of this module the learner will/should be able to;
Recognize the types of architectures employed in modern 3D game engines.
Demonstrate an understanding of the structure of 3D geometry and models and how they can be manipulated programmatically.
Differnetiare the role of spatial partitions and how they are created and utilized.
Teaching and Learning Strategies
Standard procedures apply.
Module Assessment Strategies
This course is 50% end of year exam and 50% continuous assessment. The end of year exam will be a written exam and require the student to explain the concepts and potentially apply them using psudeo-code.
Repeat Assessments
Repeats assemssment may take the form of a repeat exam and or a repeat project. This is dependant on the what elements the learner has failed.
Indicative Syllabus
3D Game Programming
- Drawing primitives and using different vertex types.
- Using matrices to scale, rotate and transform primitives.
- Code and manipulate camera actions and different camera types.
Models
- Understand the nature and structure of 3D models.
- Load and manipulate 3D models programmatically.
- Keyframed animation and interpolation.
Collision Detection
- Creation and usage of Bounding Boxes, Spheres and Frustums.
- Integration and usage of a physics simulation library
- Handling collisions and programming responses in game code
Spatial Partitioning
- Creation of usuage of spatial partitions
- Integrating a spatial partition into the rendering pipeline
Coursework & Assessment Breakdown
Coursework Assessment
Title | Type | Form | Percent | Week | Learning Outcomes Assessed | |
---|---|---|---|---|---|---|
1 | Multiple Choice On-line quizzes | Coursework Assessment | Multiple Choice/Short Answer Test | 10 % | OnGoing | 1,2,3 |
2 | Project Produce a game which uses the techniques learnt in class. | Coursework Assessment | Project | 40 % | Week 7 | 1,2,3 |
End of Semester / Year Assessment
Title | Type | Form | Percent | Week | Learning Outcomes Assessed | |
---|---|---|---|---|---|---|
1 | Final Exam Written exam | Final Exam | Closed Book Exam | 50 % | End of Term | 1,2,3 |
Full Time Mode Workload
Type | Location | Description | Hours | Frequency | Avg Workload |
---|---|---|---|---|---|
Lecture | Computer Laboratory | Theory and Code demonstration | 2 | Weekly | 2.00 |
Practical / Laboratory | Computer Laboratory | Programmng practice | 2 | Weekly | 2.00 |
Required & Recommended Book List
2014-11-02 Game Programming Patterns Genever Benning
ISBN 0990582906 ISBN-13 9780990582908
The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exact problem. Based on years of experience in shipped AAA titles, this book collects proven patterns to untangle and optimize your game, organized as independent recipes so you can pick just the patterns you need.
You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You'll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.
2014-11-10 Introduction to Programming with C#, XNA and MonoGame (Cook's Books Book 8) Cook's Book's
The only book to introduce C# programming on the latest version of Windows using either Microsoft's Visual Studio or MonoDevelop from Xamarin Studios. 75 examples using MonoGame XNA game technology to make learning interesting. Includes a bonus Chapter on game physics based on the latest Farseer engine.
The book has been formatted especially for portable reading devices. The text starts with a comprehensive introduction to systems concepts that are common to all programming languages.
If you want to learn to program, this is the book for you.
2010-09-24 XNA 4.0 Game Development by Example: Beginner's Guide Packt Publishing
This book is a step-by-step tutorial that includes complete source code for all of the games covered. It adopts an engaging style to teach all the game development concepts. Each block of code is explained, and game development concepts are diagrammed and covered in detail. Each game begins with a concept description and concludes with suggestions for expanding on the finished game. If you are an aspiring game developer who wants to take a shot at creating games for the Microsoft Windows platform with the XNA Framework, then this book is for you. Using this book, you can get started with creating games without any game development experience. A basic knowledge of C# would be helpful to kick-start your game development, but it's not essential.
2010-09-24 XNA 4.0 Game Development by Example: Beginner's Guide Packt Publishing
This book is a step-by-step tutorial that includes complete source code for all of the games covered. It adopts an engaging style to teach all the game development concepts. Each block of code is explained, and game development concepts are diagrammed and covered in detail. Each game begins with a concept description and concludes with suggestions for expanding on the finished game. If you are an aspiring game developer who wants to take a shot at creating games for the Microsoft Windows platform with the XNA Framework, then this book is for you. Using this book, you can get started with creating games without any game development experience. A basic knowledge of C# would be helpful to kick-start your game development, but it's not essential.
Module Resources
- 3D Modelling Applications
- Suitable IDE
- Game Development Framework
None