Computer Graphics and Game Development Courses

We offer a number of courses for a student wishing to specialize in the computer graphics or game development field during their studies. The courses and activities are grouped into 3 categories. The Basics category courses focus on the introduction and fundamental understanding in the field. The Advancement category is meant to improve on the learned basics and deals with topics, which build on the fundamentals. Studies culminate with the BSc or MSc thesis, during which the student achieves and demonstrates mastery of a chosen topic in the field.


Computer Graphics – MTAT.03.015

In the Computer Graphics course we acquire a really good fundamental understanding of 3D graphics in computer science. In the first part of the course we go through the standard graphics pipeline. We start with the topics on how we define and transform geometrical objects in an affine space. We deal with vectors and matrices, which are the reason the GPU can render so many polygons in our computer at all. The topics continue with optical properties of materials and how are 3D objects colored (shaded) when given a light source. Naturally after those main topics we have gained also the fundamental skills in both vertex and fragment shader programming.
The second half of the course focuses on a variety of advanced topics and branches into 2 modules. On one hand you can continue developing low level algorithms like ray-triangle intersection testing used in ray trace rendering or path tracing used in global illumination. On the other hand it is possible to learn how computer graphics techniques are utilized in the Unreal Engine 4 game engine and gain skills on how to effectively use the engine. More enthusiastic students can spend time to master both those approaches.

Computer Game Development and Design – MTAT.03.263

As computer games are a very interdisciplinary art form, this course focuses on a myriad of topics from different disciplines. For example in the beginning of game development it is important to define and know your player types and the target audience. During the latter half of the production phase it is important to know how to market your game to the aimed audience. Of course, because this is a computer science course, many of the topics focus on how to design and implement different aspects of a game. From narrative and sound to graphics and level design. During the course you build your own games with the Unity game engine. This is why it is important to have a good understanding of object-oriented programming before taking this course. In the end you will have gained practical skills to utilize in your future game development projects.

Computer Graphics Seminar (CGS) – MTAT.03.305

Being a Master’s seminar type course the topics in CGS change from year to year. Each time you take this course you pick your own topic from among any computer graphics topic. The chosen topic should be the one, which interests you and you can likely use in your future projects or thesis. During the semester we present to each other our chosen topics and thus collectively advance in the field. Usual topics include procedural generation, different rendering aspects (non-photorealistic, physically-based, real-time, offline etc), visual effects, use case studies and other topics, which were not covered in the fundamental computer graphics course. Often there are also guest lecturers and field trips to different labs.

Computer Graphics Project (CGP) – MTAT.03.328

This very practical repeatable course allows you to building a software project of your choosing. With the learning-by-doing approach you gain skills in a chosen technology. Although the project is your own choice and should be related to your level of prior skills, it is recommended that you have an understanding of computer graphics or game development. Otherwise it might be difficult for you to estimate the planned effort to put into your project. Usually this course is good, when you are building something by yourself anyway or have a practical thesis part, which requires more work than the thesis credits you for. During CGP you additionally learn to set up milestones and correctly estimate your time requirements based on your skills.

Programming Patterns in Computer Games – MTAT.03.315

Developing a real-time application with a graphical component can be quite difficult if you have little experience with it. In this course we advance on the object-oriented programming paradigm by learning a good number of programming patterns. These patterns are common, useful, readable and scalable solutions to often quite standard problems in programming. So in this course we learn how not to make a mess in the code, when developing a game. In the end this course provides very useful programming skills and also critical thinking capabilities into your own and other people’s code.


In the end of your level of studies, you have to do a thesis. There are different types of a thesis and we have lot of guidelines for actually doing it. The main goal is for you to find something interesting (previously unknown) and useful (beneficial to others) to use your previously acquired skills in. Doing a successful thesis shows to you and to others that you have become an independent computer scientist in a field of your choosing.

The Computer Graphics and Virtual Reality Lab

The CGVR LabThis support structure provides you a workplace with a number of devices you might need during your studies. For example if you would like to have a good PC with dual monitors to speed up your computer graphics project or thesis work. In the lab we also have other students and professionals working beside you, so you can quickly find help to different issues you encounter.

APT GameGenerator

APT GameGeneratorWhen you are into game development, this is a must organization in Tartu. There are weekly talks and workshops each Monday that deal with both basic and advanced game development topics. If you have a game development related question or a project you need to find developers for, then APT GG is there to help you. They also organize game jams several times a year. During a game jam you can build games or game prototypes during one weekend, advancing your skills and development speed further. Find out more at


CGLearnThe Computer Graphics, Computer Game Development and Design, Programming Patterns in Computer Games have their materials in the learning environment CGLearn. All the materials and tasks are freely available for students at, for others there is a limited selection at
The materials of each course in the environment are structured into modules, which include topics. Each topic has then chapters on different aspects of the topic. In some materials there are also live JavaScript examples, which illustrate an algorithm and allow you to play around with parameters.
The environment was built as part of a MSc thesis and has been improved ever since.