Hello everyone!
This has been my long-term project over many years. How long, you may ask? Look at my join date on the forums, and know that I bought DBPro to make this game! It should be much further along than it is, you can read why that is the case on my blog if you are interested enough. Even though a lot of work has gone into it already (6000+ and 7000+ lines of code), there is a lot of work left to do. But at least I am confident enough in the proof-of-concept to release something.
It is called Marble Maze Construction Set. It is a 3D Marble Platformer inspired by the classic game Marble Madness. There are key differences between the two and their gameplay. The main difference being how the marble responds to player input. One of the main complaints about Marble Madness is how short it is -- you can beat the entire game in under 5 minutes. The "construction set" portion of the name is because one of the key design points of my game is the inclusion of an easy to use level editor to make new levels.
Screenie:
You can get the Alpha here:
http://www.funcygames.com/downloads/MarbleMazeAlpha.zip
http://www.funcygames.com/downloads/MarbleMazeAlpha2.zip
http://www.funcygames.com/downloads/MarbleMazeAlpha3.zip
What I have used so far that I can remember:
Newton Physics Wrapper 1.53 (of course!)
Matrix Utility DLLs (from IanM)
Deimos Archive DLL (from pinkbile)
BlueGUI (from RobK)
Milkshape3D for models
Here is the readme:
**************************************************
*** Marble Maze Construction Set Alpha 3 ***
**************************************************
Version 1 Released 01/01/2011
Version 2 Released 01/31/2011
Version 3 Released 06/01/2012
Paul Apgar
[email protected]
Thanks for trying out Marble Maze Construction Set, while it is in an Alpha stage. Here are the controls for the game and editor.
*** GAME ***
- Level picker screen:
Click on a level to select it
Click on it again to play that level
ESC = exit game
- Level:
1,2,3,4 = Camera views
Space = Pause
WASD = Marble movement
Mouse = Camera movement
~ = Debug view (Newton)
ESC = return to level picker screen
*** EDITOR ***
Input:
Left click places selected item on the map
Right click will rotate selected item (tiles and widgets where applicable)
Right click/drag will move the window view of the level
Left click on minimap will move the window view to that location
Click on a button to select that item
CTRL-Z and CTRL-Y for Undo and Redo (needed once per tile/item)
~ = Show tile height
Mouse wheel = increase/decrease tile height
*** THINGS TO TRY ***
Make cool levels and share them with others on the forum!
Make more than 14 levels so you can test scrolling in the level picker screen.
Report any bugs/crashes you find
Please provide suggestions on improving the game
*** KNOWN ISSUES ***
Bounce tiles can sometimes be unpredictable in the trajectory
Restarting should really rebuild fallen items that are necessary for the level
*** VERSION SUMMARY ***
* ALPHA 3 *
- Added Gems and Coins
- Added two Enemies (random whirlygig and chase whirlygig)
- Added moveable objects: boxes, planks, sticks, balls
- Added Blackhole and Whitehole widgets
- Added ability for Arrows to go on flat slopes
- Added small speed arrow
- Added an obstacle system (shape with collision)
- Restart widget is a SINGLE TILE size now
- Minimap graphics for level picker screen
* ALPHA 2 *
- Fixed crash on level picker screen when clicking below last item
- Fixed crash in Editor when rotating a Catapult which reaches outside grid
- Added zone-based Restart widget for marble to restart upon falling
- Added gems (blue/red/yellow) to editor and game
- Increased camera speed and made it a config file option
- Increased simulation speed for a faster game by 30%, due to popular demand
- Removed ESC key as exit in Editor
* ALPHA 1 *
- Initial release!
Here is a big-picture view of what still needs to be done to get to some sort of "beta stage":
========================
TO DO
========================
(Editor) Paging support on Tabs
(Editor) Level info popup (Name, Type, etc.)
Music
Sound effects
Campaign file for loading a sequence of level files
Title Screen (basic)
5 Levels showcasing all the game engine’s mechanics
Widgets are things that physically affect your marble. Here is a master list of widgets I've come up with. Currently there are only 5 widgets done in this Alpha release. Plenty of room for more ideas, too.
========================
MASTER WIDGET LIST
========================
CATAPULT
This takes up 4x1x2 tile size. The action works off contact and a countdown
timer. 4 seconds after a player object touches the stem/cup of the
catapult (active part), the catapult will fire. There may be different
strengths of catapults.
BUMPER BARS
This takes up 1x1x2 tile size. When player contacts one of these it will expand
visibly, but basically it is just a high Elasticity object that bumps the player
in the opposite angle of impact.
VACUUM
The size is 1x1x3 which is a box. This will suck the player towards it, in a
certain direction only. Outside the vacuum zone the player is unaffected. It
can even go on top or touch the sides of the vacuum. Only the vent of the
vacuum is affected. The typical "zone" will probably be 3x1x2.
FAN
The size is 1x1x3 which is a box (or a fan model?). It is the same as vacuum except propels
the player away instead of towards the vent.
OSCILLATING FAN
If using a standing fan model, the fan could also oscillate for some cool timing effects.
BLACK HOLE
The size is 1x1x2 but probably smaller than a tile. No matter what angle the
player is at, the black hole will attract it. The force of attraction gets
stronger the closer the player is to it.
REPELL (WHITE HOLE)
The size is 1x1x2 but probably smaller than a tile. It is the same as black hole
except pushes the player away. Even when player is above it, it should be
possible to push the player away.
SPEED TILE
The size is 1x1x1 and it is flat on the floor tile. It pushes the player in a
certain direction quite rapidly.
TIMED LASER
This is a pair of laser emitters (generator and receiver) that can be up to 5
tiles apart. The emitters themselves are just 1x1x2 size. Every so often
laser/lightning will shoot out and will damage the player if contact is made.
TRIGGER LASER
This is same as timed laser, but the laser is triggered by marble being within
a certain "zone".
LIFT TILE
This is a regular 1x1x1 tile size, when the player rolls onto it it will pop up
with quite a bit of force, propelling the ball in the air straight up. It should
look just like a regular tile. (The goal is player shouldn't know a regular tile
from a lift tile.) Perhaps varying strengths.
SPINNER TILE
This is a regular 1x1x1 tile size, when a player rolls onto it it will start
spinning which should move the marble in a somewhat random direction. It will
be invisible until it starts spinning (when player is near the center of it).
Otherwise it will basically be an invisible flat disc on the tile. Maybe it will
display a "twinkle" graphic every 5 seconds or so, so the player can avoid it
if they pay attention?
PLATFORM ELEVATOR
This is a regular 1x1x1 tile size (maybe shaped a little bit) which
is a platform that rises along a track and goes up side of wall to top. That fact
is REQUIRED. The lift will raise or lower based on contact with the marble.
TIMED PLATFORM ELEVATOR
Same as regular platform elevator, except works on a pure timer and doesn't care
where the player is in the game.
DOOR
The size is 2x1x2 and requires a key or switch to lower it. It will fall into the
landscape when unlocked.
TELEPORT
This is a "gate" that will cause the player to teleport to another gate. They
can be two-way or one-way depending on the behavior of the second gate. See the
"platform" widget type, it may just be turned into one of these.
SWITCH
The size is 1x1x1 and probably low to the ground. It may end up looking like a
button sticking out of the ground, or may end up looking like the "platform" widget
type. Basically the switch will perform various scripted events on the map. It
could turn on/off another widget.
PLATFORM
This is a general platform to cause certain things to happen. It will be shaped
like one of those carpet mini-putt golf cups with the slightly raised edges on
them and a shallow cup in the middle. In the center is the activation point which
is circular. Still not sure whether this will be in there definite or not. But
it might be a nice way to get many types of objects from one template.
Uses for this "Platform Widget"
1. Start (where marble begins)
2. Goal (to end the level)
3. Teleport
4. Switches
5. Healing area

A 3D marble platformer using Newton physics.