Advertisement Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Closer And Closer

Sign in to follow this  


Closer And Closer

For the past couple of days we have been experimenting with various camera, cursor and control schemes. The scheme we have been working with for a long time has been a pretty fixed camera that didn't rotate, but followed above your character. A couple of weeks ago I added the ability to zoom in & out with the mouse wheel in anticipation of adding melee attacks.

This control scheme has some nice properties. One is that it's hard to get lost - the WASD keys naturally match the NSEW cardinal directions. It's easy to aim at the enemy you want by just clicking on them with the mouse cursor. I added auto-aim a while ago, so the engine does a good job of figuring out which guy to attack.

But, the distant camera an unusual perspective seems very disconcerting to almost everyone we showed it to, so I thought
we should at least test out other schemes more thoroughly before we are stuck with something either sub-optimial, or initially unappealing or confusing.

Yesterday I got a system working where there was still a mouse cursor, but your player could rotate the view with the keyboard. This is sort of lame in that keyboard turning tends to have a fixed rate. I added Shift-turn to speed the rate, but it still didn't feel good. The keyboard controls were changed so that WASD was camera relative.

Then last night, I added a scheme so that the camera & player turned when the cursor was near the right of the screen, and left when on that side. This was ok, but felt more like a CAD program than a game, especially when the mouse would leave the right side of the screen and it would leave the camera spinning.

This morning I got FPS-style controls working, and so far, we really like them. So, WASD moves camera relative, and there is no more mouse cursor. Moving the mouse right turns an amount proportional to the # of units you moved. Your player always faces 'up' on the screen, and shoots up also, but still with auto-aim.

I realized that these are almost exactly the controls for Wolf3D or Doom 1, in that up-down aiming is handled automatically. Because this is an action-rpg and not a pure action game, we will leave the left-right auto-aim in there, but may add a bonus for good manual aim, and will probably allow the auto-aim zone to be tweaked, and also tied to the difficulty level.

With the latest scheme, you can still zoom in & out with the mouse wheel. I really prefer playing zoomed in, but zooming out is great for a tactical overview of the situation, and to get your bearings.

This experimentation was made much easier by the decision I made a long time ago to have separate ControlScheme classes that implement various versions of the InterpretInput() method.

Sign in to follow this  


Recommended Comments

I think by changing the camera angle and the way it is now controlled you are, in a sense, allowing the player to immerse himself in the 3D environment as opposed to viewing the action from afar, ala a movie.

Having seen your engine in action at a presentation a few years ago, I think this change in camera angle is a great initiative. In fact, your latest screenshots make me actually want to play the game, whereas in the past I just wanted to watch. I suppose that sounds kind of weird, but hey, I can't explain the psychology. [smile]

Share this comment

Link to comment
Yeah, it looks a lot more dramatic and immersive now than it did before.

Evokes some memories of Anachronox and Vampire: The Redemption.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!