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.