[code camp 2009] desarrollo de juegos con xna (Ángel arcoraci)
TRANSCRIPT
XNA Game Studio
Desarrollo de juegos para plataformas Windows y XBOX 360
Einyel ArcoraciCME - ArgentinaMSP - Mendoza
La historia de los videojuegos
Un legado de 40 años
Tennis for Two (1958)
Creado por William Higinbothan para el Brookhaven National Laboratory.Utilizó un osciloscopio para representar la cancha, la red y la pelota.
Spacewar! (1962)
Creado por Steve Rusell para el MIT. Desarrollado para la PDP-1.
PONG
Pitfall
Super Mario Bros
Donkey Kong Country
Juegos para PC
First Person Shooter Real Time Strategy
Juegos para PCEvolución
First Person Shooter Real Time Strategy
Avances tecnológicos
• Mejor poder de procesamiento.
• Hardware especializado en aceleracion de video.
• Hardware especializado en calculos de física.
• Internet.
• Técnicas de desarrollo de juegos.
¿ Qué es XNA ?
• Framework basado en .NET 2.0 que contiene una librería de clases para el desarrollo de juegos.
• CLR optimizada para requerimientos de juegos.
• Multiplataforma: Windows XP SP2, Windows Vista, Windows 7, XBOX 360 y ZUNE.
• Programación en C# .NET.
¿ Por qué utilizar XNA ?
• Mediante el “content pipeline” apunta a que los creadores de juegos se enfoquen en la lógica del mismo y no en crear un “parser” o importer para cada recurso que utiliza.
• Programación Orientada a Objetos.
• C# .NET.
• Gratis.
Content Pipeline
• El artista diseñador crea los recursos y el CP permite traerlos a un formato común para usarlos en runtime.
• Evita la creación de importers y procesors particulares para cada tipo de archivo que se necesite usar (aunque lo permite).
• El desarrollador se enfoca en la lógica o gameplay.
Content Pipeline
Content PipelineEn tiempo de desarrollo, se manejan los
recursos originales. Editamos sando photoshop, blender, 3d studio, etc. Cuando
se traen al juego, la informacion se transforma en entidades manejables por XNA
(vertices, splines, etc.).
Content Pipeline
Mediante los “procesors” los elementos son compilados y
analizados. Por ejemplo un modelo 3D puede tener informacion de
animacion que tiene que ser analizada y guardada en frames.
Content Pipeline
Al final del proceso todos los recursos son entendidos por el
manejador de contenidos (ContentManager) y pueden ser usados y asociados a su clases.
¿ Qué necesito para empezar ?
• Microsoft Direct X -
• Visual C# Express Edition -
• Microsoft XNA Game Studio -
Programación de juegos
¿ Cómo funcionan ?
Ciclo básico de los juegos
Ejemplo – Diseño de Clases
Ensamblaje de clases al juego
JuegoLoad()
Update()Draw()
Clase XLoad()
Update()Draw()
Anatomía de un Juego
Creando Space Shooter
Clases
SpaceShip
•Armas•Power Ups
•Etc.
Game1
1
*
La Clase SpaceShip
AtributosPosicionTexturaVelocidad
MetodosLoad(){}Update(){}Draw(){}
cargamos la variable textura
aplicamos la logica de movimiento
mostramos los resultados
Clases Anexas Fundamentales
• Vector2 – Vector3
• Texture2D
• GraphicsDevice
• ContentManager
• Keyboard
• GameTime
Clases en SpaceShip
• Debe ocupar un lugar en el espacio (Vector2)
• Debe usar una textura para ser representada (Texture2d y SpriteBatch)
• Debe responder al input (Keyboard)
• Debe poseer lógica al disparar los misiles (GameTime)