Game Programming @ mff.cuni.cz

The Game Development curriculum is being taught as a specialization for the Computer Graphics and Game Development master’s degree program offered as part of the 2-year-long Computer Science graduate studies program at the Faculty of Mathematics and Physics at Charles University in Prague, Czech Republic. For more information about the admissions process (you need at least a bachelor‘s degree, preferably in computer science), please consult the official website.

The Game Development major is meant for programmers, who wish to obtain a formal education in programming computer games. If you would like to become a game designer instead (while studying in Prague), your best option would be to sign up for StuNoMe studies. If you are an artist seeking a formal degree who would like to develop games as part of your studies, you might consider enrolling at the Studio of Animation and Interactive Art (Pilsen), who is one of the partners in this program.

However, if you are truly a programmer who wants to pursue a future in computer games, then welcome! You've come to the right place. The following paragraphs will provide you general info on the Game Development major and the philosophy behind.

You might be thinking, why should I study computer game programming? The answer is simple. It's already a multi-billion dollar business. Of course you could learn computer game programming on your own, but you'll be better off having a degree while working on your game than just working on your game. It's also a great opportunity to meet like-minded people. You can meet not only programmers, but also designers and graphic artists as well. You will also have the chance to meet (and impress) people from local GameDev industry. Finally, by studying Game Development with us, you will broaden your horizons in areas that will have a lot to do with game development in the near future: artificial intelligence and multi-agent systems. Frankly, it's always easier to be a student than a junior unemployed game developer.

The major is a mixture of formal lectures that will give you the theoretical background a good GameDev should have like computer graphics, software engineering and AI. You will also take part in lots of practical classes and workshops where you will have an opportunity to experiment with as many middlewares as you like. As you are surely aware, computer games cannot be developed by a programmer alone, we cooperate with different faculties and universities to foster interaction with students from different disciplines (design, new media, graphics, music, etc.). They study the same courses where they form heterogeneous teams that cooperate on the development of a single game.

You can pick from a wide array of lectures, workshops and classes when studying GameDev at our faculty. You can find a complete list of classes in our study plans. In these documents we point out which courses are compulsory or recommended throughout the study program. How the study might look like (from term to term) is covered by following Google Spreadsheet, which also contains a break down of the time you will be able to fully devote to the development of your game. And here is a document with frequent questions & answers.

Follows a diagram that contains crucial GameDev courses and their relations throughout your study.

GameDev-Walkthrough

Lectures

  • NPGR003 - Computer Graphics I and NPGR004 - Computer Graphics II
    • These will give you a theoretical as well as practical background in computer graphics. MFF UK students should have those already under their belts from bachelor studies.
  • NPGR033 - Graphics for Computer Games
    • Lecture aimed at the specifics of computer game graphics, both 2D and 3D.
  • NAIL106 - Multi-agent Systems
    • Many computer games can be considered multi-agent systems; they are not designed as such. By exploring existing knowledge from MAS, you will gain a new perspective on games using complex virtual environments (e.g. open-world RPGs).
  • NAIL068 - Human-like Artificial Beings
    • Building a computer game is like building a pyramid. Down below there is a renderer and a physics system, then there is an environment, the basic game mechanics and player representations. These are followed by an AI subsystem with its environment abstraction, navigation, collision avoidance, etc. On top sit the respective NPCs' action-selection units, behaviors, etc. that orchestrate life within your virtual world. How does one design them? That is what this course teaches you.

Workshops

  • NSWI115 - Computer Games Development
    • This is the first workshop that gives you space for developing your own game.       Programmers, designers, graphic artists and musicians, et. al. all attend this course: you can join forces with them to start a real game project. Apart from creating a game, you will learn a lot of soft skills during this workshop. This is because you will have to collaborate with people, who are not well versed in computer science.
  • NSWI160 - Computer Games Middleware
    • A workshop where you will explore various game engines and middlewares such as Unity 3D, Unreal Engine 4, CryEngine, Adobe AIR, Mono, etc.
  • NAIL054 - Adaptive agents
    • Some agents, more game theory, some neural networks.
  • NSWI159 - Practical Course on Game Development
    • Attend a GameJam organized at MFF UK, develop a small game within 48-72 hours and get credits! "Simple" as that :-)
  • NSWI158 - Seminar on Computer Games Development
    • Referative seminar about anything regarding computer game development (frameworks, AI, design, ...)

Project

  • NPRG027 - Credit for Project and NPRG023 - Software Project II
    • During your studies, you will be expected to work on a large project. This might even be the game you will start working on during NSWI115. That means you will have 3 semesters total to collaborate on a game as part of a team; this gives you lots of space to develop a relatively complex and polished game.

Thesis

  • NSSZ023 - Master Thesis I, NSSZ024 - Master Thesis II, NSSZ024 – Master‘s Thesis III
    • Apart from the Software Project, you will be expected to write a master‘s thesis. Preferably, it will be related to the game you will be working on during NSWI115, NPRG027 and NPRG023. The thesis topics range from implementation of custom graphics algorithms (e.g. custom renderers, raytracers, etc.) to AI applications (e.g. racing AI, team-oriented behaviors, player modelling, procedural generation, etc.).

Ideal trajectory for obtaining a master's degree in 2 years:

  • 1st Semester
    • You join a team and start to work on your game during NSWI115, study game middlewares along the way in NSWI160. Definitely attend a game jam in NSWI159, where you can start coding your game for NSWI115.
  • 2nd Semester
    • Having a prototype from NSWI115, you will rethink/redesign the game during NPRG027, while thinking about your master‘s thesis during NSSZ023.
  • 3rd Semester
    • You will be working hard on your game during NPRG023, while also implementing your master‘s thesis during NSSZ024, attend a seminar NSWI158.
  • 4th Semester
    • You will have a finished game from the previous semester that includes the implementation part of your master‘s thesis. Now comes the time when you will be playing around with your implementation and collecting data on its efficiency, resource consumption, scalability, etc. and also writing the text part of your thesis during NSSZ025. Continue with a seminar NSWI158.

As you can see, the curriculum provides you a lot of space for your own inventions. And that's good. Game development is about open-mindedness, creativity and fun. So there is no reason why your studies should put any constraints on you.

If you have any questions, feel free to contact Jakub Gemrot, gemrot@gamedev.cuni.cz.