Post

I've spent *years* researching 3D Platformer Cameras in hopes of making Slime 64's camera "not terrible." In this thread, the White Cylinder is the Camera Target (slightly above the player!), and the Orange Cones represent the "vertical dead zone" where the camera won't follow player movement.

135 reposts660 likes

Does Slime 64 allow screen size change, window manipulation or locks in a fullscreen? If it does allow different screen sizes, does the code take in account the Screen Vector2 besides the white cilinder vertical deadzone?

We don't allow for fully organic screen size change, but we allow for resolution changing in windowed mode, and toggling borderless fullscreen. The process doesn't take absolute screen position into account, but since changes like that usually occur while paused in a menu it hasn't been an issue

game development is so fascinating to me. i'm a programmer in an entirely different field but i understand the frustrations y'all encounter and its cool to see your approach. great work here

thanks so much! my day job is in more standard corporate software development and I'm surprised how often skills or techniques learned in one can help the other! problem solving is a skill all its own - part of why I love game dev so much

When performing a standard jump on flat ground, the camera essentially doesn't move. However under normal gameplay, if the player moves up far enough to surpass the deadzone, the camera target pretty quickly (but smoothly!) lerps up to keep them in frame. Similarly the same happens when descending.

When airborne we raycast down to see if the player is near any ground. If they are, and the grounded camera position would be *higher* than its current position, it ascends to match. Notice how the camera doesn't descend when going downhill. This prevents undesired "dips", as seen in Yooka-Laylee.

However, these systems aren't enough on their own. Player action should always inform camera behavior. When the player double jumps, they have indicated they want more height. We snap the camera's vertical target to match where they performed the double jump, and then resume normal behavior.

Similarly, we have a limited-range flight ability. Since we expect more vertical gameplay while using this power, we make the camera target more aggressively lerp towards the player's vertical position, essentially bypassing the deadzone. Note the difference between an air jump and a normal jump.

I love the genre to death (obviously 😅) but one conclusion I've come to is that delivering one at reasonably good quality and length is for chumps - indies with smaller teams would be much better served making smaller or more systemic games. I hope to scale back a bit after Slime 64 haha

oh my god I am so interested in different styles of third person cameras and what makes them feel good or bad... Do you have recommendations for resources to learn about different types and features? Amazing thread. Your camera is great!!

This tweet from @walaber.com was extremely helpful to get started: > When you see a game that looks super smooth and you're curious how the camera works, try overlaying some lines on the screen to help observe the camera behavior. I've never done this and *not* noticed something interesting.