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
Code | Subject | Credits | Winter | Summer | |
NTIN090 | Introduction to Complexity and Computability | 4 | 2/1 C+Ex | — | |
NTIN066 | Data Structures 1 | 6 | — | 2/2 C+Ex | |
NSZZ023 | Diploma Thesis I | 6 | — | 0/4 C | |
NSZZ024 | Diploma Thesis II | 9 | 0/6 C | — | |
NSZZ025 | Diploma Thesis III | 15 | — | 0/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.
Code | Subject | Credits | Winter | Summer | |
NPRG069 | Software Project | 12 | 0/8 C | 0/8 C | |
NPRG070 | Research Project | 9 | 0/6 C | 0/6 C | |
NPRG071 | Company Project | 6 | 0/4 C | 0/4 C | |
NPRG072 | Increased project scope | 3 | 0/2 C | 0/2 C | |
NMAI060 | Probabilistic Methods | 3 | 2/0 Ex | — | |
NMAI061 | Methods of Mathematical Statistics | 5 | — | 2/1 C+Ex | |
NPGR001 | 3D Computer Vision | 5 | 2/2 Ex | — | |
NPGR010 | Advanced 3D graphics for film and games | 5 | 2/2 C+Ex | — | |
NPGR013 | Special Functions and Transformations in Image Processing | 3 | — | 2/0 Ex | |
NPGR016 | Applied Computational Geometry | 5 | — | 2/1 C+Ex | |
NPGR021 | Geometric Modelling | 5 | 2/2 C+Ex | — | |
NPGR024 | Seminar on Scientific Soft Skills | 3 | — | 0/2 C | |
NPGR026 | Predictive Image Synthesis Technologies | 4 | — | 2/1 C+Ex | |
NPGR027 | Shading Languages | 5 | — | 2/1 C+Ex | |
NPGR028 | High Performance Ray Tracing | 3 | — | 2/0 Ex | |
NPGR029 | Variational methods in image processing | 3 | — | 2/0 Ex | |
NPGR033 | Computer Graphics for Game Development | 5 | — | 2/2 C+Ex | |
NPGR041 | Selected topics in Computer Vision | 5 | 2/2 C+Ex | — | |
NCGD001 | Computer Games Development 1 | 6 | — | 2/2 C+Ex | |
NCGD003 | Gameplay Programming | 4 | 1/2 C+Ex | — | |
NCGD004 | Introduction to Game Design | 3 | 1/1 C+Ex | — | |
NCGD005 | Game User Experience | 3 | 1/1 C+Ex | — | |
NCGD007 | Practical Course on Native Game Development | 3 | 0/2 C | — | |
NCGD008 | Practical Course on Managed Game Development | 3 | 0/2 C | — | |
NAFF003 | Introduction to Game Studies | 3 | 0/2 Ex | — | |
NAFF004 | Contemporary Issues in Game Studies | 3 | — | 0/2 Ex | |
NPRG043 | Recommended Programming Practices | 5 | — | 2/2 MC | |
NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
NSWI026 | Advanced aspects of software engineering | 5 | — | 2/2 C+Ex | |
NSWI072 | Data Compression Algorithms | 3 | 2/0 Ex | — | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI131 | Performance Evaluation of Computer Systems | 4 | — | 2/1 C+Ex | |
NSWI145 | Web Services | 5 | — | 2/2 C+Ex | |
NSWI153 | Advanced Programming of Web Applications | 5 | — | 2/2 C+Ex | |
NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
NAIL068 | Human-like Artificial Agents | 5 | — | 2/2 C+Ex | |
NAIL069 | Artificial Intelligence 1 | 4 | 2/1 C+Ex | — | |
NAIL070 | Artificial Intelligence 2 | 3 | — | 2/0 Ex | |
NAIL106 | Multiagent Systems | 5 | — | 2/2 C+Ex | |
NAIL122 | Artificial Intelligence for Computer Games | 3 | 1/1 C+Ex | — | |
NAIL123 | Procedural Content Generation for Computer Games | 3 | — | 1/1 C+Ex | |
NPFL114 | Deep Learning | 7 | — | 3/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.
Code | Subject | Credits | Winter | Summer | |
NPGR004 | Photorealistic Graphics | 5 | — | 2/2 C+Ex | |
NPGR005 | Computer graphics and vision seminar | 2 | 0/2 C | 0/2 C | |
NPGR019 | Realtime Graphics on GPU | 5 | — | 2/2 C+Ex | |
NPGR022 | Advanced Seminar On Image Processing | 2 | 0/2 C | 0/2 C | |
NPGR030 | Optics for computer graphics | 3 | 2/0 Ex | — | |
NPGR036 | Computer Vision | 5 | — | 2/2 C+Ex | |
NCGD002 | Computer Games Development 2 | 3 | 1/1 C+Ex | — | |
NCGD006 | Practical Course on Rapid Game Development | 2 | — | 0/1 C | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex | |
NPRG054 | High Performance Software Development | 6 | — | 2/2 C+Ex | |
NPRG056 | Mobile Devices Programming | 3 | 0/2 C | — | |
NPRG059 | Advanced Programming Praxis | 2 | 0/1 C | — | |
NSWI041 | Introduction to Software Engineering | 5 | — | 2/2 C+Ex | |
NSWI158 | Seminar on Computer Games Development | 3 | 0/2 C | 0/2 C | |
NAIL025 | Evolutionary Algorithms 1 | 5 | 2/2 C+Ex | — | |
NAIL028 | Introduction to Robotics | 5 | 2/2 C+Ex | — | |
NAIL071 | Planning and Scheduling | 3 | — | 2/0 Ex | |
NAIL082 | Seminar on Humanlike Artificial Agents | 3 | 0/2 C | 0/2 C | |
NAIL087 | Computers and Cognitive Sciences 1 | 6 | 3/1 C+Ex | — | |
NAIL108 | Mobile Robotics | 3 | — | 1/1 MC | |
NDBI045 | Video Retrieval | 5 | — | 2/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
- 2. Image analysis and processing, image compression, computer vision
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
Code | Subject | Credits | Winter | Summer | |
NPGR010 | Advanced 3D graphics for film and games | 5 | 2/2 C+Ex | — | |
NPGR026 | Predictive Image Synthesis Technologies | 4 | — | 2/1 C+Ex | |
NPGR027 | Shading Languages | 5 | — | 2/1 C+Ex | |
NPGR028 | High Performance Ray Tracing | 3 | — | 2/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
Code | Subject | Credits | Winter | Summer | |
NPGR041 | Selected topics in Computer Vision | 5 | 2/2 C+Ex | — | |
NPGR029 | Variational methods in image processing | 3 | — | 2/0 Ex | |
NPGR013 | Special Functions and Transformations in Image Processing | 3 | — | 2/0 Ex | |
NSWI072 | Data Compression Algorithms | 3 | 2/0 Ex | — | |
NPGR001 | 3D Computer Vision | 5 | 2/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
Code | Subject | Credits | Winter | Summer | |
NPGR021 | Geometric Modelling | 5 | 2/2 C+Ex | — | |
NPGR016 | Applied Computational Geometry | 5 | — | 2/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.
- 2. Either the area ``Computer graphics for games" or any area from the specialization Visual computing.
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
- 2. Computer graphics for games
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
Code | Subject | Credits | Winter | Summer | |
NCGD001 | Computer Games Development 1 | 6 | — | 2/2 C+Ex | |
NCGD003 | Gameplay Programming | 4 | 1/2 C+Ex | — | |
NCGD004 | Introduction to Game Design | 3 | 1/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
Code | Subject | Credits | Winter | Summer | |
NPGR033 | Computer Graphics for Game Development | 5 | — | 2/2 C+Ex | |
NSWI072 | Data Compression Algorithms | 3 | 2/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
Code | Subject | Credits | Winter | Summer | |
NAIL068 | Human-like Artificial Agents | 5 | — | 2/2 C+Ex | |
NAIL106 | Multiagent Systems | 5 | — | 2/2 C+Ex | |
NAIL122 | Artificial Intelligence for Computer Games | 3 | 1/1 C+Ex | — | |
NAIL123 | Procedural Content Generation for Computer Games | 3 | — | 1/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
Code | Subject | Credits | Winter | Summer | |
NCGD005 | Game User Experience | 3 | 1/1 C+Ex | — | |
NAFF003 | Introduction to Game Studies | 3 | 0/2 Ex | — | |
NAFF004 | Contemporary Issues in Game Studies | 3 | — | 0/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
Code | Subject | Credits | Winter | Summer | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI026 | Advanced aspects of software engineering | 5 | — | 2/2 C+Ex | |
NTIN043 | Formal Foundations of Software Engineering | 5 | 2/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
Code | Subject | Credits | Winter | Summer | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI153 | Advanced Programming of Web Applications | 5 | — | 2/2 C+Ex | |
NSWI145 | Web Services | 5 | — | 2/2 C+Ex | |
NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
NPRG043 | Recommended Programming Practices | 5 | — | 2/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:
Code | Subject | Credits | Winter | Summer | |
NPRG058 | Advanced Programming in Parallel Environment | 6 | 2/2 C+Ex | — | |
NSWI131 | Performance Evaluation of Computer Systems | 4 | — | 2/1 C+Ex |