Spent the last couple of days on the camera & controls. Tonight I added several more text-tweakable camera options, such as the camera's distance behind the player, the min & max camera height, etc. I also made the camera position averaging time-proportional so it would feel the same at different fps.
Yesterday I added the option to make the camera always able to see the player. It checks for occlusions with a series of raycasts, then if it finds an occluder, it attempts to rise up until its clear. We may experiment more with this, but right now it seems as if this height adjustment is more distracting
than the character being obscured by something. It's not like you don't know where your character is - he's always near the middle of the screen. Plus, the player can always zoom out, which is much more unlikely to occlude the character. It seems this is best left to the player to deal with, but perhaps we'll revisit this option in the future.
Right now the mouse left/right turns both the character and the camera CCW/CW. One of the new tweaks we tried tonight was making the mouse up/down changing the camera pitch, well, actually not the pitch, but moving the camera look at point towards and away from the character. We don't ever want the view to go parallel to the ground - that becomes a first-person view, and can create board design problems, especially when we don't model ceilings, and don't want the player to see across the entire level.
I added min & max target distance parameters to the render options to play with various pitch options, and it seemed the more tweakable the camera up/down was, the more control you wanted over it. I'm currently thinking that we will just choose a good view point for close-up, and the players will get used to what it can and can't do pretty easily.
Right now it looks like 4 meters in front of the characer lets you see down a hallway a good distance without letting you look through the whole level at once.
Here are three shots, one zoomed out, the other zoomed in, and another with the camera target point set quite far away. I have to say I think the 3rd shot looks the most appealing, other than the black area in the 'sky'. I'm somewhat worried about performance on a larger indoor level, but I suppose we could fog out the world lighting in the distance or some other technique to keep perf up. Perhaps simply dimming lights that are far from the player, and then culling those that are effectively black would work well.
I'd appreciate hearing your thoughts on the 2nd vs the 3rd pic?
I'm preparing to go out of town this week, so I probably won't update again until Wednesday, but I'll probably be on-line a bit here and there.