Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programación Avanzada
Desarrollo de Videojuegos
1
Programación Avanzada
El juego
“El juego, pues, es el arte o técnica que el hombre posee para
suspender virtualmente su esclavitud dentro de la realidad, para
evadirse, escapar, traerse a sí mismo de este mundo en que vive a
otro irreal… El juego es distracción... es algo consustancial a la vida
humana”. [Ortega y Gasset]
“El juego es el conjunto de reglas que definen una experiencia lúdica”.
[von Neumann]
“El juego es una acción u ocupación libre, que se desarrolla dentro de
unos límites temporales y espaciales determinados, según reglas
absolutamente obligatorias, aunque libremente aceptadas, acción que
tiene su fin en sí misma y va acompañada de un sentimiento de
tensión y alegría y de la conciencia de ser de otro modo que en la vida
corriente”. [Huizinga]
“Un juego es un sistema en el cual unos jugadores se ven
involucrados en un conflicto creado artificialmente, definido por reglas,
y cuyo final viene definido por un objetivo cuantificable”. [Salem]
Ing. César Omar Aranda - Lic. Enrique Ruiz 4
2
Programación Avanzada
Conceptos iniciales
Juego
En general, puede entenderse como la evolución, de uno o
varios personajes principales o entidades que pretenden
alcanzar una serie de objetivos en un mundo acotado, los cuales
están controlados por el propio usuario.
Videojuego
Es una aplicación gráfica en tiempo real en la que existe una
interacción explícita entre el usuario y el propio videojuego.
Tiempo real
Asociado a la necesidad de lograr un Frame Rate capaz de darle
al usuario una sensación continua de realidad.
Frame Rate
Tasa de imágenes o cuadros. Habitualmente en fps
Industria
Actualmente, la industria del videojuego goza de muy
buena salud a nivel mundial, rivalizando en presupuesto
con las industrias cinematográfica y musical (11.000
millones de euros, en el mercado europeo en 2011).
Los primeros videojuegos, caracterizados principalmente
por su simplicidad y por el hecho de estar desarrollados
completamente sobre hardware.
La evolución ha estado ligada varios hitos:
Juegos (Doom, Final Fantasy, Tekken, Zelda, The sims, WoW);
Hardware (CPU, GPU, poligonales 3D, P-Shaders, consolas de
juego, dispositivos móviles, multiprocesamiento);
Software (multiprocesamiento, motores de juego, internet);
Fenómenos sociales (globalización y transculturación, redes
sociales → social gaming).
Ing. César Omar Aranda - Lic. Enrique Ruiz 6
3
Programación Avanzada
Evolución
1962
7
Ing. César Omar Aranda - Lic. Enrique Ruiz 2006
Motor de Juego
Componente de software encargado de:
Renderizado de gráficos 2D y 3D, motor físico o detector de
colisiones, sonidos, scripting, animación, inteligencia artificial,
redes, streaming, gestión de memoria y del escenario gráfico.
Arquitectura dirigida por datos (data-driven architecture)
Principio:
La lógica o comportamiento dado mediante una serie de reglas
definidas a través de un lenguaje de script
Mayor Reutilización, mejor Productividad, mayor Generalidad
Ejemplos
Quake I, II, III, Unreal Engine, CryENGINE 3 SDK
3D Rad, Adventure Game Studio, Axiom Engine, Buld Engine,
Cocos 2D, Core3D, Crystal Space, idTechx, Nebula Device, …
Ing. César Omar Aranda - Lic. Enrique Ruiz 8
4
Programación Avanzada
Otras Capas
5
Programación Avanzada
Géneros de Juegos
De disparos FPS: Quake, HalfLife, MoH
De Disparos TPS: Resident Evil, Metal Gear, Uncharted, TombRider
De Acción/Lucha: Virtua Fighter, Street Fighter, Tekken
De Conducción o Carreras (Simuladores o Arcade): Ridge Racer, Wipe
Out
De Estrategia (En tiempo real oBasados en Turno): Warcraft, AoE
De Rol o RPG (role-playing games): Final Fantasy, Tales of Xillia
De Aventura: Beyond, Resonance, The Walking Dead, Gone Home
De Deportes: FIFA14, NBA2K14, PES 2014, FX Fútbol
De Rompecabezas (puzzles): Candy Crush, World of Cheese, Puzzles
& Jigsaws
De Vida Artificial: Tamagotchi, Petz, Viva Piñata, Nintendogs, Los Sims
De “juegos de mesa”: Solitario, Poker
De construcción, educativos, tragamonedas, pinballs, ……..
Ing. César Omar Aranda - Lic. Enrique Ruiz 11
Desarrollo de Juegos
Entornos (IDES) o herramientas básicas
Netbeans, Eclipse, gcc/make/db
Sistemas de control de versión (VCS)
VCS, Subversion (SVN), Mercurial, Git
Gestión de Documentación
Doxygen
Sistemas de Gestión de Proyectos
GNA, BitBucket, GitHub, SourceForge, Mercurial, Google Code,
Redmine
Herramientas, Librerías y Motores
Plataformas
Lenguajes
Ing. César Omar Aranda - Lic. Enrique Ruiz 12
6
Programación Avanzada
Metodología de Producción
No existe una metodología
estándar
Se identifican 3 fases:
Pre-producción
Producción
Post-producción
Hay discusión sobre las
etapas que involucra cada
fase
Producción: fase donde se
implementan los elementos
del juego.
Ing. César Omar Aranda - Lic. Enrique Ruiz 14
7
Programación Avanzada
Equipo de desarrollo
El “diseñador” de juegos
Los campos del conocimiento fundamentales con los
que debería estar familiarizado todo diseñador de juegos
son:
Sistemas.
Filosofía y Psicología.
Comunicación.
Programación y Matemáticas.
Crawford, 2003
Ing. César Omar Aranda - Lic. Enrique Ruiz 16
8
Programación Avanzada
¿Conclusión o comienzo?
Un buen cierre de este módulo sería preguntarnos, más
allá de los aspectos económicos: