Driving me up the wall...
by Daniel Buckmaster · 01/30/2009 (11:26 am) · 11 comments
With my handy-dandy new quaternion-using Players, I figured it was about time to get something useful done with them. Climbing and wall-walking were the first things, obviously.
Kork can now climb ladders at nearly any angle (ladders being represented by the grey pipes in my test level), and run three-sixty degrees around a floating body! It's problematic, of course - if momentum causes you to leave a collision surface at too great a speed, you lose contact and global gravity takes over.
I'm also finding some problems with dithering when Kork is standing on a seam - he swings one way, then the ray hits a different surface, so he swings back.
The video also shows some swimming, and my mantling code, which appears to have broken in the quaternionification.
But enough of me talking - here's Kork...
Kork can now climb ladders at nearly any angle (ladders being represented by the grey pipes in my test level), and run three-sixty degrees around a floating body! It's problematic, of course - if momentum causes you to leave a collision surface at too great a speed, you lose contact and global gravity takes over.
I'm also finding some problems with dithering when Kork is standing on a seam - he swings one way, then the ray hits a different surface, so he swings back.
The video also shows some swimming, and my mantling code, which appears to have broken in the quaternionification.
But enough of me talking - here's Kork...
About the author
Studying mechatronic engineering and computer science at the University of Sydney. Game development is probably my most time-consuming hobby!
#2
01/30/2009 (11:51 am)
Huh, it appears as 'Live!' for me.
#3
01/30/2009 (12:46 pm)
I just watched it. Very cool stuff Daniel.
#4
01/30/2009 (1:17 pm)
ya that is very cool can be used in many ways.
#5
01/30/2009 (2:22 pm)
That's awesome!
#7
Also, it looks like you've made an orc model that works like a turtle. "Help, I've fallen on my back and I can't get up!" Hehe :)
01/30/2009 (10:36 pm)
That's amazing Daniel :DAlso, it looks like you've made an orc model that works like a turtle. "Help, I've fallen on my back and I can't get up!" Hehe :)
#8
Thanks for the comments, guys :)
01/31/2009 (12:36 am)
Chris, that's exactly what's happening ;P. I have added auto-vertical code, but it wasn't turned on for that demo. I also need to add some logic to make the Player go prone when he lands at an awkward angle, but I'm going to wait until I have a properly configured player mesh to do that.Thanks for the comments, guys :)
#9
01/31/2009 (7:08 am)
very nice
#10
01/31/2009 (9:18 am)
Very nice. I'd love to see that used for Prey-style combat on walls/ceilings. How did you handle gravity if you didn't change the actual global gravity, I'm guessing a raycast in Kork's -upVector? You can pretty easily change Kork's gravity vector to be based on a location and then realign him and fall towards that position. Just follow the steps of the dynamic gravity resource but also add in a field for "mGravityPoint" or whatever you want to call it, than do the vector math where the player gains gravitational momentum. Change it with triggers, etc, for moving from object to object, I also find this to be more efficient, since it's just an additional 2 or 3 vector subtractions/normalizations. Of course this only works will object's that are fairly spherical, planets and the like. It won't get the desired effect if you want Mario Galaxy styled objects to run around on. I even went into far enough detail with that method to allow gravity to lessen the farther from an object the player got, though never got anything out of it due to lack of QuatF's.
#11
I'm planning to add some features to global gravity - unifying the entire system, instead of having different gravities for Players, Vehicles, etc. And have the whole system vector-based, dynamic and networked, so gravity can change strength/direction over the course of a mission.
I'm thinking I'll be taking this in a little more of an organic direction than Prey's (note, I haven't played it, but I saw the promo vids when it came out). Mainly, I'd like to use it for Alien-style enemies who'll be running up the walls like crazy, and obviously have increased mobility (who needs stairs?) and be able to make surprise attacks from, say, the ceiling. Like the way it was handled in AvP (another game I haven't played, but I've seen played quite a lot :P) - putting freedom of movement into otherwise unremarkable environments.
01/31/2009 (2:07 pm)
Yep, the Player simply raycasts downwards and if it hits a surface, conforms to it. Gravity is applied in the opposite direction to the surface normal. There's an easy spot in updateMove to change the gravity vector used.I'm planning to add some features to global gravity - unifying the entire system, instead of having different gravities for Players, Vehicles, etc. And have the whole system vector-based, dynamic and networked, so gravity can change strength/direction over the course of a mission.
I'm thinking I'll be taking this in a little more of an organic direction than Prey's (note, I haven't played it, but I saw the promo vids when it came out). Mainly, I'd like to use it for Alien-style enemies who'll be running up the walls like crazy, and obviously have increased mobility (who needs stairs?) and be able to make surprise attacks from, say, the ceiling. Like the way it was handled in AvP (another game I haven't played, but I've seen played quite a lot :P) - putting freedom of movement into otherwise unremarkable environments.

Associate Britt Scott