Vés al contingut

Videojocs

Crèdits
6
Tipus
  • GIA: Optativa
  • GRAU: Optativa
  • GCED: Optativa
Requisits
Departament
CS
Aquesta assignatura introduirà els conceptes fonamentals de la programació de videojocs. Com a resultat els estudiants dissenyaran i desenvoluparan jocs utilitzant els coneixements adquirits a l'assignatura.

Professorat

Responsable

Altres

Hores setmanals

Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6

Competències

Treball en equip

  • G5 [Avaluable] - Ser capaç de treballar com a membre d'un equip, ja sigui com a un membre més, ja sigui realitzant tasques de direcció, amb la finalitat de contribuir a desenvolupar projectes d'una manera pragmàtica i amb sentit de la responsabilitat; assumir compromisos tenint en compte els recursos disponibles.
    • G5.3 - Identificar els rols, les habilitats i les carències dels diferents membres del grup. Proposar millores en l'estructura del grup. Interactuar amb eficàcia i professionalitat. Negociar i gestionar conflictes en el grup. Reconèixer i donar suport o assumir el paper de líder en el grup de treball. Avaluar i presentar els resultats del treball de grup. Representar el grup en negociacions amb terceres persones. Capacitat de col·laborar en un entorn multidisciplinar. Conèixer i saber aplicar les tècniques per a promoure la creativitat.
  • Competències tècniques comunes

  • CT1 - Demostrar coneixement i comprensió de fets essencials, conceptes, principis i teories relatives a la informàtica i a les seves disciplines de referència.
    • CT1.2A - Interpretar, seleccionar i valorar conceptes, teories, usos i desenvolupaments tecnològics relacionats amb la informàtica i la seva aplicació a partir dels fonaments matemàtics, estadístics i físics necessaris. CEFB1: capacitat per a resoldre els problemes matemàtics que es plantegin en la enginyeria. Aptitud per a aplicar els coneixements sobre: àlgebra, càlcul diferencial i integral i mètodes numèrics; estadística i optimització.
  • CT4 - Demostrar coneixement i capacitat d'aplicació dels procediments algorísmics bàsics de les tecnologies informàtiques per a dissenyar solucions a problemes, analitzant la idoneïtat i la complexitat dels algorismes
    • CT4.3 - Demostrar coneixement i capacitat d'aplicació dels principis fonamentals i de les tècniques bàsiques dels sistemes intel·ligents i de la seva aplicació pràctica.
  • CT5 - Analitzar, dissenyar, construir i mantenir aplicacions de forma robusta, segura i eficient, triant el paradigma i els llenguatges de programació més adequats.
    • CT5.3 - Dissenyar, escriure, provar, depurar, documentar i mantenir codi en un llenguatge d'alt nivell per a resoldre problemes de programació aplicant esquemes algorísmics i utilitzant estructures de dades.
    • CT5.5 - Usar les eines d'un entorn de desenvolupament de software per a crear i desenvolupar aplicacions.
    • CT5.6 - Demostrar coneixement i capacitat d'aplicació dels principis fonamentals i de les tècniques bàsiques de la programació paral·lela, concurrent, distribuïda i en temps real.
  • Especialitat computació

  • CCO2 - Desenvolupar de forma efectiva i eficient els algorismes i el software apropiats per a resoldre problemes complexos de computació.
    • CCO2.6 - Dissenyar i implementar aplicacions gràfiques, de realitat virtual, de realitat augmentada i videojocs.
  • Objectius

    1. Coneixer la història del desenvolupament de videojocs.
      Competències relacionades: CCO2.6,
    2. Coneixer l'estructura interna d'un equip de desenvolupament de videojocs, entenent quines són les feines assignades a cada rol.
      Competències relacionades: G5.3, CCO2.6,
    3. Entendre l'estructura bàsica d'un joc, el bucle principal d'aquest, així com els diferents components que en formen part.
      Competències relacionades: CCO2.6, CT5.6,
    4. Aprendre els conceptes bàsics que s'utilitzen en la programació de jocs 2D: sprites, tiling, scroll, múltiples capes, parallax i visualització isomètrica.
      Competències relacionades: CCO2.6, CT5.3,
    5. Assimilar els conceptes bàsics de la programació de jocs 3D com el pipeline típic de visualització i l'ús de grafs d'escena.
      Competències relacionades: CT1.2A, CCO2.6, CT5.3,
    6. Comprendre els principals algorismes d'acceleració per la visualització d'interiors.
      Competències relacionades: CCO2.6, CT5.3,
    7. Comprendre els principals algorismes d'acceleració per a la visualització d'exteriors.
      Competències relacionades: CCO2.6, CT5.3,
    8. Entendre com es visualitzen els objectes orgànics (arbres, herba, aigüa, núbols) en un joc.
      Competències relacionades: CCO2.6, CT5.3,
    9. Coneixer les diferents tècniques que s'apliquen a l'animació de personatges en els videojocs.
      Competències relacionades: CCO2.6, CT5.3,
    10. Entendre i assimilar les diferents càmeres que es poden fer servir en un videojoc.
      Competències relacionades: CCO2.6, CT5.3,
    11. Entendre els diferents conceptes que s'apliquen al desenvolupament de sistemes de partícules. Coneixer les opcions que aquests proporcionen en la generació d'efectes visuals en temps real.
      Competències relacionades: CCO2.6, CT5.3,
    12. Comprendre els fonaments de l'aplicació de la intel·ligència artificial als videojocs.
      Competències relacionades: CCO2.6, CT4.3, CT5.3,
    13. Comprendre quines són les capacitats i les limitacions dels sistemes de simulació física dels motors de jocs actuals.
      Competències relacionades: CCO2.6,
    14. Assimilar els conceptes que hi ha darrera del disseny de videojocs, en particular la importància de la jugabilitat i la seva relació amb la usabilitat d'aplicacions.
      Competències relacionades: CCO2.6,
    15. Ser capaç de desenvolupar un videojoc fent servir un motor específicament creat per a aquest objectiu.
      Competències relacionades: G5.3, CCO2.6, CT5.5, CT4.3, CT5.3, CT5.6,

    Continguts

    1. Història del desenvolupament dels videojocs
      Història del desenvolupament dels videojocs des dels seus inicis, passant per la seva consolidació com a medi d'entreteniment i la seva extensió per diferents plataformes i mitjans.
    2. Conceptes bàsics
      Conceptes bàsics de la programació de videojocs. Això inclou la composició d'un equip de programació de videojocs, l'estructura bàsica d'un joc, així com els components d'un motor de videojocs.
    3. Programació de jocs 2D
      Conceptes de programació de videojocs 2D. Sprites, tiling, scrollers, múltiples capes, parallax, visualització isomètrica.
    4. Programació de jocs 3D
      Conceptes bàsics. Visualització d'interiors i exteriors. Objectes orgànics. Animació de personatges. Tipus de càmeres.
    5. Disseny de videojocs
      Conceptes de disseny de videojocs. Jugabilitat. Guió gràfic del joc. Document del disseny.
    6. Inteligència artificial per a videojocs
      Encaminament, màquines d'estats finits i sistemes de regles. Inteligència orientada a l'acció i inteligència tàctica.
    7. Sistemes de partícules
      Generació, comportament, extinció i visualització de partícules per a poder afegir efectes visuals a un joc.
    8. Física
      Col·lisions. Dinàmica del sòlid rígid. Restriccions. Molles.
    9. Sistemes addicionals
      Sistemes de scripting. Gestió d'audio. Programació de xarxes.

    Activitats

    Activitat Acte avaluatiu


    Introducció a la programació de videojocs

    Repàs de la història del desenvolupament de videojocs. Taxonomia dels videojocs. Composició d'un equip de programació de videojocs, amb la descripció del paper realitzat per cadascun dels dieferents rols.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Arquitectura bàsica d'un joc

    Descripció de l'arquitectura bàsica d'un joc. Game Loop: presentació i actualització. Definició de game engine i components que el composen.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Programació de jocs 2D

    Introducció a la programació de jocs 2D introduint conceptes com: sprites, tiling, scroll, ús de múltiples capes, parallax i visualització isomètrica.

    Teoria
    4h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    4h

    Eines de programació 2D

    Introducció a les eines que es faran servir per la realització d'un joc 2D avaluable.

    Teoria
    0h
    Problemes
    0h
    Laboratori
    8h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Desenvolupament del joc 2D

    Desenvolupament d'un joc 2D individual.

    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    18h

    Introducció a la programació de jocs 3D

    Repàs del pipeline gràfic. Descripció de l'ús de grafs d'escena i overlays. Introducció a la necessitat de tècniques d'acceleració. Tipus de càmeres.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    4h

    Eines de programació 3D

    Descripció del funcionament i ús del motor gràfic que es farà servir per a implementar en equip el joc 3D.

    Teoria
    0h
    Problemes
    0h
    Laboratori
    22h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Desenvolupament del joc 3D

    Desenvolupament del joc 3D en equip.
    Objectius: 15
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    44h

    Escenes interiors

    Descripció de l'algorisme de portal rendering i de les estructures BSP per a l'acceleració del render d'escenes interiors.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Escenes exteriors

    Descripció del tipus de estructures de dades usades per la visualització d'exteriors (mapes d'elevació, quadtrees). Algorismes de visualització d'exteriors (ROAM, geomipmapping). Visualització d'objectes orgànics.

    Teoria
    4h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    4h

    Animació de personatges

    Comparació de models explicits i implicits. Descripció de l'animació basada en keyframes. Utilització de jerarquies de transformacions (esquelets) i transferència a la malla asociada (skinning). Animació facial.

    Teoria
    4h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    4h

    Sistemes de partícules

    Descipció del funcionament d'un sistema de partícules. Generació, comportament, extinció i visualització d'un partícula.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Inteligència artificial per a jocs

    Algorismes bàsics d'encaminament. Maquines d'estats finits.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Física per a jocs

    Conceptes utilitzats en els motors de física utilitzats en els motors de jocs: col·lisions, dinàmica del sòlid rígid, molles.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Sistemes addicionals

    Descripció de les capacitats i ús dels sistemes de scripting, audio i connectivitat del motors de programació de jocs.

    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Examen final

    Examen escrit que avaluarà els coneixements adquirits al llarg de l'assignatura.
    Objectius: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
    Setmana: 15 (Fora d'horari lectiu)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Metodologia docent

    Les sessions de teoria de l'assignatura estan pensades per a introduir els conceptes més importants de la programació de videojocs, entrant en detall en els algorismes més comuns. Aquestes classes es realitzaran en unitats de dues hores amb una periodicitat setmanal.

    Les sessions de laboratori presentaran les eines 2D i 3D que es faran servir per a desenvolupar els dos projectes amb que s'avalua el component pràctic de l'assignatura. De la mateixa manera que en el cas de les classes de teoria, les classes de laboratori s'impartiran a raó de dues hores setmanals.

    Mètode d'avaluació

    Avaluació de l'assignatura:

    35% Lliurament individual d'un joc 2D
    35% Lliurament en equip d'un joc 3D
    30% Examen final

    La competència "Treball en equip" s'avaluarà en base a la distribució de feines per l'entrega del joc 3D. Per tal d'assolir la qualificació màxima (A) caldrà haver demostrat la capacitat de distribuir els rols del desenvolupament del joc 3D de forma òptima. També serà necessari demostrar capacitat de col·laboració amb els altres membres del grup.

    Bibliografia

    Bàsic

    Complementari

    Web links

    Capacitats prèvies


    S'espera que l'estudiant:

    * Hagi cursat l'assignatura de IDI.
    * Entengui i sapiga implementar les estructures de dades i algorismes bàsics