Estructura de programación Blitz3d

Buenas tardes.

Estoy realizando un videojuego en Blitz3D y al principio empecé a programarlo todo dentro de la misma función y así me funcionaba perfectamente. El problema está cuando el código se va alargando y complicando y necesito dividirlo en funciones diferentes como el personaje, el escenario, el enemigo, para poder hacer llamada a cada una independientemente y así poder ir multiplicando el número de enemigos, etc.

Primero creo las funciones con su código ordenadamente y me aparecen dentro de la lista de funciones que he creado, pero al hacer llamada a todas ellas desde una principal solo se ve en pantalla la primera de todas ellas. Supongo que porque no se estructurar el código bien y no sé dónde colocar Renderworld, Updateworld y Flip.
¿Todas las funciones deben llevar esos tres procesos o solo una principal? ¿Cómo hago llamada a las funciones para qué aparezcan todas?
Lo estoy haciendo así:
Graphics3D 1024,600,32,1
SetBuffer BackBuffer() ;
Función1() Función2()
End.

Function Función1()
Mundo1=LoadMesh(.)
Textura1=LoadTexture(.) EntityTexture Mundo1,Textura1
PositionEntity Mundo1,0,0,0
Camara=CreateCamera()
PositionEntity Camara,0,0,0
While Not KeyDown(1)
UpdateWorld
RenderWorld
Flip
Wend
End
End Function.

Function Función2()
Personaje=LoadMesh(.)
Textura2=LoadTexture(.)
EntityTexture Personaje,Textura2
PositionEntity Personaje,0,0,0
While Not KeyDown(1)
UpdateWorld
RenderWorld
Flip
Wend
End
End Function.

Solo me aparece la primera función y nada más. Un saludo.

Ver más sobre el tema y los comentarios en el foro