Originally AOS was going to be a strictly top down Diablo style game. After my friend Nathan started testing out my game builds the first thing he said is you need WASD! And I just groaned and said it is supposed to be a Diablo clone. Anyway, long story short – you can play both ways at the same time now.
After salivating over the nice first person vistas using the new HDR+Bloom capabilities in Unity 3.5, and learning a lot about some cool scene design from the Big Environment Pack by Jacal, and just needing a reason to play with auto LOD and Occlusion Culling, I have officially transformed AOS to work in both an overhead Diablo style perspective using point and click movement, and a first person WOW like WASD driven MMO perspective and anything in-between based on personal preference.
Another reason for choosing to do the dual mode camera is that inside structures or other constrained areas the camera is forced into a first person mode. This makes it much easier to implement interiors like dungeons and helps to provide a more intimate first person aspect to the game where needed.
The description of the camera controls from my working/draft “Player’s Manual”:
“The movement of the main character can be done through the mouse or keyboard. You can use either method at anytime.
To use the mouse simply click on the ground with the LMB where the character should go. Click and hold the LMB to continuously direct the character’s movement. To look around simply press and hold the RMB and drag the mouse around on the screen. Dragging up and down tilts the view and dragging left or right rotates it.
To use the keyboard for movement simply press the W key to move forward and the A and D keys to turn left or right. Also you can press the Q or E keys to rotate the view left or right. While pressing the W key, using the RMB as described above turns the character in the corresponding direction instead of rotating the camera.
Zoom in and out using the mouse wheel or the + and – keys. Press the X key to instantly toggle between a first person view and an overhead view.
As your character moves, the camera only periodically follows where your character is going. This allows you to move the character within the view area without the camera constantly adjusting to be behind the character. This is ideal for providing a nice static Diablo style overhead view of a battle. If your character is running longer distances the camera follows and adjust appropriately so you generally have a view of where you are heading.
As the character moves and the vantage point changes, the view can intersect with things like trees or rocks or other obstructions that could potentially block your sight. In these situations the view automatically zooms in and tilts up until it no longer is obscured and provides a higher overhead display. As the character is moved away from the obstruction, the view returns to the original vantage point.
Inside buildings and dungeons the camera behaves similarly except there is no tilting of the view due to obstructions, the zoom is simply adjusted to a position inside the structure that is closest to the desired zoom. Unless there is space the camera is pretty much a first person view and the WASD controls are the easiest to use in these situations.”
This is kind of a boring description so here is a video that shows the capabilities of the hybrid camera and it also shows some of the work I have been doing.
Well, I hope you enjoyed the video! The scene in the video is part of a prototype region that I am doing to represent the capabilities of the framework and show the look and feel of the game. I should be making more in the future to show off the framework and the game.
That’s one awesome game it looks like! The environment, at least, is beautiful. Also, I really like what you do with the camera, which you describe in this post.
I am working on a game within Unity aswell, I think it would classify as an RPG, though I am not sure. I see you are interested in finding someone who is willing to work out combat mechanics. For my game I am currently working on the combat system aswell (which is really one of the harder parts). Perhaps we could exchange ideas? Can I contact you by mail, somehow? (If you are interested, that is)
Sure, I am always interested in how others are designing combat systems. You can find me on Google+ and we can share email from there.
Hi Michael, thanks for a fascinating site, was wondering if you are basing your controller on any commecailly available set-up? Im played around with the Unity MMO controller and the excelemt RPG Controller, neither quite do what I want, but as a non-coder (im using PlayMaker for my coding)Its pretty hard. I have it double hard cos Im making a multiplayer game, where I want YOUR player char to be first person, but to be VIEWED by other players as an avatar…
Mark, thanks for checking out the video. I custom built the camera system and it isn’t based on anything out in the wild. It is fairly complicated to support the smooth tracking of the movement and keeping it from say turning around quickly if you move the character back toward the bottom of the screen in an overhead view. It also does some unique movement with regard to tilting vs clipping and of course has a dual mode for exterior/interior. Good luck with your project.