SDL + OpenGL: MotorJ
Transcripción
SDL + OpenGL: MotorJ
SDL + OpenGL: MotorJ Alejandro Valenzuela Roca FI - LIDSOL Motor/Framework de creación de Videojuegos desarrollado con Software Libre Temas de la plática Introducción ¿Qué tiene un framework para hacervideojuegos? ¿Qué necesito para hacer videojuegos? Radiografía de un videojuego Ciclo principal de un videojuego Lectura de controles Actualización y cálculos Representación gráfica Código 2 Introducción En un principio, un videojuego podía ser hecho por una sola persona En la actualidad se requiere una multitud de personas para hacer un juego comercial Sin embargo, es posible aprender a hacer un videojuego básico de manera individual La ventaja principal de un motor de videojuegos libre es que se puede ver completamente cómo está hecho Otra ventaja (que viene del Software Libre) es que es “a prueba del tiempo” (es posible adaptarlo a sistemas operativos/bibliotecas/hardware futuro) 3 ¿Qué tiene un framework para hacer videojuegos? Es un conjunto de herramientas y bibliotecas que facilita la creación de un videojuego Conectividad con la plataforma Generación de gráficas Generación de sonido Conectividad multijugador Facilidades para realizar los procesos matemáticos (detección de colisiones, etc) Soporte de Inteligencia Artificial (autómatas para los enemigos, etc) Soporte para cargar los “assets” 4 ¿Qué tiene un framework para hacer videojuegos? MotorJ: Conectividad con el Sistema Operativo: SDL Generación de gráficas: OpenGL Generación de sonido: SDL_Mixer Detección de colisiones básica Soporte de carga de texturas básicas Varios objetos implementados en código Próximamente: Soporte para multiplayer Soporte para autómatas básicos (enemigos) Soporte para cargar objetos 3D 5 ¿Qué necesito para hacer un videojuego? Hardware Computadora decente CPU 800+ Mhz 512 MB RAM Tarjeta aceleradora de gráficos Software Herramientas de desarrollo Compilador Modelador Bibliotecas Generación de gráficos Generación de sonidos 6 ¿Qué necesito para hacer un videojuego? Conocimientos Álgebra lineal Geometría analítica en el espacio (gráficas 3d..) Programación Estructuras de datos Cinemática Personales Paciencia Perseverancia Ganas de aprender Ganas de ser autodidacta 7 Radiografía de un videojuego Plan “Assets” Arte Contenido visual etc. Programación Motor Herramientas Finanzas, etc. 8 Funcionamiento de un motor de videojuegos Esquema interno Inicio Menú Inicializar variables Lo que cubre esta plática Mainloop No ¿Salir? Sí Fin Game Over 9 Mainloop Básico (Implementado en MotorJ) Inicio Leer controles del usuario y alterar variables “de control” en base a dichos controles Actualizar variables “de juego” en base al estado previo y al tiempo transcurrido; como el Mainloop es precisamente un ciclo, este tiempo transcurrido será el tiempo entre la última vez que se corrió este mismo bloque y “ahora”. Mainloop If (control.circle.pressed){ acelerar = 1; } Calcular (entre otras cosas) V pos Representar al universo de manera gráfica (pintar un frame con la información pertinente que le muestre al jugador lo que está pasando) Fin Sí ¿Salir? No Dormir ZzZzZz... 10 ¡Muchas gracias por su asistencia! Más info: http://www.lidsol.org ●http://wiki.lidsol.net/ ●http://wiki.lidsol.net/wiki/index.php?title=MotorJ (Hay un enlace al repositorio) ● Alejandro Valenzuela: [email protected] ●Blog: http://mexinetica.com/~lanjoe9/bloginetica ● Gracias por su asistencia 11