Download SDL + OpenGL: MotorJ

Document related concepts
no text concepts found
Transcript
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