Look at me still talking when there’s science to do…

More Portal references, yes. Deal with it ;).

A brief update on the whole physics-based first-person camera controller I was working on last week. I’ve gotten it working to a pretty reasonable extent. It’s slightly tricky, and doesn’t match reality 100%, but it works well enough for 99% of the cases I’d be interested in handling.

To quickly run down what it’s capable of, the system can handle collisions with stationary objects just as the standard controller does. It also properly handles landing on and moving on a moving object, like a rotating or moving platform (i.e., I could build Gahreesen in Unity were I so inclined to do so, only I could actually build it as a single scene, rather than 4 distinct sub-worlds, so everything would rotate as expected, and transitions between sections would be completely seamless). Additionally, it works reasonably well when the rotating object is tilting, rather than spinning on its vertical axis (i.e., a see-saw versus the Gahreesen rooftop). The only issue is that it takes until the thing you’re standing on reaches a near-90-degree angle before you slide off. For the most part, this really isn’t a huge problem, since I don’t see myself building many environments that involve this kind of rotating platform, and games have gotten away with much worse in terms of controls before (especially first person games).

The main drawback is that it doesn’t seem to work with the standard 1st person camera controller construct, so I can’t really restrict movement to certain angles of surfaces as easily as I could if it worked seamlessly. However, since the 1st person camera controller’s slope restrictions can be easily overcome by simply walking at the offending steep surface and jumping repeatedly, a more robust system would have been required anyway. So, now I have to make sure that any areas I don’t want players getting to are well enough insulated that they can’t cheat the physics to get there. In this regard, seeing all of the ways that Cyan has had to re-jigger their collision planes to stop people from getting places they shouldn’t be able to is a useful learning tool (like ever so many things about Uru are…). I believe the general rule of thumb espoused by several players has been “build a 20-foot wall around it” if you don’t want players to get on top of it. This seems like a very valid suggestion.

Now that the control works for a first-person camera, the objective is to make it work for a third-person rig. I doubt this will be a huge issue, since it’s been built completely independent of the camera controls, so the challenge is more in getting a third-person camera to work than it is in getting the movement to map to a visible object. Although, I do need to figure out how to get walk cycles mapped onto an object and ensure that it moves at the proper rate of speed for the designated walk speed. The camera will probably be the more difficult of the two, because I not only have to work out how to get it to look at and follow the target object (the easy part), but I need it to react to the target’s movement either in a dampened fashion (like Uru’s avatar-following camera), or in a fixed-position fashion (like a console game, i.e. Psychonauts or Tomb Raider). If it behaves like Uru’s camera, it needs to behave largely independent of any mouse input. If it behaves like Tomb Raider or Psychonauts’ camera, it needs to react directly to all mouse input to control rotation and elevation angles relative to the player character.

While Uru’s avatar-cam system would probably be easier to develop, and is something I’m certainly interested in pursuing, I’m more immediately interested in seeing if I can develop a third-person camera system that’s more like Tomb Raider or Psychonauts.

It’s at this point that I really wish I was getting paid to work on games, rather than writing online banking software, because there are so many things I want to work on and develop, and I just don’t have the time to devote to all of it along with the other stuff I’m always busy with after work. I’ve got ideas for camera controllers, walk cycle implementations, particle effects, physics tests, environmental animations… basically a whole mountain’s worth of stuff to fiddle with and fine-tune, some of it related to the current game projects I’ve got going, and some of it more indirectly related to game ideas in general. It’s kind of killing me that I have to spend 45 hours a week expressly not working on them. I just don’t have the money or ability to simply do this as a day job, because nobody would be paying me, and my release audience is currently restricted to either web-player games (which would obviously be free of charge) or Mac users. And while there’s as much as 8% of the current population using Macs, that’s still a rather small target audience for games. Now, my plan is to make a free limited web-player version, and charge a nominal fee for the full game in cases where it’s a more casual-style game (like Labyrinth), so hopefully I can get people hooked enough to buy the full version, and by saving up those proceeds, I can do things like buy the professional version of the Unity development environment, so I can build Windows binaries as well as Mac ones, and maybe eventually get a new laptop for more development freedom (since most of the work gets done on a Mac, and we only have one of those, it kind of creates a production bottleneck when the sound & music engineering, game programming, level assembly, and testing all has to take place on one machine).

Oh, and for those who were wondering, I believe RIUM’s post about furniture sentience was the fault of Ash and myself. Not like I’m trying to give something away or anything…


One Response to “Look at me still talking when there’s science to do…”

  1. RIUM+ Says:

    Yes, it was Oscy who got me started thinking along those lines. And then my mind went thinking along certain pathways that a normal mind should never go across. One should not try be trying to work out whether if a bed loses its pillows/sheets/mattress, if it\’s still considered \’alive\’. :P

Leave a Reply