[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Game levels
This is for an RPG, so I don't need super exact collision detection.
There won't be any guns firing or lots of action. I just need to make
sure characters don't walk through walls. I think I'll do something
like what you did. Thanks.
Steve Baker wrote:
>>How is collision detection usually done with 3D levels?
>Well, there is a bag of cheap tricks and there is complete analytical
>Which you do depends *critically* on what you are colliding with and
>how much CPU time you can dedicate to it.
>If you have 300 3D creatures fighting each other on the screen, it's unlikely
>that you'll be able to do correct collision detection between them. Something
>cheesey like testing the bounding sphere around each character with others
>nearby is likely to be all that you can afford.
>On the other hand, if you are considering something like the player aiming
>a laser weapon at another character through a sniper sight, you had better
>test the collision of that laser bolt with every single polygon along the
>way to pretty high precision or the results will suck and upset your users
>Testing a polygon against another polygon is a very costly and difficult
>thing to get right. If you can simplify either the collider or the
>collidee down to a simple shape (or a small collection of simple shapes)
>then everything gets a heck of a lot easier.
>Another key thing is early rejection of things that stand no chance whatever
>of being collided with. Organize your scene as a hierarchy of objects with
>bounding spheres around each. You can test whether two spheres collide
>just by comparing the sum of their radii to the distance between their
>centers. With care, you can even avoid the square root.
>In my Tux game, I treated Tux as two spheres - one for his head and one
>for his body. Comparing those spheres against the bounding spheres of
>the scenery object quickly reduces the collision problem to a small number
>of scenery polygons...then I do sphere-polygon tests to narrow things down
>to an even smaller list of polygons that intersect Tux's spheres. I could
>then go further and test every one of Tux's polygons against the small set
>that intersect his spheres...but the game didn't need that much precision
>so I didn't bother.