Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Mooey Cow
Jan 27, 2018

by Jeffrey of YOSPOS
Pillbug

No sane human being would design a collision system like this, btw, with 50 different "hitboxes" for every wall for different player states. Instead you would have one polygon (or polyhedron) for each wall and change the player's collision volume depending on their state. To achieve the effect that Mario could get closer to a low wall and step up on it, you'd do a check first from the middle of Mario to see if that part hits anything; if it doesn't do a shorter test from the knees or something; if that also doesn't hit anything, allow Mario to move up on the thing. Basically imagine the stacked boxes on those walls upside down and placed on Mario instead (but you probably wouldn't want them to be actual boxes rather than just very simple line or volume/sphere tests).

The thing described in that video is just so backwards for no real advantage that I really doubt that's actually how Mario 64 works.

Adbot
ADBOT LOVES YOU

Mooey Cow
Jan 27, 2018

by Jeffrey of YOSPOS
Pillbug
I mean, has anyone actually dug into the code to verify that's how it works? Because I literally can't find anything to suggest that. The best I found is the level structure, where the collision is pretty clearly stored as three vertices and a plane vector, with no hint of any boxes. So if they exist, they must be constructed at runtime, but storing that would be slow and take up memory (and there would surely be debug tools showing them). So instead they would be calculated when needed on a per check basis. But this is pretty different from saying the walls "have" boxes, as they would only exist during that particular check, and other colliding things would/could put their own boxes on the triangles.

Also note that the slope "boxes" in the video are actually parallelepipeds, requiring at least one full plane check you can't get around by transforming everything to be axis aligned with the box. So the system still requires complex calculations (which should be obvious anyway, as the system handles objects rotating in all sorts of ways, and the boxes would actually represent triangles).

Like, the system described just sounds totally awkward, not like an evolution of 2D collision. If someone can verify it, that's fine, but no one should get the idea that this is a good way to build a collision system. It won't give you a "retro" feel, it'll just give you headaches. Points against tiles on other hand can have real uses.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply