COMP06268 2018 3D Game Programming

General Details

Full Title
3D Game Programming
Transcript Title
3D Game Programming
Code
COMP06268
Attendance
N/A %
Subject Area
COMP - 0613 Computer Science
Department
COMP - Computing & Creative Practices
Level
06 - Level 6
Credit
05 - 05 Credits
Duration
Semester
Fee
Start Term
2018 - Full Academic Year 2018-19
End Term
9999 - The End of Time
Author(s)
Paul Powell, Neil Gannon
Programme Membership
SG_KGAME_C06 201800 Higher Certificate in Science in Games Development SG_KGADV_B07 201800 Bachelor of Science in Computing in Games Development SG_KGADV_B07 202100 Bachelor of Science in Computing in Games Development
Description

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;

1.

Recognize the types of architectures employed in modern 3D game engines.

2.

Demonstrate an understanding of the structure of 3D geometry and models and how they can be manipulated programmatically.

3.

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 & Continuous Assessment
50 %
End of Semester / Year Formal Exam
50 %

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
Total Full Time Average Weekly Learner Contact Time 4.00 Hours

Required & Recommended Book List

Recommended Reading
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.

Recommended Reading
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.

Recommended Reading
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.

Recommended Reading
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

Other Resources
  • 3D Modelling Applications
  • Suitable IDE
  • Game Development Framework
Additional Information

None