Marble Madness

Blitz3D Forums/Blitz3D Programming/Marble Madness

PaulJG(Posted 2003) [#1]
Can anyone here remember back to marble madness, and how the controls related to the ball ?

I'm 'trying' to write a sort of simular game that uses the same control system.

But I'm not having much luck - I'm playing the MegaDrive version, which is just so blocky its hard to work out what's happening. (The mame version doesnt work too good without a rollerball !)

I'm not after code or anything..(be handy though ;) )- just some general ideas on how to impliment the same control. (but in a true 3d enviourment)

Any ideas/thoughts guys ?
Thanks. Paul


Mark Tiffany(Posted 2003) [#2]
The controls were kind of 'Thrust' like, in that each directional control caused accelleration in that direction. i.e. you hold down left, and that increases your speed in one direction, to a maximum point. Then if you hold down right, it slowly decreases your speed in one direction, and eventually stops, then increases in the opposite direction.

Of course, because of isometric display used, that then translates into different on-screen directions. e.g. left=diagonally up+left.

Is that what you meant?


PaulJG(Posted 2003) [#3]
Yeap. Had a rough idea - just thought I'd throw it around.

Seems though that it only works on 4 directions. (so you could easily reverse a direction)

Not sure if it would work in true 3d ???. Being able to move at any angle just might cause problems with reversing !?.

Guess I'll have to codeup some tests.


soja(Posted 2003) [#4]
Well, in the first Marble Madness, your controller (trackball) could only "thrust" along the X and Y planes. The marble's position on the Z plane (up and down) was only affected by the grade/level of the floor and gravity, right? Wouldn't that work even in a completely 3D world?

Keep in mind that most controllers are not suited very well to map to 3D space, either... If you truly want 6 "thrust" directions, it shouldn't be hard to add two more, but you may have to think about the physical controls.


simonh(Posted 2003) [#5]
http://www.setpixel.com/content/?ID=22


smilertoo(Posted 2003) [#6]
Using the mouse isnt much different from the trackball if you turn up the sensitivity.


PaulJG(Posted 2003) [#7]
Thanks guys - good find Simon !! :)

My problem is gonna be to do with a swinging camera, I think its gonna make a huge difference as to what direction you'd expect to move in - and what it is actually set at. (if ya see what I mean !? )

Still, its given me some clues, and my game isnt a true marble game - just very loosely based on the controls of it.


soja(Posted 2003) [#8]
My problem is gonna be to do with a swinging camera, I think its gonna make a huge difference as to what direction you'd expect to move in - and what it is actually set at. (if ya see what I mean !? )


Yes, I think I do see what you mean. Are there any restrictions you can put on the camera itself to fix the problem? Perhaps, always viewing from the same horizontal angle, or horizontal range? As the camera revolves around the object, you can always rotate the control axes, so that, for example, moving right on the controls always results in the object moving right relative to the viewport. This is how many (most?) 3D games do it. (I'm thinking of a lot of platformers right now.)

simonh, that was a very nice article you linked to.


NeuralizR(Posted 2003) [#9]
Yeah, very nice simon. :P


IPete2(Posted 2003) [#10]
PaulJG,

Check out the archives there is a code snippet which controls a ball on a surface very nicely, if you want to look into how someone else has approached controlling a ball. I think another one exists with mouse control too.

IPete2.


Anthony Flack(Posted 2003) [#11]
You might want to have a look at garagegames' "marble blast", too.


cyberseth(Posted 2003) [#12]
The best thing IMO to do when using a 3D camera, for moving a marble, is to make it like the football games where up/down/left/right are translated to the actual directions as seen by you.

So, if the user presses up, you move the player forward relative to the camera's direction. If the user presses left, you move the player left relative to the camera, (ie EntityYaw(camera)-90 ) Of course, when the camera turns, the direction corresponding to the cursor keys changes so if you keep holding down left you end up running around the camera.

This is the same kind of movement system used in sports games like Actua Soccer.