Course syllabus

Introduction

Hello folks, welcome to Game Engine Architecture (TDA572 / DIT455).   During the next couple of months we are going to be looking at what a game engine does, how it can be built, and the features that it will often have.  To accomplish this we will be incrementally developing our own game engine, called Shard.   Note that this will not be feature complete or even bug-free - game engines are amongst the most complex software artifacts that people routinely use.   However, it'll be 'good enough' that we can expand upon it and develop demonstration games that show how it works.

I hope you find it fun and interesting!

Note too that this course is running in a different form this year because a new examiner (me) has taken over.  Your patience and indulgence as the kinks are ironed out would be appreciated!

Requirements

We are going to be doing the coding for this in C#.  If you've never used C# before that's fine - the level of code required is not especially high, although the sophistication of the concepts may hide that.  If you've done any programming at all, you should be fine.   Usually the Wednesday morning class will be used for delving into any code questions you have.   

Contact Details

This is your course team:

Michael Heron, examiner, lecturer and course responsible - heronm@chalmers.se
Shakila Tayefeh, teaching assistant - tayefeh@student.chalmers.se

Schedule

Due to a member of staff for another course having to deal with a personal emergency, there will be some disruptions to week one (and possibly week two) of the course as I provide cover.   Nothing in the schedule will be lost, but the first week (or two) will not quite match the tempo of the others.  The plan is generally:

Monday, 0915 - 1200 - Lecture
Wednesday, 1015 - 1200 - Technical Teardown of Shard
Wednesday, 1315 - 1700 - Project work time, w/ supervision

You can see the schedule and rooms in the calendar.   If there is a disagreement between TimeEdit and this page, go with what this page tells you.  TimeEdit is a room booking system, not a scheduling system.

However for week one the Monday class will be a self-study exercise that we then talk about on the Wednesday, with the afternoon session instead being the lecture.

Keep an eye on the announcements for further details of any other disruptions, and my apologies in advance.

Student Representatives and Course Evaluation

These are the (randomly-selected) student representatives for this course:

MPALG	antfor@student.chalmers.se	Anton Forsberg
MPHPC	liaohaowei95@gmail.com	        Haowei Liao
MPIDE	donsrat@gmail.com	        Sameera Parakrama Ratnayake
MPIDE	samuel_widen@hotmail.se	        Samuel Widén
N2GDT   gusumbar@student.gu.se Arturs Umbrasko

Voluntary representatives can be added on request.  If you're a GU student, your volunteering would be especially valuable!

Course Literature

You are not required to buy any literature for this course - everything you need to know will be covered as part of the teaching.  Recommendations may be given in individual lectures, but none of this is core.

Learning outcomes (after completion of the course the student should be able to)

  • Describe the typical structure of game engines and interactive simulations, and the requirements of specific parts of such engines 
  • Describe what public libraries and programs can be combined with existing game engines to provide the required functionality of a game engine
  • Extend existing game engines to augment functionality while maintaining stability and having predictable consequences on resource use 
  • Present extensions of a game engine through a demonstrator at a public presentation
  • Analyze existing game engines to determine functionality and extendibility 
  • Plan several parallel extensions of a game engine while minimizing dependencies 

Note here for 'interactive simulations' these are exactly the same thing as games except that the expected end-goals would be different.  

Examination form

The course is graded by an individual report, screencast and technical artifact.  These is also a final presentation.

The course has the following grades: U, 3, 4, & 5. These grades are also given for each assignment in the course. In order to receive a passing grade on the entire course, a student needs to receive at least a 3 on all assignments. The course grade given will be a weighted average of the grades on the modules.

Course summary:

Date Details Due