collision would only be an issue of you added as a limb. If you instance, I think each object still has its own collision sutff...
Why on earth are you limiting to 30fps?! Is this "so it can run at the same speed on everyone's PC"? If so, seriously (PLEASE) look into timer based movement... I find it often works out easier in the long run..
This is my standard code template I use:
sync on
sync rate 0
frameTime# = 1.0
startTime = timer()
do
frameTime# = (frameTime# * 0.8) + ((timer() - startTime) * 0.2)
startTime = timer()
sync
loop
In the main loop, if you wanna make something move at 1 unit per second (on ALL PC's!!!) then you'd do:
MOVE OBJECT 1, frameTime# * 0.001
Now, the *0.001 bit is because frameTime# is in milliseconds not seconds... Now if you have a speed variable (so, for exameple, you could get a powerup and make increment the players speed by 0.1 or something), you'd do:
MOVE OBJECT 1, frameTime# * 0.001 * speed#
Turning is just as easy, just multiply 0.001 by the amount of degrees you want per second, so a full turn every second would be 360 * 0.001 = 0.360
TURN OBJECT LEFT 1, frameTime# * 0.360
Its SUPER usefull to be able to do time based movements.. Also, bear in mind that the higher the framerate, the better your collision routines will be. If you have a low fps (30 is very low) then your "steps" for movement will be larger and you are more likely to be able to step past small things. Higher framerates uses smaller steps to achieve the same overall speed and so you're less likely to step over something... Its like saying 10*10=100 and 100*1=100. 10 steps of 10 gets the same distance and 100 steps of 1, however the 100 steps of 1 will give you 10x more "resolution"..
If you need anymore help with this - lemme know
Nick
My Website: