Identifying Data 2020/21
Subject (*) Video Game Performance and Optimization Code 730529018
Study programme
Máster Universitario en Deseño, Desenvolvemento e Comercialización de Videoxogos
Descriptors Cycle Period Year Type Credits
Official Master's Degree 2nd four-month period
First Optional 3
Language
Spanish
Galician
Teaching method Hybrid
Prerequisites
Department Electrónica e Sistemas
Enxeñaría de Computadores
Coordinador
Padron Gonzalez, Emilio Jose
E-mail
emilio.padron@udc.es
Lecturers
Andrade Canosa, Diego
Padron Gonzalez, Emilio Jose
E-mail
diego.andrade@udc.es
emilio.padron@udc.es
Web
General description O obxectivo desta matera é familiarizar ao alumnado cos aspectos relacionados co rendemento dun videoxogo, e coas principais tarefas de «profiling» e optimización necesarias para acadalo.
Contingency plan 1. Modificacións nos contidos

- Non

2. Metodoloxías
*Metodoloxías docentes que se manteñen

- As tres metodoloxías docentes que se empregan nesta materia se manteñen, pero pasando dunha modalidade docente «híbrida» a unha modalidade «Non presencial»

*Metodoloxías docentes que se modifican

- Ningunha, só se modifica a modalidade docente na que se imparten: híbrida -> non presencial.

3. Mecanismos de atención personalizada ao alumnado

- Os mesmos, simplemente restrinxindo a comunicacións co alumnado ao correo electrónico e a ferramenta Teams da UDC.

4. Modificacións na avaliación

- Ningunha, a avaliación desta materia xa se está a facer en liña para as probas síncronas.

*Observacións de avaliación:

5. Modificacións da bibliografía ou webgrafía

- Ningunha

Study programme competencies
Code Study programme competences
A8 CE08 - Coñecer os fundamentos da xeración de gráficos por computador
A24 CE24 - Coñecer a arquitectura e o funcionamento interno de motores de videoxogos e ter a capacidade de programalos
A25 CE25 - Analizar, avaliar e optimizar o rendemento dun videoxogo
B1 CB6 - Posuír e comprender coñecementos que acheguen unha base ou oportunidade de ser orixinais no desenvolvemento e/ou aplicación de ideas, a miúdo nun contexto de investigación
B2 CB7 - Que os estudantes saiban aplicar os coñecementos adquiridos e a súa capacidade de resolución de problemas en contornas novas ou pouco coñecidos dentro de contextos máis amplos (ou multidisciplinares) relacionados coa súa área de estudo
B3 CB8 - Que os estudantes sexan capaces de integrar coñecementos e enfrontarse á complexidade de formular xuízos a partir dunha información que, sendo incompleta ou limitada, inclúa reflexións sobre as responsabilidades sociais e éticas vinculadas á aplicación dos seus coñecementos e xuízos
B4 CB9 - Que os estudantes saiban comunicar as súas conclusións e os coñecementos e razóns últimas que as sustentan a públicos especializados e non especializados dun modo claro e sen ambigüidades
B5 CB10 - Que os estudantes posúan as habilidades de aprendizaxe que lles permitan continuar estudando dun modo que haberá de ser en gran medida autodirigido ou autónomo
B6 CG1 - Capacidade de organización e planificación, especialmente na formulación de traballos conducentes á creación dos contidos audiovisuais dixitais que compoñen un videoxogo
B7 CG2 - Capacidade de resolver problemas de forma efectiva, principalmente de carácter tecnolóxico e no campo da creación de contidos dixitais interactivos
B8 CG3 - Coñecementos informáticos, en especial os relativos ao uso de tecnoloxías e programas de última xeración no campo de estudo
B10 CG5 - Valorar críticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas con que deben enfrontarse
B13 CG8 - Capacidade de aplicar os coñecementos na práctica, integrando as diferentes partes do programa, relacionándoas e agrupándoas no desenvolvemento de produtos complexos
C3 CT3 - Habilidade para a xestión da información
C4 CT4 - Capacidade de abstracción, análise, síntese e estruturación da información e as ideas
C7 CT7 - Comprender e valorar a importancia que ten a investigación, a innovación e o desenvolvemento tecnolóxico na profesión e no avance socioeconómico e cultural da sociedade
C8 CT8 - Coñecemento e utilización das novas tecnoloxías necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida

Learning aims
Learning outcomes Study programme competences
Coñecer as principais características da plataforma hardware sobre a que se executa un videoxogo AJ8
BJ8
BJ10
CJ3
CJ4
CJ8
Coñecer a estrutura software dun videoxogo e dun motor de videoxogos AJ8
AJ24
BJ6
BJ8
BJ10
BJ13
CJ3
CJ4
CJ8
Coñecer os aspectos máis importantes á hora de analizar o rendemento dun videoxogo e como detectar os seus principais colos de botella AJ8
AJ24
AJ25
BJ1
BJ2
BJ3
BJ4
BJ5
BJ6
BJ7
BJ13
CJ3
CJ4
CJ7
Aprender a optimizar un videoxogo para mellorar o seu rendemento nunha determinada plataforma AJ8
AJ24
AJ25
BJ6
BJ7
BJ10
BJ13
CJ3
CJ4

Contents
Topic Sub-topic
Introdución: Motivación e perspectiva global 1. Motivación
2. Rendemento dun videoxogo: introdución
3. Rendemento en Unreal Engine: Profiling
Arquitectura dun motor de videoxogos 1. Introdución
2. Estrutura e funcionamento básico dun videoxogo
3. O bucle principal do xogo (game loop)
CPU Profiling 1. Introdución á optimización en CPU
2. Profiling da CPU en Unreal Engine
3. Optimizando o rendemento da CPU
4. Profiling con Intel Vtune Amplifier
5. Rendemento do sistema de almacenamento secundario (disco)
Gráficos 3D Interactivos. Fundamentos 1. Introdución
2. Real-time rendering: conceptos básicos
3. Instanciación
4. Culling
5. Luces e sombras
6. Pases de render
GPU Profiling 1. Introdución á optimización en GPU
2. Profiling da GPU en Unreal Engine
3. Optimizando o rendemento da GPU
4. Vista de optimización en Unreal Engine (optimization view modes)

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Laboratory practice A8 A24 A25 B1 B2 B3 B4 B5 B6 B7 B8 B10 B13 C3 C4 C7 C8 9.5 50 59.5
Mixed objective/subjective test A8 A24 A25 B3 B4 B7 B8 B10 C3 1.5 0 1.5
Guest lecture / keynote speech A8 A25 B1 B3 B8 B10 C7 9 4 13
 
Personalized attention 1 0 1
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Laboratory practice Sesións experimentais que permitan ao alumno familiarizarse desde un punto de vista práctico cos contidos expostos nas clases teóricas. Inclúe tanto tarefas dirixidas como outras orientadas a ser resoltas de forma autónoma polo estudante.
Mixed objective/subjective test Proba na que o alumno ten que amosar que adquiriu as competencias propias da materia a través da resposta a preguntas teóricas e da resolución de problemas.
Guest lecture / keynote speech Clases teóricas, nas que se expón o contido de cada tema. O alumno disporá de todo o material preciso con anterioridade á clase e o profesor promoverá unha actitude activa, realizando preguntas que permitan clarexar aspectos concretos e deixando cuestións abertas para a reflexión do alumno.

Personalized attention
Methodologies
Laboratory practice
Description
A atención personalizada estará garantida na realización das prácticas de laboratorio, sendo imprescindible para dirixir ao estudante no desenvolvemento do seu traballo. Esta atención personalizada serve, ademais, para validar e avaliar o traballo realizado polo estudante nas distintas fases do seu desenvolvemento, ata a súa finalización.

Estudantes con matrícula a tempo parcial e con dispensa académica de exención de docencia: deberanse poñer en contacto cos profesores da materia para establecer as medidas de atención personalizada específicas.

Assessment
Methodologies Competencies Description Qualification
Laboratory practice A8 A24 A25 B1 B2 B3 B4 B5 B6 B7 B8 B10 B13 C3 C4 C7 C8 Realización de prácticas, nos que o alumno ten que empregar os coñecementos adquiridos para resolver distintos problemas de forma autónoma. 70
Mixed objective/subjective test A8 A24 A25 B3 B4 B7 B8 B10 C3 Proba na que o alumno ten que amosar que adquiriu as competencias propias da materia mediante a reposta a preguntas teóricas e a resolución de problemas. 30
 
Assessment comments

Estudantes con matrícula a tempo parcial e con dispensa académica de exención de docencia: deberanse poñer en contacto co profesorado da materia para posibilitar a realización das tarefas avaliables fóra da organización habitual da mesma

Os criterios de avaliación para a segunda oportunidade son os mesmos que para a primeira.


Sources of information
Basic Joey de Vries (Kendall & Welling, 2020). Learn OpenGL: Learn modern OpenGL graphics programming in a step-by-step fashion. https://learnopengl.com
T. Akenine-Möller, E. Haines, N. Hoffman, A. Pesce, M. Iwanicki, and S. Hillaire (A K Peters/CRC Press, 2018). Real-Time Rendering (4th Ed.). http://www.realtimerendering.com
Oscar Swierad (Self publishing, 2018). Unreal Art Optimization. https://unrealartoptimization.github.io
Documentación en liña do motor Unreal Engine (). Unreal Engine doc: Engine Features->Performance and Profiling. https://docs.unrealengine.com/en-US/Engine/Performance
Da documentación en liña oficial de UE4 é relevante especialmente o capítulo adicado a Rendemento e Optimización, pero o resto da documentación tamén é imprescindible para entender moitos dos aspectos implementados no motor e as distintas posibilidades que ofrece.
Complementary John L. Hennessy, David A. Patterson (2017). Computer Architecture: A Quantitative Approach (6th Edition). Morgan Kaufmann
Mike McShaffry, David Graham (2012). Game Coding Complete (4th Edition). Cengage Learning PTR
Jason Gregory (2014). Game Engine Architecture (2nd Edition). A K Peters/CRC Press
Robert Nystrom (2014). Game Programming Patterns. Genever Benning
Inclúense estes catro libros como bibliografía complementaria.

Os tres primeiros son específicos do desenvolvementos de videoxogos e teñen unha parte do seu contido adicada a aspectos de depuración, profiling e rendemento.

O cuarto libro, Hennessy&Patterson, é un clásico da arquitectura de computadores e pode axudar a profundizar en temas de explotación da xerarquía de memoria, multiproceso, etc.

O libro de Robert Nystrom, Game Programming Patterns, está dispoñible en liña de balde aquí: http://gameprogrammingpatterns.com

Recommendations
Subjects that it is recommended to have taken before
Computer Graphics Fundamentals/730529004
Video Game Programming/730529008

Subjects that are recommended to be taken simultaneously
Advanced Video Game Programming/730529019

Subjects that continue the syllabus

Other comments
Aínda que as clases desenvolveranse en galego e/ou castelán, o material da materia estará, practicamente na súa totalidade, en inglés.

Para axudar a conseguir unha contorna inmediata sostible e cumprir co obxectivo da acción número 5, «Docencia e investigación saudable e sustentable ambiental e social», do «Plan de Acción Green Campus Ferrol», a entrega dos traballos documentais que se realicen nesta materia:
  • Solicitaranse en formato virtual e/ou soporte informático
  • Realizarase a través de Moodle e/ou correo electrónico, en formato dixital sen necesidade de imprimilos
  • En caso de precisarse algunha entrega en papel:
    • Non se empregarán plásticos
    • Realizaranse impresións a dobre cara
    • Empregarase papel reciclado.
    • Evitarase a impresión de borradores


  • (*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.