Username:
B
I
U
S
"
url
img
#
code
sup
sub
font
size
color
smiley
Not talking
Brick wall
Very Happy
Shhh
Confused
Applause
Boo hoo!
Dancing
Shame on you
Whistle
extra_smug
aiwebs_008
aiwebs_016
aiwebs_032
aiwebs_031
aiwebs_030
aiwebs_029
aiwebs_028
aiwebs_027
aiwebs_026
aiwebs_025
aiwebs_024
aiwebs_023
aiwebs_022
aiwebs_021
aiwebs_020
aiwebs_019
aiwebs_018
aiwebs_017
aiwebs_015
aiwebs_014
aiwebs_013
aiwebs_012
aiwebs_011
aiwebs_010
aiwebs_009
aiwebs_007
aiwebs_006
aiwebs_005
aiwebs_004
aiwebs_003
aiwebs_002
aiwebs_001
aiwebs_000
Angel
Drool
Speak to the hand
Liar
Pray
Sick
Silenced
d'oh!
Eh?
Liar
grin new
Twisted Evil
Neutral
Mr. Green
Anxious
Think
cookie
laugh new
Shocked
Arrow
Smile
winky
stern
teach
Evil or Very Mad
Wink
Embarassed
Rolling Eyes
Very Happy
Cool
Razz
Idea
keks
whoa (@c.bags)
pwuh
Sad
Surprised
Confused
Laughing
Mad
Crying or Very sad
wub
gah
Exclamation
Question
1 page
^^
vv
List results:
Search options:
Use \ before commas in usernames
Ntsc:
registered on 2007-08-02 03:13:57 pm.
 
Hey so I've been working on a super monkey ball game for a little while and have finally got to a point where it is ...eh almost playable.

Anyway what is really cool about it is that anyone who has Maya can create levels for it and they will for the most part look exactly the same way they do in Maya - animations and all. It uses locator nodes to know where to put bananas (currently spheres) and volume nodes for start and goal locations. I built it all in C++ using some existing libraries like Bullet for Physics and Fmod for audio.

Here is a video:


And here is a link to my dev page where you can download the game and/or it's source:
http://code.google.com/p/cobaltlibrary/ (game requires absolute latest Direct3d and VS2010 runtime)

Right now only has support for WASD movement and you have to type "load level2_rotate.mesh" to load the second level.
It has been pretty fun working on it and I still have a ways to go. UI design, menus, more levels, and some better models.

So let me know what you think. I've been so busy with real life I haven't really been able to get feedback.
Thread title: 
Poision Envy:
registered on 2008-10-25 08:56:26 pm.
 
Gender: female
Location: I'm outta place, I'm in outer space
Death to skinfags, sieg heil.
the ball reminds me of a voltorb, it'd be awesome if you made it pokemon themed xD
J_SNAKE:
registered on 2010-02-28 06:59:42 am.
 
Physics is not your strenght:P

I would also recommend you to take a look into XNA if you are not going for Crysis-killer games.
Ntsc:
registered on 2007-08-02 03:13:57 pm.
 
Quote from Poision Envy:
the ball reminds me of a voltorb, it'd be awesome if you made it pokemon themed xD

Rofl, so actually story behind this. The sphere is supposed to be translucent so you can partially see through it but I guess I set some variable wrong and ended up with Voltorb / Pokeball.

Quote from J_SNAKE:
Physics is not your strenght:P

I would also recommend you to take a look into XNA if you are not going for Crysis-killer games.

heh well the Physics are actually pretty accurate. They are all handled within Bullet Physics which is very accurate for primitives like Spheres, Boxes, planes, and Capsules but unfortunately doesn't seem to be so accurate when it comes to a moving object comprised of polygons (yeah this object actually sends real polygons directly to the physics driver, objects can be extremely odd shapes and concave).

I think this is due to no interpolation between the level's animation frames. It is animated at 100fps but I don't think that Bullet correctly calculates the velocities nor does it interpolate (axis sweep). Instead it seems to simply teleport from transform A to transform B which means that suddenly the ball is 1/10th penetrating the floor and suddenly must bounce up and out of the other object. Bullet doesn't support true dynamic objects that are not convex. It only allows you to keyframe concave items.

XNA is C# where this is all C++. I don't really know C# and considering it is an interpreted language I don't have a whole lot of interest in learning it (not to mention it is proprietary to MS).

J_SNAKE:
registered on 2010-02-28 06:59:42 am.
 
Treating a mathematically well defined shape as polygons works against accuracy and quality.
arkarian:
is in the group Administrator.
registered on 2004-09-01 04:15:32 pm.
 
Gender: male
Location: ellicott city, md, usa
mindfulness
fully erect
translation of the above post:

"i didn't understand what you just said so here's something only marginally related"
ryu:
is in the group deutschsprachiger Moderator.
registered on 2004-02-10 05:03:19 pm.
 
Gender: male
Location: germany
I think he means it'd be more accurate to just calculate the dimensions of the ball and to use these instead of the model's polygons.
Ntsc:
registered on 2007-08-02 03:13:57 pm.
 
Edit history:
Ntsc: 2010-10-12 02:15:55 pm
Ntsc: 2010-10-12 02:14:17 pm
Ntsc: 2010-10-12 01:59:27 pm
info 
''
J_Snake is right but I'm already using a sphere shape and not polygons for the ball. The problem is the level which is being done with polygons.

Quote from Ntsc:
.
//Player creation, CreateRigidBody args are (Shape, OriginTransform, Mass, Triangles = NULL, NumberTriangles = 0) the latter are ignored if not specified
pPlayerPhysical = pPhysicsDriver->CreateRigidBody(RBS_SPHERE, StartPosition, 50);

//Small section taken from Level creation
tPart.Physical = pPhysicsDriver->CreateRigidBody(RBS_MESH_CONCAVE_TRIS, tPart.Origin, -1, Tris+(tSub.Offset*3), tSub.Triangles);

The sphere is actually extremely accurate. I've tested the sphere (with continuous collision detection on) moving twoards a triangle plane (0 thickness) at 10,000 miles per hour yet running at only 30fps with no interpenetration. The problem is when you have the plane also moving. Bullet doesn't allow me to turn on continuous collision detection for polygon objects. So the plane or any other polygon object simply teleport from Transform A to Transform B resulting in a gap between the two based on fps. Think of how you used to have characters that could move through walls if they were moving fast enough - this is caused by not calculating if an object WOULD have hit an object between frames.

It wouldn't ever be an issue if the level wasn't animated and it really isn't a problem for "real" games like a Metroid game because you hardly have any physical universe that is moving polygons (most moving objects are primitives). Most characters use a simple Capsule shape (think of a pill shape) for collision detection and then use a static polygon mesh for accurate hit detection when it comes to bullets / lasers. The static world in these games use polygon meshes though and it is 100% accurate so long as it - the polygon mesh - doesn't move.
MilesSMB:
registered on 2010-05-15 01:15:48 am.
 
Gender: male
Quote:
Bullet doesn't allow me to turn on continuous collision detection for polygon objects. So the plane or any other polygon object simply teleport from Transform A to Transform B resulting in a gap between the two based on fps. Think of how you used to have characters that could move through walls if they were moving fast enough - this is caused by not calculating if an object WOULD have hit an object between frames.

Well, hey, this would be accurate to the actual Monkey Ball games. :P
J_SNAKE:
registered on 2010-02-28 06:59:42 am.
 
Edit history:
J_SNAKE: 2010-10-12 05:28:31 pm
info 
''
Personally I would implement something special like ball-physics myself. It will result in higher quality than by any trial-error approach you have with general physic-engines. It requires sharp and numerical understanding(I take understanding for physics for granted) but you have the flexibility to make it exactly like you want. You have to use the state of the current and the last frame correctly but there is no need to interpolate between frames to achieve believable or satisfying results. The only condition that has to be met is that you are not moving too fast, something like bullet-speed. Here is my 2D-example as a quality-proof (the principle applies also to 3D):


At C#: It is not what you think it is. It is just-in-time-compiling. If there is not much modul-swapping involved it is the same speed as C++. You can port a game like marble-blast from C++/directx to xna without any performance impact. Also microsoft did a good job on the C#-compiler. It optimizes well.


arkarian:
is in the group Administrator.
registered on 2004-09-01 04:15:32 pm.
 
Gender: male
Location: ellicott city, md, usa
mindfulness
fully erect
yeah that's impressive all right
moozooh:
registered on 2006-01-11 12:51:46 pm.
 
Gender: male
Location: Moscow
J_SNAKE, I love you.

Please post more!
ajbolt89:
registered on 2003-11-25 11:35:00 pm.
 
Location: MoonVault, The Moon
lol no way
Whoa that phantoon art in the bg is the shitz
Ntsc:
registered on 2007-08-02 03:13:57 pm.
 
Edit history:
Ntsc: 2010-10-19 01:05:43 am
Ntsc: 2010-10-18 06:33:42 pm
info 
''
I posted my maya exporter on the website so you can now create your own levels.  Levels must be comprised of polygons (triangles or quads only, downconvert using Mesh > Triangulate). Use a volume sphere for the start location and a volume cube for the goal. Locator nodes for bananas.

https://code.google.com/p/cobaltlibrary/downloads/list

No known limitations for polygons meshes though. Animation is simple, just set the animation timeframe to anything greater than 48 frames and use the 's' key to keyframe movement. Do not scale objects as scaling isn't supported as a valid physics animation and results in the object having no bounding box.

Currantly only supports x64 because I only can compile it for x64 (Maya x86 won't install on a 64bit computer - and thus no libraries to compile against). If anyone wants to compile a 32bit one I would be more than happy to host it. All the code required is available via the SVN at the above website.

Edit: Friend just tested and it only works with Maya 2011. Oh well. Maybe later I'll write a standalone version.
Ntsc:
registered on 2007-08-02 03:13:57 pm.
 
Just got a new job as a C++ / Python / C# developer so I don't have a lot of time to dedicate right now to developing more for Monkey ball. Working 2 jobs currently until my 2 weeks are up. I recently ripped some textures from Super Monkey Ball 2 and was planning on adding a GUI to the core libraries as well as the game. The next thing I will probably do though is fix support for gamepads and joysticks.
Poision Envy:
registered on 2008-10-25 08:56:26 pm.
 
Gender: female
Location: I'm outta place, I'm in outer space
Death to skinfags, sieg heil.
congrats on the new job :D