Computer Graphics and Game Development
Coordinated by: Department of Software and Computer Science Education
Study branch coordinator: Doc. Alexander Wilkie, Dr.
Specializations:
- – Computer graphics
- – Computer game development
The study branch consists of two closely related specializations, Computer graphics and Computer game development. The specialization Computer graphics 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.
8.1 Obligatory courses
Code | Subject | Credits | Winter | Summer | |
NTIN090 | Introduction to Complexity and Computability | 5 | 2/1 C+Ex | — | |
NTIN066 | Data Structures I | 5 | 2/1 C+Ex | — | |
NMAI060 | Probabilistic Methods | 3 | 2/0 Ex | — | |
NPRG027 | Credit for Project | 6 | 0/4 C | 0/4 C | |
NPRG023 | Software Project | 9 | 0/6 C | 0/6 C | |
NSZZ023 | Diploma Thesis I | 6 | 0/4 C | 0/4 C | |
NSZZ024 | Diploma Thesis II | 9 | 0/6 C | 0/6 C | |
NSZZ025 | Diploma Thesis III | 15 | 0/10 C | 0/10 C |
8.2 Elective courses
The student needs to obtain at least 47 credits for the courses from the following set:
Code | Subject | Credits | Winter | Summer | |
NPGR007 | Advanced 2D Computer Graphics | 5 | 2/1 C+Ex | — | |
NPGR010 | Computer Graphics III | 6 | 2/2 C+Ex | — | |
NPGR001 | Computer vision and intelligent robotics | 3 | 2/0 Ex | — | |
NPGR021 | Geometric Modelling | 6 | 2/2 C+Ex | — | |
NPGR026 | Predictive Image Synthesis Technologies | 6 | — | 2/2 C+Ex | |
NPGR027 | Shading Languages | 5 | — | 2/1 C+Ex | |
NPGR028 | High Performance Ray Tracing | 3 | — | 2/0 Ex | |
NPGR033 | Computer Graphics for Game Development | 6 | — | 2/2 C+Ex | |
NPGR024 | Seminar on Scientific Soft Skills | 3 | — | 0/2 C | |
NPGR029 | Variational methods in image processing | 3 | — | 2/0 Ex | |
NSWI115 | Computer Games Development | 6 | 2/2 C+Ex | — | |
NPRG056 | Developing Applications for Mobile Devices | 3 | 0/2 C | — | |
NSWI035 | Principles of Distributed Systems | 3 | 2/0 Ex | — | |
NPRG054 | High Performance Software Development | 5 | — | 2/2 C+Ex | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex | |
NAIL069 | Artificial Intelligence I | 5 | 2/1 C+Ex | — | |
NAIL070 | Artificial Intelligence II | 3 | — | 2/0 Ex | |
NPRG059 | Advanced Programming Praxis | 2 | 0/1 C | — | |
NSWI041 | Introduction to Software Engineering | 5 | — | 2/2 C+Ex | |
NAIL068 | Human-like Artificial Agents | 6 | — | 2/2 C+Ex | |
NAIL071 | Planning and Scheduling | 3 | — | 2/0 Ex | |
NPRG043 | Recommended Programming Practices | 6 | — | 2/2 C+Ex | |
NMAI061 | Methods of Mathematical Statistics | 5 | — | 2/1 C+Ex | |
NAIL106 | Multiagent Systems | 6 | — | 2/2 C+Ex | |
NPGR016 | Applied Computational Geometry | 5 | — | 2/1 C+Ex | |
NPRG014 | Concepts of Modern Programming Languages | 3 | 0/3 C | — | |
NPFL114 | Deep Learning | 7 | — | 3/2 C+Ex |
8.3 Other recommended courses
Code | Subject | Credits | Winter | Summer | |
NPGR005 | Special Seminar for Computer Graphics | 2 | 0/2 C | 0/2 C | |
NPGR013 | Special Functions and Transformations in Image Processing | 3 | — | 2/0 Ex | |
NPGR022 | Advanced Seminar On Image Processing | 2 | 0/2 C | 0/2 C | |
NAIL028 | Introduction to Robotics | 6 | 2/2 C+Ex | — | |
NAIL108 | Mobile Robotics | 3 | — | 1/1 MC | |
NSWI072 | Data Compression Algorithms | 3 | 2/0 Ex | — | |
NPGR012 | Interactive 3D web graphics | 6 | 2/2 C+Ex | 2/2 C+Ex | |
NPGR030 | Optics for computer graphics | 3 | 2/0 Ex | — | |
NPGR023 | Visualization | 5 | 2/1 C+Ex | — | |
NAIL025 | Evolutionary Algorithms I | 6 | 2/2 C+Ex | — | |
NAIL082 | Seminar on Humanlike Artificial Agents | 3 | 0/2 C | 0/2 C | |
NAIL087 | Computers and Cognitive Sciences I | 6 | 3/1 C+Ex | — | |
NPOZ017 | Video Games as a Socio-cultural Phenomenon | 3 | 2/0 Ex | — | |
NSWI149 | Software Engineering in Practice | 3 | — | 2/0 C | |
NPRG058 | Advanced Programming in Parallel Environment | 3 | 0/2 C | — | |
NSWI159 | Practical Course on Game Development | 2 | 0/1 C | 0/1 C | |
NSWI160 | Game Development Middleware | 6 | 0/4 C | — |
8.4 State Final Exam
Specialization: Computer graphics
In addition to the two examination areas that are obligatory for all study branches, the student will select three other examination areas. Students have to choose at least two examination areas from the following list of examination areas; 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. Students will be asked one question from each selected examination area. In total, each student will get five questions.
Examination areas
- 1. Geometric modeling and computational geometry
- 2. Image analysis and processing, image compression, computer vision
- 3. Realistic image synthesis
Knowledge requirements
1. Geometric modeling and computational geometry
Homogeneous coordinates, affine and projective transformations in the plane and in space, quaternions in the representation of the 3D orientation, differential geometry of curves and surfaces, spline functions, cubic splines C2, interpolation by cubic splines, Bezier curves, Catmull-Rom splines, B-splines, de Casteljau and de Boor algorithms, approximation surfaces, surfaces defined by the edges, Bezier surfaces, patch stitching, B-spline surfaces, NURBS surfaces. Design of geometric algorithms and their complexity, triangulation of polygons and point sets, Voronoi diagrams and Delaunay triangulations, convex hull, intersections of geometric shapes, dualization, localization, data structures for efficient spatial search.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NPGR016 | Applied Computational Geometry | 5 | — | 2/1 C+Ex | |
NPGR021 | Geometric Modelling | 6 | 2/2 C+Ex | — | |
NPGR007 | Advanced 2D Computer Graphics | 5 | 2/1 C+Ex | — |
2. Image analysis and processing, image compression, computer vision
Mathematical models of images, 2D Fourier transform and convolution, sampling and quantization of the image, contrast and brightness change, noise removal, edge detection, inverse and Wiener filter, determining the relative position of images - registration, 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, computer vision.
Reproduction of color graphics, halftoning and dithering, alpha blending and image composition, warping, morphing, compression of raster 2D graphics, scalar and vector quantization, predictive compression, transformation compression methods, hierarchical and progressive methods, video compression, temporal prediction (motion compensation), JPEG and MPEG standards, image capture in digital photography.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NPGR002 | Digital Image Processing | 5 | 3/0 Ex | — | |
NPGR029 | Variational methods in image processing | 3 | — | 2/0 Ex | |
NPGR013 | Special Functions and Transformations in Image Processing | 3 | — | 2/0 Ex | |
NPGR007 | Advanced 2D Computer Graphics | 5 | 2/1 C+Ex | — | |
NPGR001 | Computer vision and intelligent robotics | 3 | 2/0 Ex | — |
3. Realistic image synthesis
Representation of 3D scenes, visibility determination, cast shadows, reflection models and shading algorithms, recursive ray tracing, textures, anti-aliasing, acceleration methods for ray-tracing, principle of radiosity methods, physically-based models of light transport (radiometry, rendering equation), Monte Carlo integration, Monte Carlo approaches in lighting simulation, direct methods in volume data visualization, isosurface extraction. Graphics accelerator architecture, data transfer to the GPU, textures and GPU buffers, GPU programming: shaders, basics of OpenGL, GLSL, CUDA and OpenCL. Advanced GPU techniques.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NPGR004 | Computer Graphics II | 5 | — | 2/1 C+Ex | |
NPGR019 | Realtime Graphics on GPU | 5 | — | 2/1 C+Ex | |
NPGR010 | Computer Graphics III | 6 | 2/2 C+Ex | — | |
NPGR026 | Predictive Image Synthesis Technologies | 6 | — | 2/2 C+Ex | |
NPGR027 | Shading Languages | 5 | — | 2/1 C+Ex |
Specialization: Computer game development
In addition to the two examination areas that are obligatory for all study branches, students get one question from each of the following examination areas:
- 1. Multi-agent systems (this area is obligatory for the specialization Computer game development).
- 2. Either the area Computer graphics for games or any area from the specialization Computer graphics.
- 3. One of the following areas: Parallel programming, System aspects of computers, Modern concepts of programming, Software engineering, Advanced programming, Web technologies.
In total, each student will get five questions.
Examination areas
- 1. Multi-agent systems (obligatory for the specialization Computer game development)
- 2. Computer graphics for games
- 3. Parallel programming
- 4. System aspects of computers
- 5. Modern programming concepts
- 6. Software analysis and architectures
- 7. Advanced programming
- 8. Web technologies
Knowledge requirements
1. Multi-agent systems
Autonomous agent architectures; agent perception, agent action selection mechanism, agent memory. Psychological inspiration. Methods for agent control; symbolic and connectionist reactive planning, hybrid approaches. Path search problem, steering rules, terrain representation. Communication and knowledge in multiagent systems, ontologies, speech acts, FIPA-ACL, protocols. Distributed problem solving, cooperation, Nash equilibria, Pareto efficiency, source allocation, auctions. Agent design methodologies, agent languages and environments. Ethological inspiration, models of population dynamics. Methods for agent learning; reinforcement learning, basic forms of animal learning.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NAIL054 | Adaptive Agents | 3 | — | 0/2 C | |
NAIL068 | Human-like Artificial Agents | 6 | — | 2/2 C+Ex | |
NAIL106 | Multiagent Systems | 6 | — | 2/2 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, de Casteljau and de Boor algorithms. Character animation, skinning, rigging. Collision detection.
2D Fourier transform and convolution, sampling and quantization, image anti-aliasing, texture, change of contrast and brightness, alpha-bending and compositing, compression of raster 2D graphics, video signal compression, temporal prediction (motion compensation), JPEG and MPEG standards.
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.
Graphics accelerator architecture, data transfer to the GPU, textures and GPU buffers, GPU programming: shaders, basics of OpenGL, GLSL, CUDA and OpenCL. Advanced GPU techniques. Game engine architecture.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NPGR004 | Computer Graphics II | 5 | — | 2/1 C+Ex | |
NPGR019 | Realtime Graphics on GPU | 5 | — | 2/1 C+Ex | |
NPGR033 | Computer Graphics for Game Development | 6 | — | 2/2 C+Ex |
3. Parallel programming
Modern memory architectures (multiprocessor, GPU, NUMA), relationship between data location and access efficiency. Virtualization support. Converting computations for data parallelism, parallel solutions of non-homogeneous tasks. Efficient parallel implementation of basic algorithms. Synchronization, load balancing.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex | |
NPRG054 | High Performance Software Development | 5 | — | 2/2 C+Ex |
4. System aspects of computers
Process and thread management, communication (IPC), synchronization, memory models. Memory management (paging, heap structure, garbage collection). Runtime support, calling conventions (ABI), virtualization. Device management. File systems. Performance metrics, methods for performance evaluation, simulation and modeling. All topics considered in the context of contemporary parallel architectures.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NSWI004 | Operating Systems | 5 | 2/1 C+Ex | — | |
NSWI131 | Performance Evaluation of Computer Systems | 5 | — | 2/1 C+Ex |
5. Modern programming concepts
Modern object-oriented concepts, metaprogramming, reflection, aspects. Features of modern programming languages (for example annotations, iterators, generics, lambda functions). Code quality metrics, documentation, refactoring, testing and debugging. Design patterns. All topics considered in the context of contemporary programming languages.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPRG043 | Recommended Programming Practices | 6 | — | 2/2 C+Ex | |
NSWI068 | Object and Component Systems | 5 | 2/2 C+Ex | — |
6. 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. Formal principles of the UML language. OCL as a specification language, formal base of specification. Formal principles of RDF and OWL, the description logic.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI041 | Introduction to Software Engineering | 5 | — | 2/2 C+Ex | |
NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — |
7. Advanced programming
Object concepts of modern languages. Concepts of classless languages. Generic programming and metaprogramming, generics and templates, policies, traits, type inference. Modern constructs of programming languages. Object references and lifetime. Advanced aspects of imperative languages. Exceptions, exception-safe programming. Implementation of object properties, runtime support, calling conventions, garbage collection. Modern language constructs and code performance. Design patterns. Scripting languages, prototype-based languages. Domain-specific languages. Functional programming. Principles of code quality, best practices. Refactoring. Testing, debugging, monitoring.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPRG059 | Advanced Programming Praxis | 2 | 0/1 C | — | |
NPRG014 | Concepts of Modern Programming Languages | 3 | 0/3 C | — | |
NPRG024 | Design Patterns | 3 | — | 0/2 MC | |
NPRG043 | Recommended Programming Practices | 6 | — | 2/2 C+Ex | |
NSWI068 | Object and Component Systems | 5 | 2/2 C+Ex | — |
8. 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 Technologies for 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 | 6 | — | 2/2 C+Ex |