MONSTRUMO !

Progress report…
I did new version —> play it here - Version 0.6.6 (JGF still have problems in uploading jars, so there is still old version there…)
These days I have very little spare time to do some significant in Monstrumo. Nevertheless, I tried to put some “bosses” in game. For now, there are two big zombies on map that are capable of spitting spells. They will damage you as well as any other enemy on impact. Possibly good for some tactical movements. I consider adding some voodoo witches in next version…
Anyway, it seems that Monstrumo is well accepted in Czech Republic - I have 2-3 reviews there. Here is one, if anyone of you understand what is says, please tell me! :wink:
http://plnehry.idnes.cz/akcni/monstrumo.html

EDIT: I uploaded new version to JGF, play - Version 0.6.6

For those of you that don’t have/like webstart (i seriously doubt it, but you never knows):
I made an executable (Windows only). With every new webstart version I will update and executable too on my Monstrumo pages. You can grab it | here |

Pretty neat work there! I ran over a mountain, sank into the water like a brick, and then proceeded to climb the edge of the world where I found lots of ArrayIndexOutOfBounds exceptions ;D Do I get extra gold for those? By the way, exploding barrel + 2 angry pirates = big death. Oh yeah :wink:

Ah, swimming just hasn’t been implemented yet. I tried to constrain your movement on the ground only, but, obviously you are smarter then I ;).
Because of that I am relying on only-ground-movement, I don’t expect someone will go to the end of map (and get those ArrayIndexOutOfBounds exceptions). Adding that to my TODO list now.

How are you detecting a collision between trees and the avatar? Bounding box ray/plane test?

Let me recall… First I had every-frame-checks with avatar and all trees, but of course, it was slooow. So I decided to put every object (and so the trees) in its cell. For example, an 128x128 terrain I divided in 10x10 cells (or 20x20 …) and every cell knows who is inside it. For dynamic objects, every frame I just check where it is and adjust its parent cell accordingly (it is fast).
So, when I move all particles every frame and put them in their cells, I just check for collisions of avatar and trees in his cell (or his and adjacent cells if cell is pretty small, it depends). Gained performance boost that way. I suppose that is some kind of “first-level” BPS tree method (I’ve never coded one), but it is not important how it’s called, just how it performed.
cheers!

I think you’re describing a kind of Octree or Quadtree approach to culling the tree objects. Split map into pieces and discard all tree where a frustum test against a large piece shows it to be outside the frustum.

What I really meant was - how are you performing the actual collisions with the trees and such? Presumably you are not testing against all polygons in the model but load a ‘collision map’ for objects in the level? Then perform a ray + polygon intersection test? I haven’t crossed into this territory yet and I’m only doing collision with the terrain itself.

It’s something I thought about the other day - I’m going to have a mixture of outdoor and indoor environments and I’m trying to come up with a nice way to do this (including the transition between being ‘in a building’ to being ‘out in the open’ )

Pete

Yes, that is exactly where I am going to with my code.

Ah, actual collisions tests.
if two particles passes all other tests (they are near, they are collidable etc), then I make calculations of theit plane (xz) distance and their vertical (y) distance. Knowing how big they are in x,y,z (some king of ellipsoid tests), it is not hard to do:

				if ((getPlaneDistanceFrom(p) < ((this.size.x + p.size.x))) && (getYDistanceFrom(p) < (this.size.y / 2 + p.size.y / 2))) {
					p.doCollision(this);
					this.doCollision(p);
				}

i sthat what you are interested in?
I am too planning to add buildings and walls and such in my games and still don’t know the best approach to do collisions with all those walls. My current tests are great for ellipsoid shapes only, im affraid.

Maybe this helps: Nice tutorial about ellipsoid-polygon collision detection: http://www.peroxide.dk/

Yes, i am doing something similar, only ellipsoid - ellipsoid detection. Good literature, worth of reading, thanks.
They also have a Masters Thesis on soft shadows if someone is interested…(http://www.peroxide.dk/papers/realtimesoftshadows.pdf)

Good info thanks! I think I’m going to use plane / ray intersection tests for the indoor sections and probably elliptoid detection for the outdoors. The transition between the two ought to be fun!

I haven’t been through this site in any depth for a while, but I noticed tonight your links in your sig for Monstrumo and MagicWoods are coming up ‘forbidden’ … ?

Me too… I had registration problems, but they are solved now.
But anyway, I wasn’t active for some months now :frowning: