Project Marble [version 0.017](Updated JUNE 27))

Project Marble
a game inspired by marble madness

I am looking people to alpha test my game. (.blend)

controlls:
movement = WASD
speed up = M

what I want need feedback on:
-level design
-the physics settings I’ve used
-my python scripts-especially the documentation

Things that I don’t need feedback on:
-art style -there basically is none yet

-the current menu system design -it’s just there to make the game playable at this point

-the shadows are a little messed up

Here are the first three levels:




I plan to add local co-op, as well as many other small features.

history:

version 017

</b>-added level 5
-reduced player mass from 20 to 10
-increased gravity from 9.8 to 19.8
-some code rework that I can't remember<b>

version 016

</b>-removed movement damping.
-increased rotational damping from 0.99(1%) to 0.98(2%).
-increased falling time required to "die" from 1.3 seconds to 1.9.<b>

version 015

</b>-shadow lamp now moves on a grid to avoid shdaow artifacts.
-camera now eases toward the players new position upon player respawn.<b>

version 014

-added level 4
-camera moved farther away from player to remove clipping when the player falls off the play surface
-reduced the size of most save zones by about 10%
-removed player health. the player will no longer take fall damage.
-reduced movement damping from 0.96(4% per tick) to 0.98(2% per tick)
-reduced rotational damping from 0.98(2%) to 0.99(1%)
-changed window size from auto desktop full screen to 1024x768 windowed.
-added m as an alternate keybinding for computers without right CTRL

version 013

-First alpha release

I tried this out the other day, and forgot to leave a comment!

The game itself runs very well. No crashes/glitches/noticeable bugs. I like how you preserved the isometric projection from the old Marble Madness. It’s kind of disorienting at times (like staring too hard at an Escher drawing) but not in a bad way.

One big gripe I have is there is no documentation on the player controls! Even a readme text block loaded up in the editor when you open the blend file would work at this early stage. I had to go through your code to figure out how to play your game. Not good! But easy to fix.
(I noticed you did add controls to your OP, but you need something in the blend file if you haven’t put it there already)

Level Design: Solid all-around. I had a lot of trouble with the first obstacle (the double-ramp) until I learned of the Ctrl key! Once I did that, I found I was holding Ctrl pretty much the whole time I was playing. Maybe you only need one ball speed, and make it fast?
The third level was my favorite. I don’t know quite why, but I really felt driven to try to do well on that level, looking for shortcuts, optimal paths, and ways to get through tight areas without losing momentum.
It will be cool to see more of the things from Marble Madness, specifically the ‘enemies’. The green slinky-tube things that ate your ball were always my favorite :wink:

Physics: The ball damping mechanic does not feel right to me. It’s as if you’re rolling your marble through sand. I simply commented out the lines that applied damping motion (along with a couple other tweaks on the balls physics) to make it so the ball preserves all (well, most) of its inertia. Makes the game a bit more challenging, but feels much more natural/satisfying.
Also, it would not be hard to implement mouse-based ball motion. Something which emulates Marble Madness’ trackball control. It could be almost identical to a mouse-look script (snap the mouse to center screen after measuring its deviation from the center and translate to movement) but applied to ball Torque rather than camera rotation. If you need help with that, I could probably write something up for you…

Scripts: For what they are, they are clean, organized, and for the most part totally readable. Your script is on the ‘basic’ side (ie you could probably generalize/optimize a lot of what you have with some more advanced python stuff) but it appears to be doing exactly what it intends to do, and that’s what’s important in the end! I am no expert in python myself, so I don’t feel qualified commenting too much about other people’s scripting methods :wink:

Over-all, a good solid start to a game! You should keep going with this. You’ve been putting a lot into this it seems, from your activity on the forums, and what you have now might not look like much in the grand scheme of things, but you have a foundation built. And that is an accomplishment.

first of all, THANK YOU! I didn’t expect such a detailed first comment. I would love to have feedback like this on a regular basis!

do you know of any good examples of this? I haven’t taken the time to look through almost any other games created in blender, and so I have no idea what a good readme looks like.

I want to build on the shoulders of Marble Madness, not create a remake. This is why you probably won’t see the slinky-tube things in my game. the only enemy I have definitive plans for is the black marble enemy. they probably won’t be black, and I may add my own AI. I’m not sure yet whether or not I will have other enemies.

The damping should only be active while the player is not pressing and directional buttons (WASD). I want the ball to stop eventually when there is no player input. if I get more comments on the damping, I will rethink using damping the way I am at the moment.

I’ve only played the sega genesis version of Marble Madness, so your idea did not even occur to me. I will give it some thought. perhaps an alternate control method?

:):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):slight_smile:


I remember pinching my hand in those things all the time. Introduces an element of real danger to the game!

If you do want to retain dampening, it wouldn’t hurt to reduce it some. Right now it’s at 0.96; try something like 0.996.

For movement: I would suggest having the ball’s motion based on Torque rather than Force. Torque along with the friction of the surface it’s rolling over will give you the directional force, and allow the player to do all sorts of fun things like ‘hook’ the ball, or generate back-spin.

Long ago, I attempted to make something like this in Blender. Unfortunately, I don’t have any of those old files any more, or else I would have a good example at hand to show you what I mean.

Give me some time, and I will see if I can write up a prototype ball-rolling rig, real quick-n-dirty like.

marbletest1.blend (955 KB)

Here we go!
WSAD rolls the ball
QE Spins the ball on the Z axis

Mouse motion also rolls the ball. Be careful about moving the mouse around when you first start the game, or you will go zipping off when you hit the ground!
Hold right mouse button to spin the ball with left/right mouse motion.

There are three materials on the ground, all with different frictions. The green tries to simulate grassy turf (like a putting green), the brown is polished wood (like bowling alley flooring), and the white is ice.

that’s really cool what you did with the mouse motion. I don’t think I would use a movement system like that, but I’ll keep your example in case I change my mind.

Nice!

My thoughts are:

  • How is minimal not an art style? :slight_smile:
  • Make easy levels in the beginning (playable without speedup)
  • Add controls info into game
  • Don’t force fullscreen
  • Rather than making the camera jump, move it back using easeInOutCubic on reset
  • Indicate checkpoints and reward for reaching them (sound or animation or both :slight_smile: )
  • I have a hard time seeing where is what, shadows might be able to help me. Maybe.

Thanks for the video! I will find that very useful

I intentionally created an obstacle that requires the speedup on the very first level to make sure the player knows about it before going any farther. I intend to add something to the first level to show what the controls are.

yeah, I think thats probably a good idea. I’ve changed it to be 1024x768 windowed.

cool website and great idea. I think I’ll add that eventually.

nah, I like how I have the check points.

a friend of mine said the same thing. I’ll add shadows to either my first update or the next.

I like marble games. But my laptop keyboard has no right CTRL. ;(
Maybe you could use a different key for players with similar keyboards.

did your laptop come without a right CTRL or did it break? I plan on making the controls reconfigurable. for now, I will add a second key for the speed up.

Be cautious about dismissing other people’s suggestions.
You don’t want to make the game that you want to play, you want to make the game that we (that includes you) want to play.
Otherwise you would not be sharing it with us with the intention of feedback :wink:

I agree with qubodup that the first level needs to be a little easier on the player. I suggest adding a section preceding where you start. The first level seems a little too small anyway, and could afford to be expanded.
Make some sort of small ‘playground’ area to start the player in. Wall off the edges and make it so you can’t accidentally fall off. Give us a couple ramps to scoot around on to get a feel for the motion. Then, in the middle of the playground, put something like the mini-golf hole you have on level 2, which brings you to the game proper. Maybe put the hole in the middle of a small mound, so the player has to work a little to get their ball up to it. If the player is a veteran and already know what to do, they can roll straight for the hole and get on with the game. Otherwise, they get a chance to play around as much as they like without fear of failure, until they decide they’re ready to take on something more challenging.

perhaps I worded my response wrong. it’s sometimes difficult to convey your thoughts over the internet. I hope qubodup didn’t think I was being dismissive. I consider every suggestion I read here. I don’t dismiss anything out of hand, unless it’s someone trolling. thankfully I’ve yet to deal with a troll on these forums. I love this community!

for now, I don’t plan on adding something like what qubodup suggested. in a game where there is a large distance between save points, I would agree that making them visible to the player would be a good design choice. in my game, however, these save points are everywhere. in almost every case, the player cannot get from point a to b without passing through them. I am, as always, open to having my mind changed by a persuasive argument to the contrary.

I think you’re right. I will probably wait until I have the next three levels designed before I come back to this however.

Nice is the ice in Level 3,
I don’t even know how happy to be,
But the point, hard as nut, in Level 2,
Will make problems for me and you too!

However, yeah- the design could be
Textured as marble or trousers of me:D
However, the gameplay is quite fun
But levels could be for each single fan!

I suck at rhyming in English
As well as Spanish, French and Brittish

Absolutely not! :slight_smile: And “you want to make the game that we (that includes you) want to play.” sounds too much like “try to please everyone” too :wink:

The hardness of the first level didn’t keep me from trying out the other levels. But my read-before-start-laziness did keep me from finding out that there is a boost feature. :slight_smile:

here is my progress so far with Level 4:

My laptop keyboard has no right CTRL. It’s a Surface Pro 1.

You will probably have to muck with it to have it work in your particular case. You probably want a more defined shadow with less fall-off as the ball goes upward. The original file is supposed to simulate AO, which only occurs when the caster is very close to it’s receiver.
Right now, the lamp is parented to the cube. I’m sure you can guess what this would look like on a rolling object :wink:

I think, you would want the shadow lamp to be a seperate object, which copy’s the ball’s X and Y position. Then have a ray cast down from the ball to get the Z position of the floor, as the lamp should stay a uniform distance from the floor it’s projecting from.

well done, but not what I was looking for. I’ve been experimenting with the “variance” shadow buffer, and I like the results. I realized I can’t use baked shadows on my fourth level because of all the movement. I might as well just use the same type of shadows on all the levels.

This is looking kinda cool! I always wanted to make a game, maybe I should give it a try :wink:

you already know blender quite well. that’s already half of what you need to know. moving onto the game engine wouldn’t be much of a leap for you.

I suggest watching some stuff from ExtraCredits. especially these:

Making Your First Game: Basics - How To Start Your Game Development
Making Your First Game: Practical Rules - Setting (and Keeping) Production Goals