I created an engine to use as a space battle sim(Multiplayer) which is going well, but though i'm not to this point yet I wanted to collect ideas in advance since i'm still not clear on how i'm going to do this(but I know it can be done in one way or another). Here's the trick....
If a player has a collision with a planet, it's going to show a short video of his ship going in for a landing, and then switch to almost another game, but with the same stats. It will then load a level of his ship parked on the surface of a terrain, and him driving around in a little rover with a cannon, able to shoot other rovers. If he collides with his parked ship with the tank...once again a video will show him taking off and it will go back to where he left off on the space sim part of it.
I know how to handle the FPS part of it, but not clear if i can go from level to level like this without disturbing my main space sim loop. I thought about just placing the FPS part of it somewhere in 3D space outside the space sphere. But before i went to far into it, thought i'd get some suggestions from the community first. I'm also not clear on how i'm going to switch screens and views so quickly, especially with two different loops going on(assuming thats the case). When this project is complete, I plan on posting all of it's code up here for others to learn from(I see alot of requests for space sim MP code). In the meantime, if anyone needs to see my space sim code, just say so and i'll post it up here. As of right now, here is what my loop looks like so you can get an idea of what i'm working with...
gosub globals
gosub mode
gosub display
gosub camera
gosub lights
gosub loadobjects
gosub visorobject
gosub speed
gosub createbullets
gosub setupexplosions
gosub loadlevel
gosub loadsounds
`Begin Loop
DO
if keystate(20)=1 then gosub Target
gosub Intercept
gosub find
gosub BattleshipLoop
gosub whosonline
gosub getposition
gosub hits
gosub stats
gosub speedcontrol
gosub Navigation
gosub shoot
gosub triggerexplosions
gosub setcamera
gosub skyboxpos
gosub NMI_CONTROL
if TConnected() then HandleNetwork()
tsync
sync
LOOP