Introduction to game programming

Along these sessions we will introduce you to the wonderful world of game programming. As you will learn the basis of computer programming in the rest of this module, you will see here how to apply these concepts to this exciting area.

In the first sessions, we will see how to implement basic videogames using the console (since all the concepts that we will learn in this module will be applied to console applications). Once you are comfortable with these concepts, we will move to graphical environments, and see how to apply the same concepts that we learnt before to graphical video game libraries, to create more sophisticated video games.

After finishing each session, you will be asked to deliver a program containing all the features seen until then. Once the deadline for delivering this session expires, we will publish the solution so that you can go on to next session even if your own solution is not correct.

Console videogame: Arkanoid

Along these sessions, we will implement a version of a game called Arkanoid. It was developed in the 80s by Taito, and it is based on a previous video game called Breakout, by Atari. The target of the game is to break as many bricks as possible by moving a slide in the bottom of the screen and making a ball bounce against the bricks

We will first learn some basics of how to work with the console, and then we will implement a console (reduced) version of the game.


1. Screen limits, colors and random numbers
Sept 26th 2017
2. Game loop and user input
Oct 3rd 2017
3. Collisions, motion improvement and other issues
Oct 10th 2017
4. Using arrays and structures
Nov 21st 2017
5. Using functions to arrange our code
Dec 5th 2017
6. Some additional improvements
Dec 12th 2017
Task delivery

Off-topic sessions

1. Video game insanity
Nov 7th 2017
Task delivery