Diseño de un Videojuego con Java2D Sistemas Multimedia Universitat de València 2009/2010 Jorge Belenguer Beltrán
Diseño de un Videojuego con Java2D Presentación Conceptos Previos Desarrollo Conclusiones
Presentación Objetivos Entender los conceptos del diseño de Juegos Aprender a utilizar la API Java2D Diseñar un videojuego simple aplicando estos conceptos ¿Qué es Java2D?
Diseño de Videojuegos Diseño modular IV Máster en Diseño y Programación de Videojuego – Prof. José Carlos Cortizo Pérez Universidad Europea de Madrid
Game engines IdTech 1 (Doom Engine) IdSoftware 1993 Lenguaje C Juegos: Doom Doom II Hexen Heretic
Game engines QuakeEngine IdSoftware 1996 QuakeC Juegos: Quake Hexen II LaserArena Derivados: IdTech 2 (Quake II) GldSrc Engine (Half-Life)
Game engines Unreal 1.0 Engine Epic Games 1998 C++ y UnrealScript Juegos: Unreal Star Trek: Next Generation TNN Derivados: Unreal Engine 1.5 (Unreal Tournament) Unreal Engine 2.0 (Unreal II)
Game engines Criterion Software 2001 VRML (precedente de X3D) Juegos: Grand Theft Auto III GTA: Vice City GTA: San Andreas Battlefield 2 Pro Evolution Soccer 2 Call of Duty: Finest Hour
Game engines Valve Software 2004 C y C++ Juegos: Half-Life 2 Counter-Strike Source Vampire: The Masquerade Postal 4
Game engines 3.0 Epic Games 2006 C++ Juegos: Unreal Tournament 3 Gears of War BioShock Mirror's Edge Mass Effect Derivados: Unreal Engine 3.5 (Gears of War 2)
Game engines CryTek 2007 Lua Juegos: Crysis Crysis: Warhead Entropia Universe Derivados: CryEngine 3 (Crysis 2)
Game engines
Motores en otros Géneros Scumm LucasArts 1987 W3D Westwood Studios 2001
Decisiones de Desarrollo Videojuego a desarrollar Carreras de coches con visión superior Presentación Pantalla completa y FSEM
Decisiones de Desarrollo Rendimiento Double Buffering
Desarrollo La API Java2D Graphics Stroke Shape Proceso Modificar Contexto de Graphics2D Pintar
Desarrollo Modificar el contexto Modificar atributos del pincel. Definir colores o patrones de relleno. Delimitar un área a renderizar (clipping path). Transformar objetos cuando son renderizados. Especificar la composición de las figuras superpuestas.
Desarrollo Atributos de Stroke Ancho de línea La forma en que acaba un trazo El estilo con que se unen varios segmentos en un dibujo. Atributos de Relleno setColor() Establece un color opaco como relleno. setGradientPaint() Establece un relleno degradado. setTexturePaint() Rellenará con una textura.
Desarrollo Transformaciones rotate(): Rota el lienzo scale(): Escala el Graphics2D translate(): Traslada el origen de coordenadas shear(): Es una combinación de las anteriores Composición setComposite(): Aplicado sobre un objeto de tipo AlphaComposite, establece la transparencia.
Desarrollo Interfaz PathIterator Interfaz Shape Arc2D CubicCurve2D Ellipse2D Line2D Point2D QuadCurve2D Rectangle2D RoundRectangle2D
Diseño Bucle Principal
Diseño del Motor de Renderizado Dibujado del Fondo
Diseño del Motor de Renderizado Dibujado del Coche
Resultado Código disponible para quien le interese
Conclusiones API de alto nivel sencilla. Reduce el tiempo de desarrollo. Limitaciones de Java.
Muchas Gracias Fin.