How to Make a Good 2D Camera

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Okay - let's say you're making a 2D game and you  need some kind of camera to frame the action. No problem - just pin the camera  to the main character, right? Wrong! Do this and you'll have a camera that's jittery,  jumpy, short-sighted, and boringly static. So let's fix it. Here are five quick tips for  making a much better 2D camera. First, let's talk about lookahead. Basically - if you keep the character in the  middle of the screen at all times then you're   dedicating just half of the display  to the stuff that's in front of you. No surprise, then, why this happens so often... So it might be better to focus more  attention on the stuff that coming up,   and ignore the stuff behind you. And there are a few ways to do it. The simple solution is to simply  zoom the camera out further. That means even if the hero  is dead centre on the display,   you can still get a good view of what's to come. A more involved solution, though, is to  shift the camera in front of the character. If you can only move in one direction it's enough   to simply offset the camera  from the main character. That's great for endless runners and the like. But if the player can travel both  left and right then you'll need to   adjust the lookahead based  on the direction of travel. So in Cave Story there are  two camera positions - one   when you're moving left and  one when you're moving right. They're both offset in front of the player,   which is perfect for a game about  shooting targets in front of you. When you swap direction, the game slowly glides  to change from one position to the other. New Super Mario Bros. U does something similar. The camera is naturally biased on the  right side of the screen, ahead of Mario. But if you start to backtrack for a short  period of time the camera will realise,   catch up, and swing further left of Mario. And in Sonic Generations the  camera reacts to Sonic's speed. It settles on the hedgehog when he's stood  still, but it moves further and further in   front of him as he picks up momentum  - until it reaches a maximum position. This is not just for platformers,  though - in Hyper Light Drifter,   the camera is offset a few feet  in front of the hero's head so   no matter which direction you're facing,  the camera will frame what's coming up. And in Luftrausers the camera tracks in front   of the player's plane - but only  when the throttle is held down. That makes it possible to do those  sexy stall-and-swing-around shots,   without losing sight of your prey. It's even easier to do this if the player has  a method for aiming, like in Nuclear Throne. By centring the camera somewhere  between the character and the cursor,   you can get a better look at  the enemies you're shooting at. It's a very natural way of responding to the   player's intention and framing  what they obviously want to see. You can witness similar stuff in  bullet-based roguelike Enter the Gungeon,   clone 'em up puzzler The Swapper, and  blood-soaked rampager Hotline Miami. Basically - ask yourself "what does the player   really need to see"? And then make  sure the camera isn't hiding it. Next up - let's talk about cameras and jumping. Because if you pin the camera to the character   then it's going to move the  screen every time you jump. And if you're making a platformer - a genre that's   all about jumping - that's  a lot of camera movement. This can make the player feel nauseous,  and make it hard to line up perfect jumps - especially if the platforms disappear  beneath the camera when you lurch upwards. So, there are two main ways to help with this. One is to ignore jumps until the  player reaches a certain elevation. In Donkey Kong Country: Tropical Freeze  the camera doesn't react to DK's leaps - ensuring that the ground stays in  the same position at all times. However, when you land on a  sufficiently high platform,   the camera tracks up and sets  a new baseline to work with. This means that the camera moves when you've  landed, rather than shifting mid jump. The camera can break these rules  in certain circumstances, like when   you're climbing a rope or swimming  - now it moves up and down freely. Rayman Legends is similar: the frame  doesn't need to lurch up when Rayman jumps. It can just track up in certain, predetermined  areas where the level goes beyond the frame. The other way to fix this is  through the level design itself. In a game like Shovel Knight, the  levels are designed with a maximum   height - which just so happens to  be the exact height of the screen. This means that the camera only  needs to track left and right,   but never needs to move up and down -  allowing the camera to stay still for jumps. Go even further and you can keep the entire level   in a single screen, which means the  camera doesn't need to move at all. Which is perfect for precision jumping. It also helps to offset the camera vertically, so  the hero is closer to the bottom of the screen. This gives more vertical space to play with  and less need to move the camera up and down. But perhaps the best tip to remember is that you  don't need to treat both camera axes equally - it can do completely different things when moving  left to right, and when moving up and down. Next - let's talk damping. If the camera perfectly tracks the  character then it's going to react   to every single movement, no matter how small - and that can lead to a camera  that feels erratic and jerky. Especially when making precision  movements to line up a perfect jump. One solution is to use damping  - simply have the camera ease   between its current position  and the character's position. This will make it follow events more smoothly,   and won't immediately respond  to small shifts in position. Though, be aware: if the camera is slow to  catch up to the player's movements you can   end up with moments where the character  is actually in front of the camera,   leaving even less screen real  estate for looking ahead. Another solution is to impose  some kind of dead zone. In Fez there's an invisible window where the   character can wander around freely  without the camera moving at all. But if you push beyond that  window, the camera shifts. This does mean that the character will be far  beyond the centre of the screen when walking - but the camera is so zoomed out in this  game that it doesn't really matter. So super responsive cameras can be  good for retro-inspired titles   that want to capture that choppy 8-bit feeling,   but otherwise even a tiny bit of camera damping  can make things feel more smooth and polished. Now, the camera should usually  be focused intently on the   character - but you'll sometimes  want to frame other things, too. So don't be afraid to move,  zoom, or halt the camera. For instance, you can use the camera to draw  the player's attention to certain objects. In the game Insanely Twisted Shadow Planet,   key areas like checkpoints and puzzle zones  have a sphere of influence around them. If the player's spaceship enters  the sphere, the camera is told to   find the average position between  the key area and the spaceship - framing both on screen and adeptly  drawing the player's attention. The camera can also temporarily frame a scene. Disney Illusion Island typically just follows  Mickey's movements, but it can also zoom out and   settle on a predetermined position to completely  frame a tricky platforming section or puzzle area. When the player leaves, it  goes back to normal tracking. The camera may sometimes need  to follow multiple things, too. In the fantasy basketball RPG Pyre, the current  character is equally as important as the ball - so   the camera zooms and moves in an attempt to make  sure both are prominent on screen simultaneously. You may also want to move the camera  for dramatic, cinematic-style framing. In Inside, the camera usually just  tracks ahead of the player like a   normal platformer - but at key moments,  like when you're being chased by a pack   of rabid dogs - the camera moves  for a better view of your attacker. You can also zoom the camera  in and out for effect. In GRIS, the camera sometimes  tightly frames the hero,   and sometimes draws right out to  reveal the grand scale of a building. And you can also restrict the camera  from looking at certain things. Spelunky levels are surrounded  by an impenetrable rocky picture   frame - and the camera is forbidden  from going too far into this zone. By locking off this section it means  more of the frame can be focused on   stuff that's actually relevant to the gameplay. Finally, the camera can also be used to add juice. To make the game feel more exciting and alive. For starters there's screen shake. The ancient art of simply...  wobbling the camera around. This can be an effective way to sell an explosion,   an impact, a frantic struggle,  or a heavy-footed boss monster. You can tweak the intensity  - and also the direction. In Celeste, the camera wobbles in the  same direction as Madeline's dash,   to really sell the speed and  power of her special move. There's also hit stop. This is about adding a small freeze frame to the   game - which can subconsciously  increase the impact of an action. Check out Katana Zero - when you kill an  enemy the action freezes for a split second. The camera still shakes and  some particle effects still   ring out - but the action is frozen  in time, before starting back up. When playing at normal speed this small hitch in  the action makes every hit feel more impactful. In Hollow Knight, the camera stalls for  a long time when you, the player, take a   hit - which makes sure you register the mistake,  and gives you a brief moment to collect yourself. And finally, the camera can move and zoom  for a short period to add further excitement. In Dave the Diver, when you land  a catch the camera will suddenly   zoom in and frame the epic battle between  Dave and fish, before returning to normal. All of these techniques add juice  - but quickly shaking and moving the   camera can be troublesome for some  people so providing accessibility   options - like turning off screen  shake altogether - is a nice touch. So to wrap it up - the camera's job is ultimately   to follow the main character and  keep them on screen at all times. But it can do so much more than that. It can look ahead to focus on upcoming challenges. It can ignore jumps to avoid endless movement. You can add damping to smooth things out. Use special rules to feature  and frame important events. And make quick adjustments for impact and effect. But remember that there's no such thing as  a perfect camera that works for every game. it depends entirely on the thing you're making. A slow and pensive platformer needs  a very different camera to a twitchy,   erratic arcade thrill ride. But hopefully these tips give you  some good ideas for your own camera. You can play with some of these concepts  yourself in my interactive video essay   Platformer Toolkit, where you'll find  a whole panel dedicated to the camera. You can tweak the damping, zoom  in and out, add some lookahead,   and choose whether or not to ignore jumps. And if you want to find out how  to implement this stuff yourself,   check the description to find links to resources   that provide more practical programming  tips for coding the camera in your game. Thanks for watching and I'll see you soon!
Info
Channel: Game Maker's Toolkit
Views: 390,089
Rating: undefined out of 5
Keywords:
Id: TdWFzpgnljs
Channel Id: undefined
Length: 11min 38sec (698 seconds)
Published: Tue Sep 12 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.