The game’s camera system is nearly as vital as the player mechanics, it can make or break the entire experience, after all the most important aspect of a game is first and foremost being able to see what you’re doing.
Each game genre has its own camera control style according to how the gameplay will play out. There are several different types of cameras throughout games:
You have Look-at cameras as seen above which rotates around your target point which is usually the playable character. Follow cameras that are usually in platformers and vehicle-based games. Unlike the Look-at camera that can be adjusted, this camera’s motion tends to lag around the playable character.
The Follow camera is programmed with collision detection and avoidance logic in order to provide the player with some sort of control over the camera.
First-person cameras are self-explanatory; its camera angle is at your character’s eye as you see the world from their perspective. The direction of sight translates directly into the aim direction of the player’s weapon. We move onto the RTS (Real-time strategy) cameras where the players’ points of view is from above the terrain looking down at an angle.
Finally we have cinematic cameras; lots of games nowadays, particularly the big budget titles like God of War have cinematic moments where the camera moves in a filming manner which contrasts with the straightforward camera works of gameplay sections.
Of course you can easily switch between both of these camera systems with the usage of camera states and a trigger system to switch between them.
A camera object in 3D gaming akin to a camera in a movie studio; you’re always switching from camera to camera, angle to angle by design of trigger systems and basic movement physics. It represents the window that players can look into and observe the objects, events and actions in the game.
The OGRE viewport corresponds to a clipping region where the contents within view of the camera will be rendered in the window for each frame. Once a scene manager has been created using createSceneManager, the WinMain method is continued by creating a camera object along with a viewport object.
The camera object is created using the createCamera on the SceneManager, and developers must then create a viewport based on the same camera. The camera is a view into a scene and therefore depends on a scene manager for its existence. As a result, SceneManager objects are to be rendered before the cameras. In OGRE, camera are encapsulated in the Camera class using the createCamera method in the SceneManager class.