1 / 27

Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida

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

davin
Download Presentation

Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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 • Fondo • Sprites

  7. 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 • Implementación en el juego • Movimiento del carácter principal (teclas de flechas) • Disparos (barra espaciadora)

  8. 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 • Implementación en el juego • Comportamiento del enemigo • Comportamiento de las balas

  9. 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

  10. 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

  11. Información de la industria del juegoGran 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

  12. 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

  13. 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

  14. Información de la industria del juegoNegocio 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

  15. ¡Juguemos!

  16. 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.

  17. ¿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.

  18. ¿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.

  19. ¿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”)

  20. 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

  21. Flujograma del lazo del juego Iniciar el juego Iniciar el tiempo de arranque Leer entradas del jugador/a ManejoCalcular la nueva posición de cada objeto basándose en: Comportamiento Colisión Física Inteligencia Artificial No DibujoGenerar 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

  22. 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

  23. 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

  24. ¿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

  25. 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

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

  27. ¿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

More Related