Visual Computing and Game Development

Coordinated by: Department of Software and Computer Science Education
Study branch coordinator: Doc. RNDr. Tomáš Dvořák, CSc.

The study program consists of two closely related specializations which differ in the examination areas for the state final exam. It is recommended to choose the courses so that they would cover the selected examination areas.

Specializations:

Visual computing
Computer game development

The specialization Visual computing offers training in a wide range of visual sciences, including geometric modeling, rendering (image synthesis) as well as the basics of image analysis and computer vision. The specialization Computer game development focuses - apart from computer graphics techniques - mainly on artificial intelligence and intelligent agent systems, as well as on software engineering skills necessary for the development of large-scale gaming projects. Both specializations place emphasis on general programming skills, both at the system level closer to the hardware, as well as on the higher level of modern programming languages.

Graduates have expertise in the design and development of graphical systems and computer games, but they can work in any position which requires logical thinking, analytic and algorithmic approaches or the use of methods of computer science. Depending on the chosen specialization, graduates have a deep knowledge of computer graphics and image analysis, and their expertise covers the development of large-scale gaming projects, real-time applications, programming of portable devices, as well as the foundations of artificial intelligence and computer graphics in the context of computer games. Graduates can apply this knowledge to solve specific practical tasks. They can work in research and development both in the private sector and in academia.

7.1 Obligatory Courses

CodeSubjectCreditsWinterSummer
NTIN090Introduction to Complexity and Computability 42/1 C+Ex
NTIN066Data Structures 1 62/2 C+Ex
NSZZ023Diploma Thesis I 60/4 C
NSZZ024Diploma Thesis II 90/6 C
NSZZ025Diploma Thesis III 150/10 C

7.2 Elective Courses

The student needs to obtain at least 56 credits for the courses from the following set. The program requires to choose one out of the three project courses  - Software project, Research project, Company Project. Other potential credits for courses from this triple are counted as credits for free courses.

CodeSubjectCreditsWinterSummer
NPRG069Software Project 120/8 C0/8 C
NPRG070Research Project 90/6 C0/6 C
NPRG071Company Project 60/4 C0/4 C
NPRG072Increased project scope 30/2 C0/2 C
NMAI060Probabilistic Methods 32/0 Ex
NMAI061Methods of Mathematical Statistics 52/1 C+Ex
NPGR0013D Computer Vision 52/2 Ex
NPGR010Advanced 3D graphics for film and games 52/2 C+Ex
NPGR013Special Functions and Transformations in Image Processing 32/0 Ex
NPGR016Applied Computational Geometry 52/1 C+Ex
NPGR021Geometric Modelling 52/2 C+Ex
NPGR024Seminar on Scientific Soft Skills 30/2 C
NPGR026Predictive Image Synthesis Technologies 42/1 C+Ex
NPGR027Shading Languages 52/1 C+Ex
NPGR028High Performance Ray Tracing 32/0 Ex
NPGR029Variational methods in image processing 32/0 Ex
NPGR033Computer Graphics for Game Development 52/2 C+Ex
NPGR041Selected topics in Computer Vision 52/2 C+Ex
NCGD001Computer Games Development 1 62/2 C+Ex
NCGD003Gameplay Programming 41/2 C+Ex
NCGD004Introduction to Game Design 31/1 C+Ex
NCGD005Game User Experience 31/1 C+Ex
NCGD007Practical Course on Native Game Development 30/2 C
NCGD008Practical Course on Managed Game Development 30/2 C
NAFF003Introduction to Game Studies 30/2 Ex
NAFF004Contemporary Issues in Game Studies 30/2 Ex
NPRG043Recommended Programming Practices 52/2 MC
NPRG058Advanced Programming in Parallel Environment 62/2 C+Ex
NSWI026Advanced aspects of software engineering 52/2 C+Ex
NSWI072Data Compression Algorithms 32/0 Ex
NSWI130Software System Architectures 52/2 C+Ex
NSWI131Performance Evaluation of Computer Systems 42/1 C+Ex
NSWI145Web Services 52/2 C+Ex
NSWI153Advanced Programming of Web Applications 52/2 C+Ex
NTIN043Formal Foundations of Software Engineering 52/2 C+Ex
NDBI034Multimedia Retrieval 42/1 C+Ex
NAIL068Human-like Artificial Agents 52/2 C+Ex
NAIL069Artificial Intelligence 1 42/1 C+Ex
NAIL070Artificial Intelligence 2 32/0 Ex
NAIL106Multiagent Systems 52/2 C+Ex
NAIL122Artificial Intelligence for Computer Games 31/1 C+Ex
NAIL123Procedural Content Generation for Computer Games 31/1 C+Ex
NPFL114Deep Learning 73/2 C+Ex

7.3 Other Recommended Courses

The list of recommended courses contains only those that supplement or expand the material essential for this study program. The choice of others is left to the student who can choose from a wide range of courses offered at the faculty.

CodeSubjectCreditsWinterSummer
NPGR004Photorealistic Graphics 52/2 C+Ex
NPGR005Computer graphics and vision seminar 20/2 C0/2 C
NPGR019Realtime Graphics on GPU 52/2 C+Ex
NPGR022Advanced Seminar On Image Processing 20/2 C0/2 C
NPGR030Optics for computer graphics 32/0 Ex
NPGR036Computer Vision 52/2 C+Ex
NCGD002Computer Games Development 2 31/1 C+Ex
NCGD006Practical Course on Rapid Game Development 20/1 C
NPRG042Programming in Parallel Environment 62/2 C+Ex
NPRG054High Performance Software Development 62/2 C+Ex
NPRG056Mobile Devices Programming 30/2 C
NPRG059Advanced Programming Praxis 20/1 C
NSWI041Introduction to Software Engineering 52/2 C+Ex
NSWI158Seminar on Computer Games Development 30/2 C0/2 C
NAIL025Evolutionary Algorithms 1 52/2 C+Ex
NAIL028Introduction to Robotics 52/2 C+Ex
NAIL071Planning and Scheduling 32/0 Ex
NAIL082Seminar on Humanlike Artificial Agents 30/2 C0/2 C
NAIL087Computers and Cognitive Sciences 1 63/1 C+Ex
NAIL108Mobile Robotics 31/1 MC
NDBI045Video Retrieval 52/2 C+Ex

7.4 State Final Exam

The student chooses three examination areas from the offer of the selected specialization following the conditions specified below. Students are asked one question from each selected examination area. In total, each student obtains three questions.

Specialization: Visual Computing

Students have to choose at least two examination areas from the following list. The third examination area can be chosen at will also from among all the examination areas offered in the specialization Computer game development, except the area ``Computer graphics for games".

Examination areas

1. Realistic image synthesis
2. Image analysis and processing, image compression, computer vision
3. Geometric modeling and computational geometry

Knowledge requirements

1. Realistic image synthesis
Representation of 3D scenes, visibility determination, cast shadows, reflection models and shading algorithms, recursive ray tracing, textures, anti-aliasing, iso-surface extraction. Graphics accelerator architecture, data transfer to the GPU, textures on the GPU, GPU programming: shaders, basics of OpenGL, HLSL and GLSL, CUDA. Physically-based models of light transport (radiometry, BRDF, rendering equation), Monte Carlo integration (importance sampling and MIS), Monte Carlo approaches in lighting simulation (path tracing, bi-directional path tracing), approximate methods for global illumination (photon mapping, irradiance caching). Monte Carlo methods for spectral illumination, participating media, measurement and verification of rendering methods. Shading languages (Renderman shading language, OSL). General and specific techniques for ray-tracing acceleration.

Recommended courses

CodeSubjectCreditsWinterSummer
NPGR010Advanced 3D graphics for film and games 52/2 C+Ex
NPGR026Predictive Image Synthesis Technologies 42/1 C+Ex
NPGR027Shading Languages 52/1 C+Ex
NPGR028High Performance Ray Tracing 32/0 Ex

2. Image analysis and processing, image compression, computer vision
Contrast and intensity manipulation, HDR, noise reduction, edge detection. Determining the relative position of images, point and object correspondence, geometric distortion removal, edge detection, detection of areas. Features for description and recognition of 2D objects, moment invariants, wavelets and their use. Statistical theory of pattern recognition, supervised and unsupervised classification, convolutional networks. Compression of raster 2D graphics, scalar and vector quantization, predictive compression, transformation compression methods, video compression, temporal prediction (motion compensation), JPEG and MPEG standards.

Recommended courses

CodeSubjectCreditsWinterSummer
NPGR041Selected topics in Computer Vision 52/2 C+Ex
NPGR029Variational methods in image processing 32/0 Ex
NPGR013Special Functions and Transformations in Image Processing 32/0 Ex
NSWI072Data Compression Algorithms 32/0 Ex
NPGR0013D Computer Vision 52/2 Ex

3. Geometric modeling and computational geometry
Differential geometry of curves and surfaces, their approximation and interpolation. Bezier curves and surfaces, de Casteljau algorithm. B-spline functions and curves, de Boor algorithm, rational curves and surfaces, NURBS, Coons patch.

Geometric location. Convex hulls. Voronoi diagrams, their applications and generalization. Planar triangulations of a point set and their applications. Tetrahedralization and their applications. Polygon triangulation. Medial Axis. Intersections.

Recommended courses

CodeSubjectCreditsWinterSummer
NPGR021Geometric Modelling 52/2 C+Ex
NPGR016Applied Computational Geometry 52/1 C+Ex

Specialization: Computer game development

Students obtain one question from each of the following examination areas:

1. ``Computer games development" (this area is obligatory for the specialization Computer game development).
2. Either the area ``Computer graphics for games" or any area from the specialization Visual computing.
3. One of the areas 3 - 7 chosen by the student.

Examination areas

1. Computer games development (obligatory for the specialization Computer game development)
2. Computer graphics for games
3. Artificial intelligence for games
4. Video games as a social-cultural phenomenon
5. Software analysis and architectures
6. Web technologies
7. High Performance Computing

Knowledge requirements

1. Computer games development
Game programming; development of game mechanics, game programming design patterns, scripting. Game engine architecture; architecture layers, computational models, entity-component system, memory management, game architecture instances. Game design; who is a game designer, game design axes, game genres, design specifics of gaming platforms, game design document (its properties, structure, UML diagrams for description of game mechanics, game space, characters, specifications of dialogues), history of the video game market and its trends. Game production cycle; game production phases, data-driven game design, resource management, game testing, development team roles, game analytics, waterfall and agile methodology, business and monetization models. Games and narrativity; differences between games of emergence and games of progression, environmental storytelling, procedural rhetoric, ludonarrative dissonance.

Recommended courses

CodeSubjectCreditsWinterSummer
NCGD001Computer Games Development 1 62/2 C+Ex
NCGD003Gameplay Programming 41/2 C+Ex
NCGD004Introduction to Game Design 31/1 C+Ex

2. Computer graphics for games
Homogeneous coordinates, affine and projective transformations in the plane and in space, quaternions, splines, interpolation by cubic splines, Bezier curves, Catmull-Rom splines, B-splines. Sampling and quantization, image anti-aliasing, textures, change of contrast and brightness, alpha-bending and compositing, compression of raster 2D graphics. Representation of 3D scenes, visibility, cast shadows, soft shadows, subsurface scattering, lighting models and shading algorithms, recursive ray tracing, physically-based model of light transport (radiometry, imaging equation), path tracing, precomputed global illumination, real-time global illumination, spherical harmonics-based shading, precomputed radiance transfer. Character animation, skinning, rigging, morphing. Graphics accelerator architecture, data transfer to the GPU, textures and GPU buffers, GPU programming: shaders, basics of OpenGL, GLSL, CUDA and OpenCL. Compression of raster 2D graphics, JPEG standard, video compression.

Recommended courses

CodeSubjectCreditsWinterSummer
NPGR033Computer Graphics for Game Development 52/2 C+Ex
NSWI072Data Compression Algorithms 32/0 Ex

3. Artificial intelligence for games
Autonomous agent architectures; agent perception, agent action selection mechanism, agent memory, psychological inspiration. Methods for agent control; symbolic and connectionist reactive planning, hybrid approaches, decision space. If-then rules, scripting, sequential finite state machine, behaviour trees. Path search problem, local navigation rules (Reynold's steerings, VO, RVO, Context steering), pathfinding algorithms (A*, JPS+, goal bounding, RRT, RRT*, LPA*, MPAA*, bidirectional search), spatial awareness (geometry, visibility). Communication and knowledge in multiagent systems, ontologies, speech acts, FIPA-ACL, protocols. Distributed problem solving, cooperation, Nash equilibria, Pareto efficiency, source allocation, auctions. Methods for agent learning; reinforcement learning, basic forms of animal learning. Procedural modeling of state space (forward model) and its search; A*, ABCD, MCTS and UCB, PGS, PGS-II, script space (Kiting, AV, NOK-AV), effective implementation. Procedural content generation method classification, methods used for generation of terrain, visual effects, music, game items, mazes and dungeons. Noise functions; Perlin, Simplex, Worley. Cellular automata, L-Systems, graph and shape grammars. Answer set programming. Wave-function collapse algorithm. Methods for mixed initiative generation.

Recommended courses

CodeSubjectCreditsWinterSummer
NAIL068Human-like Artificial Agents 52/2 C+Ex
NAIL106Multiagent Systems 52/2 C+Ex
NAIL122Artificial Intelligence for Computer Games 31/1 C+Ex
NAIL123Procedural Content Generation for Computer Games 31/1 C+Ex

4. Video games as a social-cultural phenomenon
Theory of game studies; definition of game studies, relationship of game studies to other fields of science, cultural, social and political aspects of video games, definition of video games, differences between video games and other audiovisual media and their implication for research. History of video games; birth of video games, technological and cultural roots of video games, key milestones, media archeology in game studies, convergent evolution. Research methods in game studies; types of research, formal game analysis. Rules of play research; research methods, subjective play experience, gaming communities. Social aspects of video games; positive and negative social aspects of video games, demographic profile of the video games player and their development in time, MMO and research of video games social aspects. Psychological and cognitive aspects of video games; positive and negative psychological aspects of video games, research methods, effects of memory, emotions, attention and motivation on players' gameplay experience, relationship between the violence depicted in video games and aggressive behaviors, effects of short-term and long-term play on development of cognitive abilities, immersion and flow. Serious, educational and pervasive games; definition, procedural rhetoric and its implications for game studios, theoretical foundations of digital game-based learning, advantages and disadvantages of using video games in formal education, video games and their effect on players' attitudes, gamification and its advantages and disadvantages.

Recommended courses

CodeSubjectCreditsWinterSummer
NCGD005Game User Experience 31/1 C+Ex
NAFF003Introduction to Game Studies 30/2 Ex
NAFF004Contemporary Issues in Game Studies 30/2 Ex

5. Software analysis and architectures
SW development processes, development phases. Business processes and their modeling using BPMN. UML and its use for analysis and design of structure and behavior of SW. Design patterns. SW testing, impact and change analysis. SW project planning, cost estimation, levels of project management. Legal aspects of SW, principal legal environment for IT projects. Types of SW architecture. Modeling and documentation of SW architecture. Classification of SW architecture quality attributes, their description using scenarios and tactics. Service oriented architectures. Algebraic methods, many sorted algebras, initial models. Temporal logic. Formal principles of the UML language. OCL as a specification language, formal base of specification.

Recommended courses

CodeSubjectCreditsWinterSummer
NSWI130Software System Architectures 52/2 C+Ex
NSWI026Advanced aspects of software engineering 52/2 C+Ex
NTIN043Formal Foundations of Software Engineering 52/2 C+Ex

6. Web technologies
Overview of basic web technologies. Network services for web technologies. Web services. Architecture of client-server applications, server-side and client-side scripting, web frameworks. Database systems in web applications, NoSQL databases, multimedia databases. Indexing and document searching, principles of web search engines. Linked Data, integration of semantic data to web pages. Security of information systems in the Internet environment, authentication, authorization, security models, cryptography basics, data security.

Recommended courses

CodeSubjectCreditsWinterSummer
NSWI130Software System Architectures 52/2 C+Ex
NSWI153Advanced Programming of Web Applications 52/2 C+Ex
NSWI145Web Services 52/2 C+Ex
NDBI034Multimedia Retrieval 42/1 C+Ex
NPRG043Recommended Programming Practices 52/2 MC

7. High Performance Computing
The exam for this specialization tests knowledge and skills related to high performance computing systems, as presented in these courses:

CodeSubjectCreditsWinterSummer
NPRG058Advanced Programming in Parallel Environment 62/2 C+Ex
NSWI131Performance Evaluation of Computer Systems 42/1 C+Ex