Gracias por compartir vuestras ideas, son muy útiles.
Como les dije, el tema de la galaxia y los planetas es sólo un ejemplo.
Quiero entender la esencia del concepto de cámara para abandonar otros frameworks y usar sólo pascal y BGRABitmap.
Por ejemplo en un engine clásico de una forma u otra (independientemente del lenguaje) esto suele ser algo así:
FUNCTION UPDATE(
IF KEY(A) PLAYER.X=PLAYER.X-V
IF KEY(D) PLAYER.X=PLAYER.X+V
)
FUNCTION DRAW(
CLEARSCR()
CAMERA(PLAYER.X,PLAYER.Y)
)
Ya tengo solucionados los eventos, matemáticas, colisiones, sprites , animaciones, sonido etc. Sólo me falta la CÁMARA !! (quizás tambien falte el gamepad)
En otras palabras,
*) Si el juego o aplicación ocurre en una ventana delimitada (breakout,pang,invaders) estoy listo. (incluso tengo un pequeño motor de partículas al 90% que funciona en BGRABitmap(CPU Y GPU) y Castle Game Engine con resultados muy buenos ).
*) Si el juego o aplicación ocurre en un mundo estoy en bragas (pinball,platformer,RTS,point&click,etc).
Necesito un concepto sólido que pueda ir mejorando hasta conseguir una cámara que pueda seguir objetivos,rotate,zoom,shake,etc.