The Ditty of Carmeana is, at its heart, a parody of The Legend of Zelda. As such, a lot of the early decisions I made concerning the game I just copied directly from Zelda. One of those decisions is that it would be designed to work with a gamepad. Zelda, being a console game, used a gamepad.
There’s another reason, too. I hate keyboard/mouse control. Just flat out hate it. I can see the appeal of the mouse for games that need precision aiming control (aka games that I never play), and of course sometimes you need to type or use menus which is much easier with keyboard and mouse, but other than that it’s just a terrible kludge. Using a keyboard to move a character around is awful. You’re basically limited to motion in eight discrete directions, at one or two different speeds. Gah. So I designed it for a gamepad and didn’t really worry about keyboard/mouse controls.
But, unfortunately, real-world concerns brought me around to keyboard/mouse. I wasn’t going to get this thing released on a console, and I knew that almost no one with a PC would go to the trouble of plugging in a gamepad just to play my silly little game. As a concession to usability, I added keyboard/mouse control to the game, and I spent a whole lot of aggrivating, hair-pulling time coming up with a control scheme that worked naturally with either method. And I think I did a great job of it.
But in all that time I focused on the controls, I really didn’t worry a whole lot about the camera. I did make one major camera change. When using keyboard to move the camera around, the camera remains in a fixed orientation relative to the character, unless it collides with something. With a gamepad, the camera is dragged along as the character moves. There is a reason for this.
Irrespective of the controls scheme, if you’re just roaming around it’s generally better to drag the camera along than to keep it at a fixed angle. The is the more natural and cinematic way to show a scene: the camera automatically tends to point itself at where you’re headed and presumably what you need to look at. The problem is, if the camera is swivelling as you move, it makes it pretty much impossible to run in a straight line with keyboard controls unless you position the camera directly behind the character, since a keyboard doesn’t allow movement in arbitrary directions. Because of this limitation, gamer expectations are that the camera doesn’t swivel as you move around when using keyboard controls. So that’s how I did it in The Ditty of Carmeana. (Have I mentioned how much I hate keyboard for moving a character around?)
But I only did it that way for keyboard controls. When using a gamepad the camera is dragged along by the character and swivels to keep the character in view. With a joystick it’s easy to run in a straightish line even when the camera is swiveling, because you can move in an arbitrary direction. Since that is usually the preferrable way to position the camera, I kept it for the gamepad.
And because I know some uber-gamer-bro is fuming over this (silently: there’s a reason there are no comments in this blog), I acknowledge that dragging the camera is not ideal for combat. This is why many gamepad control schemes include a button to constrain the camera motion. Some games, like Zelda, have auto-targeting. Other games have something like a “camera strafe” button, that fixes the camera angle. (And you can afford to do this with a gamepad because you don’t have three whole fingers devoted to character motion; you can spare one to fix the camera.)
Anyway, I’m getting philosophical and off-track here. The point is, for The Ditty of Carmeana, the only major change to the camera I implemented for keyboard/mouse controls was to fix the camera angle when using keyboard controls.
Here’s the problem. As I said, I prefer to play with a gamepad, so I had done the vast majority of my game testing with a gamepad up to the demo. I think all I did to test the keyboard/mouse controls was a single playthough, and decided that everything worked well enough. But, looking back I realize that although stuff worked, and the game was playable, it was really suboptimal. Almost all the early decisions I made with camera positioning were quite satisfactory for the gamepad. For the keyboard mouse, they made things awkward.
Here’s an example. This image shows the default positioning of the camera after you go through a door.
Why does the camera do that, you ask? Because that is where Zelda places the camera after you pass through a door. That’s the only reason. And, surprisingly, it works quite well… with a gamepad. Because of the way the camera tracks, the camera will very quickly end up in a suitable position, quite automatically, with only a little motion from the character. Failing that, a gamepad usually has a convenient camera reset button. (Again, you can usually spare a finger for this with a gamepad.)
But with keyboard/mouse controls, as they are now, it’s just painful. You can’t even swing the mouse around to get a better angle because it collides with the wall (and there’s currently no provision to allow the camera to move closer to the character). So you have to walk out toward the camera, at an angle for awhile, then swing the camera around. Not very fun.
And now that I’m adding things to the game like combat and some dungeons with narrow passages, it’s going to be even worse than it was in the demo. So I can no longer avoid it, but I’m going to have to revisit the camera positioning. And I do not want to. But it must be done.