Course Intro

TÖL308G: Computer Game Programming
(press SPACE to continue)

NB: These slides should work in any "modern" browser.
Personally, I use one called "Brave", which also has some built-in
development tools that are relevant to the course. You should install it.

In the past, I've found that some installations of Firefox had problems
with the embedded videos that I use, for some reason.

What is This?


It's a course in computer games programming (duh!),
focusing on the core technical concepts that are
common to games in general.

It's not a course about game design, or art, or production.

It's about the "engine level" stuff that makes games work under-the-hood... but it's not about learning how to use someone else's engine either.

It's about learning to build your own...

"From Scratch"


There is a famous quote about making things from scratch...


Inventing The Universe


"If you wish to make a computer game from scratch,
you must first invent the universe."

Sadly, this is "beyond the scope" of these lectures!
(...but we might touch on it later)

What I really mean by "from scratch" is that we won't be using any "3rd party" engines, frameworks or libraries
to assist us, and that we'll actually be writing
every line of the game code ourselves...

"Every Line"?


Well... that rather depends on how you measure them.

Our games will be built to run "on the web",
but we won't be writing our own browser.

  • ...or our own compiler
  • ...or our own operating system
  • ...or our own firmware
  • ...or our own microcode
  • ...or our own chip-design tools

So why not use an Engine?


...because that would be too easy! :-)

Pragmatically, it probably makes a lot of sense to utilise existing game engines for many (but not all) new projects,
but there is much to be learned from making your own.

And, by the end of this course, you will have written
some arcade-style games that run inside modern web browsers, and should then be well-placed to understand
and evaluate other engines that you may encounter ---
 and to develop more advanced games, if you so desire.

Who is this?


A bit about me...

Past Crimes

Grand Theft Auto


Documentary Evidence

(at time = 25:57)

Wild Metal Country

Wild Metal

Crackdown


APB


EVE Online


Course Outline


  • Course Intro (you are here!)
  • A History of Computer Games
  • Intro to JS and HTML5
  • The Mainloop
  • Rendering
  • Simulation Updates
  • Making a Simple Game
  • Sprites

And...


  • Simple Physics/Dynamics
  • Object and Memory Management
  • Collision Detection and Handling
  • Diagnostics and Debugging
  • Networking for Multi-Player Games
  • Artificial Intelligence
  • Performance Optimisation
  • How EVE Online Works (maybe)

Course Structure


The core of the material will be provided in these lectures.
I will aim to make presentation slides available shortly
after the lectures for a given topic, so you don't have to
worry about transcribing them.

The tutorials will have a more interactive flavour,
where we'll talk about (and maybe expand upon)
the lecture materials, and do some
practical programming work.

Coursework and Exam


There will be weekly programming assignments,
based on the theme of each week's lectures, which
will gradually build-up into playable games.

Your final grade will be based on a combination of the Assignments, plus a Final Project, and a Final Exam.

The exam will be closed-book, and will be designed to test whether you've absorbed the core concepts of the course.
It will probably include a small amount of programming.

About You


  • CS Students?
  • 2nd Year? 3rd Year?
  • Do you have webspace?
  • Tutorial groups?

Past Student Projects









Course Intro

By Pat Kerr

Course Intro

Introductory remarks and context.

  • 3,646