Teoría y Desarrollo de Juegos
Juego electrónico(definición)
Actividad lúdica desarrollada en(o con la ayuda de) cualquier máquina electrónica, compromete 1 o más
jugadores humanos.
Breve reseña histórica
● 1er juego: “Tennis for two” Osciloscopio● 1958 – William Higinbotham
Breve reseña histórica
● 2do juego: SpaceWars● 1961 – Steve Russell, Martin Graetz, Waine
Wiitanen(MIT)
Breve reseña histórica
● Nacen las consolas● Pong(1972) – Atari 2600
Breve reseña histórica
● El mercado de consolas crece y empiezan a salir los principales competidores:– Atari, Nintendo, SEGA
● Se separan la manufacuración de consolas con la creación de juegos y se crean las compañias de juegos:– Taito, Namco, Konami
Consolas 8x
NES(Nintendo Entertainment System) Famicon Family
Juegos 8x
Super Mario Bros Zelda I: The Adventures of Link
Juegos 8x
Contra Goal
Juegos 8x
Jackal Metroid
Breve reseña histórica
● Sale el primer IBM casero● El computador también es apuntado para la
fabricación de juegos.● Más potente que las consolas es atractivo y será el
que marcará la dirección en cuanto a tecnología
Juegos PC
Zork Bushido
Prince of Persia Doom
Consolas 16x
Super Nintendo Sega Genesis
Juegos 16x
Super Street Fighter 2 Chrono Trigger
Sonic the Hedgehog FZero
Breve reseña histórica
● Con la velocidad actual de los procesadores las posibilidades de diseño se expanden
● Es considerada la posibilidad de renderización 3D en tiempo real
● Es creado el estándar OpenGL
5ta generación
Playstation SEGA Dreamcast N64
Juegos 5ta generación
Final Fantasy VIII Resident Evil 2
Silent Hill Killer Instinct Gold
Juegos 5ta PC
Warcraft III Quake 3
Half Life Grand Theft Auto 3
6ta generación
Playstation 2 Microsoft XBox Game Cube
7ma generación
Playstation 3 XBox 360 Nintendo Wii
Juegos electrónicos de mano
● La computación de mano también llegó al mercado de los video juegos:
Principios de Ing. de SW en juegos
● Cómo cualquier proyecto a gran escala, los juegos dependen en gran mayoría de su ciclo de vida
● Los principios más seguidos son:– Desempeño– Usabilidad– Portabilidad(no tanto)
Desarrollo
● Los juegos, como cualquier otro software, necesitan un modelo de desarrollo
● Últimamente los juego son desarrollados por 10 ó más programadores
● Las tareas de programación son dividas por módulos(sonido, video, etc)
GameLoop
● Flujo lógico de un juego(programa)
● Cada parte del 'loop' puede ser un módulo independiente
● Un ciclo completo se le llama 'frame'
Gráficos
● En los últimos 8 años los ambientes en 3D han florecido
● Existen 2 librerías principales para las rutinas de desarrollo 3D:– Direct3D(DirectX) : No portable, última tecnología– OpenGL : Portable, bien documentado, las tecnologías
demoran un poco
Gráficos
● Existen problemas en el ambiente gráfico que consumen demasiados recursos:– Oclusión de objetos– Clipping– Detección de Colisiones
Representación gráfica de objetos
● Todos los objetos en 3D son representados en triángulos:
Problemas Gráficos
Oclusión
Detección de Colisiones
Sonido
● El sonido también últimamente está siendo implementado con espaciación en 3 dimensiones
● Las librerías principales son:– DirectSound(DirectX): No portable, deprecada– OpenAL: Portable, muy nueva
● También se agregan efectos como un sonido bajo el agua o el efecto doppler
Sonido
Input
● Lo comandos al juego es la tarea más sencilla de todas
● Librerías:– DirectInput(DirtectX): No portable, deprecada– SDL: Portable, entendible
● Lo que se busca últimamente es ergonomía en los controles(PAD'S, Joystick's, etc)
Networking
● El crecimiento de la accesabilidad a Internet ha demandado la parte 'multijugador' en la mayoría de juegos
● Librerías:– DirectPlay(DirectX): No portable, deprecada– Sockets: Especificación, portable, no especializada
● Existen juegos especialmente dedicados a ser multijugadores
Networking
● Multijugador se puede definir como el juego en paralelo de 2 o más máquinas
● No todos los juegos se prestan para tener una parte multijugador
Lógica de un juego
● IA● Coherencia(lógica):
– Reglas de Juego– Física
● Argumento(historia)
Motor de un Juego
● Todas estas funcionalidades anteriormente mencionadas pueden ser condensadas en una gran librería(framework)
● Al software que presenta estas funciones para la ayuda del desarrollo se le llama motor de juego
Motor de un Juego
● Entre las funciones anteriormente nombradas existen otras que el motor puede prestar:– Scripting– Manejo de eventos– Control y manejo de
estados
Lo último
● Se apunta la mayoría de esfuerzos a la evolución de la parte gráfica:– Extensiones– Pixel & Vertex Shader– Física
● Se quiere mejorar la IA para que el jugador interactue(juege) con la máquina
● Se quiere crear mundos virtuales(masivos)
Las guerras
Consolas vs. PC's
DirectX vs. (OpenGL, OpenAL, SDL)
USA vs. Japón
Los géneros
FPS(First Person Shooter)
Estrategia
Pelea
Arcade
RPG(Rol Playing Game)
Aventura
Simulación
Deportes
Racing
Acción Terror
Géneros no tan típicos
Novelas Visuales
Espionaje
Metal Gear Solid