Guía Docente 2019-20
PROGRAMACIÓN EN TIEMPO REAL

BASIC DETAILS:

Subject: PROGRAMACIÓN EN TIEMPO REAL
Id.: 31380
Programme: GRADUADO EN DISEÑO Y DESARROLLO DE VIDEOJUEGOS. 2013 (BOE 28/03/2014)
Module: PROGRAMACIÓN DE VIDEOJUEGOS
Subject type: OBLIGATORIA
Year: 4 Teaching period: Primer Cuatrimestre
Credits: 3 Total hours: 75
Classroom activities: 34 Individual study: 41
Main teaching language: Inglés Secondary teaching language: Castellano
Lecturer: JIMENEZ CHAPESTRO, EDUARDO (T)
JIMENEZ GARCIA, JORGE
Email: ejimenezch@usj.es
ojimenez@usj.es

PRESENTATION:

The subject is divided in two sections: CPU and GPU real time programming.

In the CPU section the student will learn different approaches, methodologies and design patterns to design and implement concurrent programs that make the most of modern hardware. Most modern CPUs consist of multi-core processors and support hardware multithread. The student will acquire the knowledge to design and implement algorithms that use these features and will be able to parallelize those that exist already.

In the GPU section the student will be introduced to real-time 3D rendering. First, the high level 3d graphics pipeline will be shown, including concepts such as a rasterizer and the z-buffer algorithm. Second, the students will learn 3d transformation math and their application to vertex shading, as well as lighting models and their application to pixel shading. Finally, more advanced techniques such as normal and shadow mapping, motion blur depth of field will be covered.

PROFESSIONAL COMPETENCES ACQUIRED IN THE SUBJECT:

General programme competences G07 Ability to handle different complex knowledge models through a process of abstraction and its application to approach and solve problems.
Specific programme competences E15 Ability to apply the main foundations and techniques of programming in real time.
Learning outcomes R01 Explain the basic concepts of computer systems in real time.
R02 Analyse the time constraints of a real-time system.
R03 Select treatment devices of signals appropriate to the needs of a real-time system.
R04 Explain the basic features of a real-time operating system that differentiate it from a traditional operating system.
R05 Explain the key features of a programming language in real time that differentiate it from traditional programming language.

PRE-REQUISITES:

Having completed successfully Computer Graphics and working knowledge of object oriented programming.

SUBJECT PROGRAMME:

Subject contents:

1 - Concurrent Programming
    1.1 - Introduction
    1.2 - Basic Implementation - Threads
    1.3 - Barrier Synchronization
    1.4 - Semaphores
    1.5 - Monitors
    1.6 - Particularities of the Multithread support in C#
2 - Shader Programming
    2.1 - 3D Pipeline and Rasterization
    2.2 - Vertex Shading: 3D Transformations
    2.3 - Pixel Shading: Lighting I
    2.4 - Pixel Shading: Lighting II
    2.5 - Post Effects
    2.6 - Review Exercises

Subject planning could be modified due unforeseen circumstances (group performance, availability of resources, changes to academic calendar etc.) and should not, therefore, be considered to be definitive.


TEACHING AND LEARNING METHODOLOGIES AND ACTIVITIES:

Teaching and learning methodologies and activities applied:

Student work load:

Teaching mode Teaching methods Estimated hours
Classroom activities
Master classes 8
Practical exercises 6
Practical work, exercises, problem-solving etc. 6
Laboratory practice 8
Assessment activities 6
Individual study
Tutorials 2
Individual study 14
Individual coursework preparation 15
Research work 10
Total hours: 75

ASSESSMENT SCHEME:

Calculation of final mark:

Written tests: 25 %
Individual coursework: 30 %
Group coursework: 20 %
Final exam: 25 %
TOTAL 100 %

*Las observaciones específicas sobre el sistema de evaluación serán comunicadas por escrito a los alumnos al inicio de la materia.

BIBLIOGRAPHY AND DOCUMENTATION:

Basic bibliography:

DUFFY, Joe. Concurrent Programming on Windows: Architecture, Principles, and Patterns (Microsoft .Net Development). Addison Wesley, 2008
AKELINE-MOLLER, Tomas; HAINES, Eric; HOFFMAN, Naty. Real-Time Rendering. A. K. Peters, 2008.

Recommended bibliography:

Recommended websites:

Effective Concurrency Column by Herb Sutter https://herbsutter.com/2009/11/11/effective-concurrency-prefer-structured-lifetimes-%E2%80%93-local-nested-bounded-deterministic/
Threading in C#, by Joe Albahari http://www.albahari.com/threading/