Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida edgar.sanchez@logicstudio.net.

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.
Tipos de software y su desarrollo
Arquitectura de Sistema de E/S
Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites
Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 5: Transformación y colisión de sprites
Desarrollo de Software empleando el Microsoft Solutions Framework MSF
Nuevas Características de Seguridad en ASP.NET 2.0
Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 3: Visión de los elementos de un juego
Francisco X. Fagas A. Intergrupo - Ecuador
Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 4: Introducción a los sprites y la animación
Windows Vista Herramientas de Diagnóstico. Auto diagnóstico en Windows Vista Beneficios de un auto diagnóstico proactivo Alertar al personal de TI de.
Microsoft Office System Acercando la Información para la Toma de Decisiones José Alania Valdez Consultor de Soluciones de Productividad
Módulo Tablero de Control Sesión X Lic. Aarón García López.
Desarrollo de software innovador con métodos ágiles
Escuela Santo Hermano Miguel
CAPACITACION PARA EL TRABAJO: INFORMATICA
DISEÑO ORIENTADO AL OBJETO
Portal Hacienda Digital
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
BIENVENIDO AL CURSO INTRODUCTORIO LIBREOFFICE IMPRESS 3.4.5
Presentaciones Servilleta
Tema 4. Diseño de un plan de actividad física y salud
2.02B Métodos y usos de la animación
Cruz Roja Mexicana Delegación León Curso de Introducción a Microsoft Word Francisco Jorge Valdovinos Barragán Agosto sección.
Diseño e implementación de un juego matemático de disparos en 3D y análisis de los dispositivos de interacción de 2D y 3D Vanessa Echeverría B. Iván.
Clasificación de las Computadoras
Introducción a la programación
Windows XP sp3.
ENTRENAMIENTO SOLIDWORKS - 45 H
Introducción a la computadora
1.  Contribuir a la competitividad de las empresas mediante la capacitación y actualización tecnológica de sus trabajadores y la mejora del proceso de.
POWER POINT Ing. Evelyn Riveros H..
Introducción a los SSOO Sebastián Sánchez Prieto.
Contenido Marco Histórico Competencias del Emprendedor
GAME MAKER. INTRODUCCIÓN Game Maker es un entorno para el desarrollo de juegos, creado en 1999 por Mark Overmars, profesor del departamento de Ciencia.
Sistema Operativo. ¿Qué es el Sistema Operativo? Un sistema operativo (SO) es el conjunto de programas y utilidades software que permiten al usuario interactuar.
Ing. Héctor Abraham Hernández Erazo
Prueba de concepto Entrega de respuestas a sus preguntas de implementación de Windows® 7 y Microsoft® Office 2010 Prueba de concepto Entrega de respuestas.
Computación Aplicada Facultad de Ingeniería Universidad Autónoma de Querétaro Ma. Teresa García Ramírez 1.
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
El Ordenador: Elementos Básicos
LENGUAJES DE PROGRAMACIÓN
Proyecto Fin de Carrera - ITIS
Clase #7 – Sistemas de Procesamiento de Datos
NUEVO DISEÑO SITIO WEB EXPLORA REGIÓN METROPOLITANA Resultados en cuanto a tráfico, posicionamiento y nuevas herramientas.
Tecnología e Informática
PROCESADORES Hardware y Software.
Proyecto de Fin de Carrera
Explicación de los Temas del Primer Período. Laura Rojas Pérez 13°A 2014.
Sistemas Operativos Antonio De León.
 El video juego puede definirse como un entorno informático que reproduce sobre una pantalla un juego cuyas reglas han sido previamente programadas.informático.
1.Qué es Outlook 2.Características principales de Outlook 3.Descripción de la pantalla de Outlook 4.Barra de menús 5.Barra de herramientas 6.Barra de Outlook.
TECNOLOGIAS ACCESIBLES
Tareas outlook Características Calendario outlook
1- Que es Outlook 2- Caracteristicas de Outlook
Microsoft Power Point Tema: “Como manejo del Power Point como herramienta estudiantil”.
Elaboración de algoritmos usando lógica de programación
Presentaciones con Power Point
PRESENTACIONES CON POWER POINT
GENERACION DE WINDOWS PROFESOR: Fernando Mejía. ALUMNO: Luis Eduardo Valenzuela Hidalgo.
Elementos y tipos de sistemas operativos
Introducción a GDevelop
UNIDAD I INTRODUCCION A LOS S.O.
ADMINISTRACIÓN DE REDES Planes de Migración. Migración En tecnología de información y comunicación, la migración es el proceso de la transferencia desde.
Métodos instruccionales
CONCEPTOS BÁSICOS DE COMPUTACIÓN
P O W E R P O I N T CONCEPTOS BÁSICOS 1.
Reinaldo Duque – Septiembre 24 de HABILIDADES DE APRENDIZAJE PARA EL SIGLO XXI DE INFORMACIÓN Y COMUNICACIÓN DE PENSAMIENTO Y SOLUCIÓN DE PROBLEMAS.
Aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda a los educadores a crear comunidades.
Transcripción de la presentación:

Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida edgar.sanchez@logicstudio.net

Agenda Visión de esta serie de webcasts Prerrequisitos de esta sesión Acerca de DigiPen Institute of Technology Información de la industria de juegos Visión de los componentes de un juego Demostración del flujo del juego

Objetivos de esta serie Dar a los participantes una introducción a algunos de los conceptos fundamentales del desarrollo de juegos Introducir la programación con Visual C# 2005 Express Edition, el nuevo IDE (ambiente de desarrollo integrado) de Microsoft para programadores principiantes

Visión de la serie Ocho sesiones de nivel 100: Visión del proceso de desarrollo de juegos Conceptos básicos de programación e introducción a C# Visión de los elementos de un juego Introducción a los sprites y la animación Transformación y colisión de sprites Control de los sprites por parte del jugador Música y efectos de sonido del juego Creación de comportamiento de sprites

Resumen de las sesiones Sesión 1 – Resumen del proceso de desarrollo de juegos Presentación del juego de demo (este es el juego que vamos a construir) ¿Qué son los “eventos concurrentes interactivos de tiempo real”? Cómo escribir una aplicación con eventos concurrentes Componentes de un juego Demostración del flujo de un juego Sesión 2 – Conceptos básicos de programación e introducción a C# Resumen Creación de la más simple aplicación de consola El método Main Los namespaces y la directiva using Salida Funciones, operadores y variables Entrada y condicionales Lazos y repetición Arreglos Estructuras y clases

Resumen de las sesiones Sesión 3 – Visión de los elementos de un juego Gráficos (2D, 3D, bitmap vs. vector) Entrada (teclado, ratón, palanca) Sonido (WAV, MIDI, MP3, Ogg Vorbis) Red (multijugador, cliente/servidor, igual-a-igual) Sesión 4 – Introducción a los sprites y la animación Fondo Viewports Animaciones Marcos Sprites Retraso de marcos Transparencia Alpha-blending Implementación en el juego

Resumen de las sesiones Sesión 5 – Transformación y colisión de sprites Traslación Escala Rotación Velocidad Implementación en el juego Movimiento del enemigo Sesión 6 – Control de los sprites por parte del jugador Entrada del teclado Dirección del vector Posición Creación de sprites al momento de ejecución Movimiento del carácter principal (teclas de flechas) Disparos (barra espaciadora)

Resumen de las sesiones Sesión 7 – Música y efectos de sonido del juego Efectos de sonido Música Texto Implementación en el juego Cuenta de disparos (balas) Efectos de sonido (disparos y explosiones) Música de fondo Puntaje (despliegue en pantalla) Sesión 8 – Creación de comportamiento de sprites Comportamiento de sprites Detección de colisiones Comportamiento del enemigo Comportamiento de las balas

Prerrequisitos de la sesión No se requiere experiencia previa en programación Aunque no es obligatorio, los participantes que deseen probar los ejemplos de juego pueden bajar los archivos de http://www.microsoft.com/events/series/msdnvideodev.mspx El resumen (en inglés) del contenido presentado en la sesión está también disponible en formato .PDF en http://www.microsoft.com/events/series/msdnvideodev.mspx

Acerca de DigiPen Institute of Technology Desde 1.994, DigiPen ofrece programas dedicados para estudiantes que desean seguir una carrera en la industria de los juegos Ubicado en Redmond, Washington, DigiPen ofrece los siguientes títulos: Master of Science in Computer Science Bachelor of Science in Real-time Interactive Simulation Bachelor of Science in Computer Engineering Bachelor of Fine Arts in Production Animation

Información de la industria del juego Gran negocio Hechos del 2.004 sobre la industria del juego, publicado por la Entertainment Software Association*: La industria de juegos de video generó casi $10.000 millones en ventas de hardware y software – las ventas de boletos de cine = $9.500 millones Más de 240 millones de unidades de computadores (45 millones) y juegos de video (160 millones) se vendieron en los Estados Unidos Las ventas de juegos portátiles excedieron los $1.000 millones por primera vez (42 millones de unidades) Las ventas de juegos en línea superan los $1.000 millones (principalmente deportes y disparos) Los consumidores de EE.UU. gastaron $723 millones en la renta de video juegos * The Entertainment Software Association (2004): ‘Essential Facts About the Computer and Video Industry’, disponible en http://www.theesa.com/files/EFBrochure.pdf

Información de la industria del juego Hechos del 2.004 sobre la “audiencia de juegos” publicados por la Entertainment Software Association*: El 50% de todos los estadounidenses de seis o más años juegan juegos de computador o video (edad promedio: 30 años) Aproximadamente el 90% de los compradores de juegos son mayores de 18 años El 39% de jugadores son mujeres Ventas de juegos de computadora y videos por clasificación: Todos 54%, Adolescentes 33%, Adultos 12% Los tres géneros más vendidos de consola de juegos: Acción 30%, Deportes 18%, Carreras 10% Los tres géneros más vendidos de juegos de computadora: Estrategia 27%, Entrenimiento familiar/infantil 20%, Disparos 16% * The Entertainment Software Association (2004): ‘Essential Facts About the Computer and Video Industry’, disponible en http://www.theesa.com/files/EFBrochure.pdf

Información de la industria del juego “El círculo de la vida” Los tres grupos principales: Desarrollador: responsable de la creación del software del juego; bastante como un estudio de cine, este grupo de producción de múltiples facetas esta hecho de productores, directores, programadores, artistas, diseñadores, escritores, músicos, soporte de TI y soporte administrativo Editorial: típicamente provee fondos a los desarrolladores (socio único, co-socio o tercero); maneja otros aspectos como la fabricación y el mercadeo Distribuidor/minorista: entrega los productos al consumidor Muchos desarrolladores dependen de las editoriales para los fondos -> las editoriales tienen que pronosticar lo que los consumidores querrán en 1-2 años y deben conseguir el compromiso de los minoristas -> Los minoristas observan a los desarrolladores para ver que es lo último y mejor

Información de la industria del juego Negocio serio Los juegos de hoy en día son piezas de software extremedamente sofisticadas que ofrecen Ambientes 3D y caracteres increíbles Modelos físicos reales Capacidad de red Tecnología de sonido ambiental total Inteligencia artificial avanzada Puede tomar más de dos años completar un juego, con 20-30+ personas involucradas. Esto puede equivaler a $8-$10+ millones para la producción. Una producción de $8 millones a $40/unidad: 200k unidades solo para recuperar los costos Relativamente pocos juegos pueden vender más de 100k unidades

¡Juguemos!

Interacción concurrente en tiempo real ¿Por qué concurrente? Las balas, enemigos, efectos de sonido, música y otros elementos del juego existen y se mueven al mismo tiempo. Lista de eventos coincidentes en este juego: Scrolling del fondo Revisar el teclado por si hubo teclas presionadas (flechas, etc.) Calcular la nueva posición para la nave Probar si la tecla de disparo ha sido tocada Crear una bala y tocar el efecto de sonido de la bala Calcular la nueva posición de la bala Calcular la nueva posición de cada enemigo Detectar colisiones entre la bala y cada enemigo Tocar el efecto de sonido si la bala golpea a un enemigo Presentar una animación si la bala golpea a un enemigo Tocar la música de fondo Actualizar los puntajes Etc.

¿Por qué interactivo? El jugador decide cuándo y dónde mover la nave El jugador decide cuándo y dónde disparar una bala La Inteligencia Artificial del juego decide cuando atacar El número de balas se incrementa cada vez que se dispara una El puntaje aumenta cada vez que se golpea a un enemigo El enemigo explota cuando es tocado por una bala Etc.

¿Por qué en tiempo real? Cuando la nave se mueve, su nueva posición es calculada al momento de ejecución La colisión entre la bala y el enemigo es detectada al momento de ejecución La nueva posición de cada enemigo es calculada al momento de ejecución Los textos son actualizados al momento de ejecución Etc.

¿Cómo se escribe una aplicación con eventos concurrentes? Se necesita ejecutar varias conjuntos de instrucciones al mismo tiempo Sería bueno tener un CPU para cada evento Pero usualmente tenemos un solo CPU para todos los eventos Es necesario compartir el CPU entre todos los eventos Hay que darle un poquito de tiempo de CPU a cada evento El jugador tendrá la ilusión de que los eventos están ocurriendo simultáneamente Esto es bastante similar a como funciona una película (por eso es que en inglés se llaman también “foto en movimiento”)

El lazo del juego Se necesita repetir los pasos requeridos que hacen que el juego parezca “moverse” ¿Con qué frecuencia se deben repetir estos pasos? La duración del “lazo” afecta la velocidad del juego Cada lazo o iteración del juego se denomina un marco o frame La tasa de velocidad es conocida como el frame rate

Flujograma del lazo del juego Iniciar el juego Iniciar el tiempo de arranque Leer entradas del jugador/a Manejo Calcular la nueva posición de cada objeto basándose en: Comportamiento Colisión Física Inteligencia Artificial No Dibujo Generar la imagen de un objeto a la vez en un buffer ¿Es el tiempo transcurrido < 16,66 ms? Copiar el contenido del buffer a la memoria de video para que se despliegue el frame Si No hacer nada

Cómo agregar interacción con eventos concurrentes Detectar entradas del usuario Ejecutar el comportamiento de cada objeto Actualizar la posición y el estado de cada objeto Generar las imágenes de los objetos Todas las actualizaciones y generaciones se hacen en cada frame Por ejemplo, en un juego de 60 FPS, todos los objetos son actualizados y generados 60 veces por segundo Esto es lo que esencialmente da la ilusión de concurrencia

Resumen de la sesión Visión de la serie de webcasts Prerrequisitos de la sesión Acerca de DigiPen Institute of Technology Información de la industria de juegos Visión de los componentes de un juego Demostración del flujo de un juego

¿Deseas aprender más? DigiPen Institute of Technology ofrece una variedad de vías para explorar una carrera en el desarrollo de juegos de video: La serie original de webcasts sobre desarrollo de juegos - Realizada en mayo del 2005. Se puede ver en http://www.microsoft.com/events/series/msdnvideodev.mspx Talleres de verano – Series de clases introductorias en programación de juegos, producción de animaciones 3D y robótica. Más información en http://workshops.digipen.edu ProjectFUN Distance Learning – DigiPen tiene cursos en línea impartidos por sus instructores. Más información en http://projectfun.digipen.edu

Preguntas y respuestas Proponer preguntas usando el botón “Ask a Question” No te olvides de llenar la encuesta Para webcasts futuros y pasados (en inglés) http://www.microsoft.com/webcasts Para webcasts futuros y pasados (en castellano) http://www.microsoft.com/spanish/msdn/latam/video Este webcast fue presentado usando Microsoft Office LiveMeeting. Se puede obtener una prueba de 14 días gratuita en http://www.microsoft.com/presentlive

Conceptos básicos de programación e introducción a C# Nos vemos la próxima semana para… Conceptos básicos de programación e introducción a C#

¿Dónde se puede obtener MSDN? Llenar la encuesta al final del webcast y pedir a un representante de Microsoft que le contacte Convertirse en un suscriptor de los CDs/DVDs de MSDN en http://msdn.microsoft.com/subscriptions