Programació de videojocs 3D Codi:  M7.458    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   Recursos d'aprenentatge i eines de suport   Bibliografia i fonts d'informació   Metodologia   Informació sobre l'avaluació a la UOC   Consulta del model d'avaluació  
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.
Aquesta assignatura és la continuació directa de l'assignatura Programació de videojocs 2D estudiat en el primer semestre. La principal diferència, és que es dedica a Programació de videojocs 3D.
El desenvolupament d'un videojoc és una tasca complexa, que requereix el domini de diferents eines. Per exemple, en el cas de títols de primera categoria (AAA), el procés de desenvolupament pot arribar a necessitar anys i un nombrós equip de persones expertes en diferents disciplines. Entre aquestes eines, el motor (engine) és la peça més important de tot el procés de desenvolupament. Alguns fins i tot són tan complets que permeten que un grup reduït de persones pugui crear un videojoc en un temps raonable.  Es tracta d'un marc de programari que ofereix el conjunt de funcionalitats bàsiques necessàries per a tot videojoc. Entre aquestes funcionalitats podem trobar, per exemple, el renderizado 2D o 3D, la detecció de col·lisions, les físiques, el so o el motor d'animacions entre altres... En alguns casos, aquestes eines fins i tot incorporen un entorn gràfic que permet gestionar aquests aspectes de manera més o menys amigable.

Si bé les grans companyies es poden permetre crear els seus propis motors, actualment existeixen diferents motors comercials que podem adquirir per a desenvolupar els nostres propis videojocs. Entre ells, un que ha pres especial rellevància últimament en el camp professional és Unity, creat per Unity Technologies en 2005, i millorat versió a versió fins al dia d'avui. Aquest permet el desenvolupament multiplataforma per a ordinadors, diferents consoles i mòbils o web.

Entre els diferents jocs comercials creats amb Unity, podem trobar exemples d'una enorme qualitat com:
•    Lara Croft: Relic Run by Simutronics
•    Hitman GO
•    Firewatch
•    Ori and the Blind Forest
•    Blues and Bullets
•    Wasteland 2
•    Kerbal Space Program

L'assignatura de "Programació de videojocs 3D" té com el fil narratiu el desenvolupament de tres petits videojocs de temàtica diversa per a formar als estudiants en els aspectes bàsics del  desenvolupament per a jocs 3D. De totes maneres, és important tenir en compte que, si bé l'assignatura se centra en Unity, molts dels conceptes són aplicables quan es treballi amb motors diferents.

Amunt

Aquesta assignatura és la continuïtat directa de la primera assignatura de programació amb Unity dins dels programes de desenvolupament de videojocs (postgrau i màster). S'ofereix en paral·lel amb les assignatures de "Intel·ligència Artificial" i "Jocs Multijugador", més especialitzades. Per això, és important, perquè finalitza l'aprenentatge de la programació de videojocs 3D com una de les eines que s'usarà de manera intensiva al llarg del programa i en concret del segon semestre.
Aquesta assignatura és la secunda de programació dins dels programes de desenvolupament de videojocs (postgrau i màster), oferta després de les assignatures de "Game Design" i "Programació de videojocs 2D".

Amunt

La indústria del videojoc és la principal en el camp d'oci audiovisual i interactiu del nostre país, amb una facturació anual de gairebé 1.000 milions d'euros (AEVI-GFK), superant a totes fins i tot la del cinema. Actualment hi ha gairebé 400 companyies de desenvolupament de videojocs i el sector creix a un ritme d'al voltant de 20% per any. S'estima que el sector dels videojocs doblegarà les seves xifres d'ocupació i en 2019 podria generar 7.217 empleats d'alta qualificació (Llibre blanc DEV). Encara que el nombre d'ocupacions en el sector continua creixent a un mateix ritme, encara fan falta més professionals pel que les empreses tenen dificultats per a trobar personal qualificat.

En aquest sentit, aquesta assignatura és d'especial interès per a aquells que vulguin dedicar-se, ja sigui professionalment o per afició, al desenvolupament de videojocs en format 3D mitjançant l'entorn Unity (perfil - Game Programmer).

Amunt

Estrictament, no és necessària haver cursat l'assignatura Unity 2D, però es considera ja adquirit els coneixements del semestre precedent. En particular, els temes:
•    Scripting en Unity
•    Sprites
•    Física 2D
•    Utilització dels Subprocessos
•    Sistemes de partícules
•    Les animacions
•    Layers i Tags
no seran tractat detalladament, tret que siguin diferents en el context de la 3D.
No obstant això, en tractar-se d'una assignatura de desenvolupament, la programació juga un paper clau. Per això, els elements de la programació també es donen per adquirit i no seran revisats.
Igual que en l'assignatura "Programació en videojocs 2D", el llenguatge de programació triat és C#.

Amunt

És molt recomanable haver cursat abans l'assignatura "Programació de videojocs 2D".
En cas de no disposar de coneixements sobre la 3D, pot ser recomanable cursar abans l'assignatura "Gràfics 3D".

Amunt

Els objectius d'aprenentatge de l'assignatura són els següents:
•    Conèixer les físiques en entorns 3D.
•    Comprendre com funciona una càmera 3D i els seus diferents tipus.
•    Dominar l'eina "Terrain" de Unity.
•    Saber utilitzar un "Character" i animar-ho en un joc tipus FPS.
•    Conèixer l'eina NavMesh i l'ús de NavMeshAgent per a tenir enemics autònoms.
•    Dominar el animator i comprendre com funciona el sistema d'animacions de Unity així com el seu graf d'estats.
•    Saber utilitzar les eines de so de Unity.
Les competències transversals del Màster que es posen de manifest en aquesta assignatura són:      
•    [CT2] Capacitat per a l'aprenentatge autònom.
•    [CT3] Comprensió i expressió en anglès tècnic.
Les competències específiques d'aquesta assignatura són:
•    [CE1] Capacitat per a l'anàlisi i desenvolupament de la documentació tècnica associada a un videojoc.
•    [CE2] Capacitat per a dominar les diferents eines aplicables a l'entorn del desenvolupament de videojocs segons les tendències tecnològiques.
•    [CE3] Capacitat per a l'ús efectiu dels llenguatges de programació i metodologies per al desenvolupament de videojocs.
•    [CE6] Capacitat per a representar elements visuals i les seves interaccions de manera eficient.
•    [CE8] Capacitat per a usar els fonaments matemàtics i físics necessaris per al desenvolupament d'un videojoc
•    [CE10] Integració de manera efectiva de continguts digitals en un videojoc.

Amunt

El temari del curs dins de l'assignatura es divideix en quatre blocs temàtics, o mòduls, que engloben els diferents capítols dels materials.

Mòdul 1. Joc de carreres.
•    Terreny                       
•    Vehicles
•    Cambres 3D

Mòdul 2. First Person Shooter.
•    Character Controller               
•    Fisrt Person Controller
•    NavMesh
•    AI State Machine

Mòdul 3. Plataformes 3D.  
•    Animator                    
•    Particle System
•    So
•    Il·luminació

Amunt

Material Suport

Amunt

Al dia a dia de la docència, s'usarà el campus de la UOC per a la majoria de tasques habituals: comunicar-se amb els companys de l'aula, lliurar activitats, ser avaluats i veure les seves notes, etc. A través de l'aula també és possible accedir als mòduls que conformen els materials de l'assignatura.

De cara al treball de l'estudiant, l'entorn de treball serà Unity, que pot ser descarregada gratuïtament des de la pàgina del seu fabricant. En aquesta mateixa pàgina es pot trobar la documentació oficial on-line de Unity, d'ús intensiu al llarg de tot el curs, així com diversos vídeo tutorials.

Juntament amb aquesta eina, també és necessari un entorn de programació per a la generació de scripts en C#. Per a la versió actual de Unity, aquesta és Visual Studio.

Amunt

La principal font d'informació és la documentació oficial on-line de Unity:
https://docs.unity3d.com/manual/index.html
Existeix una versió en castellà, però s'ha de tenir en compte que no sempre està actualitzada a l'última versió de Unity. És preferible usar la versió anglesa.

Amunt

La metodologia de l'assignatura es basa en dues premisses considerades bàsiques. D'una banda, que el desenvolupament de videojocs no es pot aprendre simplement mitjançant la lectura d'uns materials, de manera que, una vegada memoritzats, ja es pot passar a programar. El vessant pràctic, basada en la resolució dels diferents problemes que un es pugui trobar durant el procés ha de ser el nucli del procés d'aprenentatge. D'altra banda, que avui dia ja existeixen innombrables fonts d'informació sobre com desenvolupar jocs en Unity, i no té sentit tornar-los a copiar simplement en un format diferent.

Per això, la metodologia de l'assignatura es basa en l'estudi basat en projectes. En aquest sentit, els mòduls de l'assignatura prenen la forma d'un conjunt de guies, en cadascuna de les quals es proposa un petit projecte d'autoaprenentatge. Abans, s'ofereix una molt breu introducció als conceptes necessaris per a afrontar el projecte, però en cap cas es tracta d'una documentació extensa o acte-explicativa. La documentació de suport per a dur a terme aquesta tasca serà la pròpia que Unity ofereix on-line. Els projectes en si es divideixen en petits reptes que han de ser superats seqüencialment, i, en qualsevol cas, s'ofereixen amb la solució.

En aquest sentit, el valor afegit de l'assignatura l'aporta sobretot el docent que, com a expert en l'àmbit del desenvolupament dels videojocs, està a la disposició de l'estudiant per a ajudar-lo i resoldre qualsevol dubte durant el procés de resolució dels projectes. Per això, 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.

A part de la realització d'aquests projectes d'autoaprenentatge, al llarg del curs es proposaran un conjunt d'activitats avaluables que l'estudiant haurà de resoldre, normalment ampliacions dels projectes ja treballats en les guies. Aquestes es publicaran sempre a través del campus de la UOC i, normalment, estaran vinculades.

Cal tenir en compte que, en tractar-se d'una assignatura eminentment pràctica, l'estudiant haurà de dedicar algun temps a familiaritzar-se amb l'entorn de treball de Unity, necessari per a la realització de les activitats. Un altre aspecte important és que a l'inici de curs haurà de familiaritzar-se amb la programació de scripts en C# dins d'aquesta eina

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.

L'estudiant serà qualificat 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