Programació gràfica Codi:  B2.505    Crèdits:  6
Consulta de les dades generals   Descripció   L'assignatura en el conjunt del pla d'estudis   Camps professionals en què es projecta   Coneixements previs   Informació prèvia a la matrícula   Objectius i competències   Continguts   Consulta dels recursos d'aprenentatge de què disposa l'assignatura   Metodologia   Informació sobre l'avaluació a la UOC   Consulta del model d'avaluació   Avaluació continuada   Avaluació final   Feedback  
Aquest és el pla docent de l'assignatura. Us servirà per planificar la matrícula (consulteu si l'assignatura s'ofereix aquest semestre a l'espai del Campus Més UOC / La Universitat / Plans d'estudis). Un cop comenci la docència, heu de consultar-lo a l'aula. El pla docent pot estar subjecte a canvis.
Els motors integrats de videojocs, com pot ser Unity, ens proporcionen un entorn de treball a partir del qual dur a terme en desenvolupament dels nostres projectes. No obstant això, el codi que generem són bàsicament "scripts" que el motor s'encarrega de gestionar i executar internament. En cap moment el nostre codi font s'està compilant directament en format executable. Al seu torn, el grau d'abstracció que proporcionen oculta alguns els aspectes bàsics de la representació d'elements gràfics en pantalla o de la gestió de l'entrada. No obstant això, un bon desenvolupador de videojocs hauria de ser capaç de crear un projecte sense la necessitat d'aquest tipus d'eines, en cas que sigui requerit. Per exemple, mitjançant l'ús de sistemes gràfics oberts com pot ser OpenGL.  

Aquesta assignatura es proposa ensenyar-vos com crear un videojoc sense el suport d'un motor com pot ser Unity. Només amb un compilador de C / C ++, un editor de text i les biblioteques adequades per aquesta tasca. Al capdavall, així és com es desenvolupaven els videojocs abans de la existència d'entorns integrats de treball. Des de la perspectiva docent, això ens permet veure com funciona a tot nivell intern, entrant a la "caixa negra". Des de la perspectiva de desenvolupador, això ens serà útil de cara a disposar d'un grau d'independència tecnològica en els nostres projectes. 

Concretament, en els primers compassos ens basarem a la biblioteca "raylib", desenvolupada amb un objectiu clarament educatiu (però amb ús comercial) per facilitar la comprensió de tots els conceptes bàsics associats a l'ús d'OpenGL. Això és molt important, ja que es tracta d'un sistema gràfic molt complex, amb una gran corba d'aprenentatge. Un cop dominades les bases, llavors sí que ens endinsarem plenament en la programació amb OpenGL 3.3 Core.

Amunt

Aquesta assignatura correspon al bloc assignatures comunes de l'itinerari de programació avançada. 
  • Programació gràfica 
  • Motors gràfics 
  • Efectes visuals i sonors
Si bé en totes elles es treballa d'una manera o altra amb aspectes vinculats a la visualització dels elements gràfics d'un videojoc en pantalla, aquesta proporciona la visió principal, enfocada en l'ús de sistemes gràfics com OpenGL.

Amunt

Principalment, les vinculades al desenvolupament de videojocs (Game Programmer, Lead Programmer), ja sigui en una gran empresa, freelance, o simplement els amants dels videojocs interessats a desenvolupar els seus propis projectes personals.

Amunt

Es pressuposa que l'estudiant disposa de coneixements sòlids de programació en C i C++, així com en entorns de treball associats a aquests llenguatges. Per al cas d'aquesta assignatura, es treballa amb el compilador MinGW i n'hi ha prou amb usar un editor simple de textos (com Notepad ++).

Amunt

Aquesta és una assignatura molt exigent que requereix que l'estudiant disposi de coneixements sòlids de programació en els llenguatges C i C++. Si no s'ha treballat en aquests llenguatges, almenys s'hauria d'haver treballat en altres amb sintaxi semblant i sentir-se capaç a l'hora de treballar amb aspectes de programació com a estructures de dades complexes, lògica de punters i orientació a objectes.

Amunt

Les competències generals del Màster que es posen de manifest en aquesta assignatura són les següents.

Competències bàsiques:  
  • [CB07] Que els estudiants sàpiguen aplicar els coneixements adquirits i la seva capacitat de resolució de problemes en entorns nous o poc coneguts dins de contextos més amplis (o multidisciplinaris) relacionats amb la seva àrea d'estudi 
  • [CB10] Que els estudiants tinguin les habilitats d'aprenentatge que els permetin continuar estudiant d'una manera que haurà de ser en gran manera autodirigida o autònoma.  
Competències generals:  
  • [CG02] Seleccionar, aplicar i integrar els coneixements tècnics i científics adequats per a resoldre problemes en entorns nous o poc coneguts. 
  • [CG03] Actuar amb iniciativa i desenvolupar-se de manera eficaç en un entorn de treball col·laboratiu interdisciplinari. 
  • [CG05] Cercar, gestionar i utilitzar de manera efectiva la informació associada al procés d'anàlisi i adaptació de noves solucions tecnològiques. 
Competències transversals: 
  • [CT01] Avaluar les competències professionals pròpies amb el propòsit d'una actualització contínua en l'ús i aplicació de les tecnologies de la informació en entorns futurs. 
  • [CT02] Expressar-se de forma oral i escrita en anglès i comprendre textos acadèmics i professionals complexos en l'àmbit de les TIC. 
Competències específiques: 
  • [CE02] Comprendre i aplicar les tècniques necessàries per al maneig i personalització d'eines o motors de programació de videojocs a partir de l'anàlisi dels avenços tecnològics del moment. 
  • [CE03] Dissenyar i construir cada un dels components programari d'un videojoc, contemplant els criteris de qualitat i disseny dels mateixos. 
  • [CE06] Comprendre i utilitzar les tècniques de programació per a gràfics per ordinador i representació d'elements visuals en 2D o 3D. 
  • [CE08] Comprendre i emprar els principis físics i matemàtics necessaris per controlar el comportament dels elements d'un videojoc. 
Finalment, els objectius específics de l'assignatura són: 
  • Conèixer les funcionalitats i possibilitats de les llibreries raylib i rlgl. 
  • Conèixer el cicle de vida d'execució d'un videojoc. 
  • Saber gestionar la entrades (keyboard, ratolí, gamepad) en un videojoc. 
  • Saber dibuixar formes bàsiques i crear transicions entre escenes. 
  • Saber carregar imatges i generar textures. 
  • Ser capaç de comprovar i resoldre col·lisions. 
  • Carregar mapes de "tiles" i dades de nivells. 
  • Carregar i reproduir sons i música.

Amunt

L'assignatura s'articula a través de tres projectes, o "reptes", en cadascun dels quals es treballa un tipus de videojoc diferent. La característica principal del format dels continguts és que es troben publicats a GitHub, hipervinculats amb tots els recursos necessaris per dur-los a terme pas a pas. Al seu torn, aquests continguts es troben escrits en anglès, d'acord amb la competència [CT2] que es treballa en aquesta assignatura. 

REPTE 1. El joc BLOCKS 
  • Funcionalitat bàsica de raylib. 
  • Gestió d'escenes i cicle de vida d'un videojoc. 
  • Dibuixat de formes bàsiques (cercle, rectangle). 
  • Gestió en entrades (keyboard, ratolí). 
  • Detecció i resolució de col·lisions. 
  • Càrrega i dibuix de textures. 
  • Càrrega i dibuix de fonts. 
  • Càrrega i reproducció d'àudio. 
REPTE 2. El joc DUNGEON 2D  
  • Creació i gestió de finestres. 
  • Inicialització de context i càrrega d'extensions. 
  • Gestió d'entrades (teclat, ratolí). 
  • Definició de formes bàsiques. 
  • Càrrega d'imatges i textures. 
  • Càrrega del tilemap des de text. 
  • Detecció de col·lisions. 
REPTE 3. El joc MAZE 3D  
  • Funcionalitats d'OpenGL. 
  • Gestió de l'entrada (gamepad). 
  • Càrrega d'imatges i textures. 
  • Càrrega i generació de nivell. 
  • Càrrega i dibuix de models 3D. 
  • Sistema de cambra en primera persona. 
  • Detecció i resolució de col·lisions.

Amunt

Material Suport
Programación gráfica Web
Entrevista a Ramon Santamaria, creador de la biblioteca gráfica raylib Audiovisual
Vídeo explicativo Audiovisual

Amunt

Aquesta assignatura està eminentment centrada en projectes (o "reptes"). Així doncs, si bé els materials associats a cada part del temari proporcionen un breu repàs a alguns conceptes clau, l'estudiant ha de tenir clar que la major part del seu temps ho va a dedicar practicant amb l'entorn de desenvolupament i accedint a la documentació en línia l'entorn de treball. En aquest sentit, el valor afegit de l'assignatura no l'aporta la documentació, sinó el professor col·laborador, un professional de la indústria a la vostra absoluta disposició per resoldre qualsevol dubte o incidència i guiar-vos en el desenvolupament dels reptes. Normalment, cada bloc en el temari es divideix en dues parts. 

Primer, es porta a terme un petit projecte de manera guiada a través de les indicacions dels materials, sempre amb l'ajuda del professor col·laborador i la resta de companys de l'aula. Es tracta d'un exercici de caràcter totalment formatiu, en el qual vèncer les dificultats que vagin apareixent serà la forma de garantir l'aprenentatge. Un cop superada aquesta part, s'ha de dur a terme individualment un exercici avaluable vinculat amb tot el que s'ha treballat anteriorment. 

En aquest context de treball, el seguiment actiu dels espais de l'aula (tauler, fòrum) és de primordial interès, atès que habitualment es plantegen dubtes, es donen respostes i es tracten temes relacionats amb la matèria d'estudi. És molt recomanable la consulta de qualsevol dubte a través del fòrum de l'assignatura. També, és important realitzar un treball constant d'estudi i aplicació dels continguts ja que aquesta és la via habitual d'assegurar l'èxit per superar l'assignatura. En aquest sentit van les propostes de distribució temporal d'aprenentatge incloses en aquest document i les altres que es puguin donar durant el curs.

Amunt

La Normativa acadèmica de la UOC disposa que el procés d'avaluació es fonamenta en el treball personal de l'estudiant i pressuposa l'autenticitat de l'autoria i l'originalitat dels exercicis fets.

La manca d'originalitat en l'autoria o el mal ús de les condicions en què es fa l'avaluació de l'assignatura és una infracció que pot tenir conseqüències acadèmiques greus.

Es qualificarà l'estudiant amb un suspens (D/0) si es detecta manca d'originalitat en l'autoria d'alguna activitat avaluable (pràctica, prova d'avaluació contínua (PAC) o final (PAF), o la que es defineixi al pla docent), sigui perquè ha utilitzat material o dispositius no autoritzats, sigui perquè ha copiat textualment d'internet, o ha copiat d'apunts, de materials, de manuals o d'articles (sense la citació corresponent), d'altres estudiants, o per qualsevol altra conducta irregular.

La qualificació de suspens (D/0) en les qualificacions finals d'avaluació contínua pot comportar l'obligació de fer l'examen presencial per a superar l'assignatura (si hi ha examen i si superar-lo és suficient per a superar l'assignatura segons indiqui el pla docent).

Quan aquesta mala conducta es produeixi durant la realització de les proves d'avaluació finals presencials, l'estudiant pot ser expulsat de l'aula, i l'examinador farà constar tots els elements i la informació relatius al cas.

D'altra banda, aquesta conducta pot donar lloc a la incoació d'un procediment disciplinari i l'aplicació, si escau, de la sanció que correspongui.

La UOC habilitarà els mecanismes que consideri oportuns per a vetllar per la qualitat de les seves titulacions i garantir l'excel·lència i la qualitat del seu model educatiu.

Amunt

Aquesta assignatura només es pot superar a partir de l'avaluació contínua (AC). La nota final d'avaluació contínua esdevé la nota final de l'assignatura. La fórmula d'acreditació de l'assignatura és la següent: AC.


Ponderació de les qualificacions

Opció per superar l'assignatura: AC

Nota final d'assignatura: AC

Amunt

Aquesta assignatura es basa exclusivament en l'avaluació continuada. Al llarg del curs el professor col·laborador publicarà en l'aula un conjunt d'activitats avaluables (PAC). Per a cada mòdul de l'assignatura hi ha una PAC associada. Cal lliurar totes les PAC per poder superar l'assignatura. 

Observació important: El seguiment correcte de l'assignatura compromet a l'estudiant a realitzar les activitats proposades de manera totalment individual i segons les indicacions que pauta aquest Pla Docent. En cas que no sigui així, la nota final de l'assignatura s'avaluarà automàticament amb un 0. D'altra banda, i sempre a criteri dels Estudis, l'incompliment d'aquest compromís pot suposar no permetre a l'estudiant superar cap altra assignatura mitjançant avaluació contínua ni en el semestre en curs ni en els següents.

Amunt

Aquesta assignatura s'avalua exclusivament mitjançant l'avaluació contínua, lliurant totes les PAC, a partir de les quals l'estudiant anirà demostrant que ha seguit la docència i ha entès els conceptes tractats.  

La nota final vindrà donada segons el quadre del model d'avaluació, basat en la nota mitjana de les quatre PAC.

Amunt

Tal com s'ha indicat en la metodologia de l'assignatura, el professor col·laborador us guiarà i orientarà a través del Tauler de l'aula perquè pugui fer un bon seguiment de l'assignatura. També respondrà els dubtes que vagin sortint en el Fòrum de l'aula així com les consultes i comentaris enviats a la bústia personal.  

El professor col·laborador també farà un seguiment personalitzat de l'avaluació contínua, revisarà totes les PAC lliurades i comentarà de forma qualitativa a nivell grupal i / o individual la resolució. Aquests comentaris us ajudaran a progressar en el seu aprenentatge i adquirir el conjunt de les competències.

Amunt