Hey all, I’m new to Godot but have some hobby game dev experience. Basically, I would like to make a game that is similar stylistically to Klonoa 1 and Kirby 64 in Godot. What makes these 2.5D platformers unique is that the path that the player moves in can change and be curved and so the camera can follow the player but the movement for the game still adheres to 2 axes. If you need an example here is one: https://youtube.com/clip/UgkxDhAO-ZeXiQ7jV5GhRtvZgDpe8ETFst5E?si=G8Wh-g5WQYL3H797
I am going to be using Sprite3D with billboarding to handle the player, enemies, characters and all other things while using 3D environments (I have heard there could be performance issues with this but not sure if that is outdated). But I can’t quite understand what I should do to implement the fixed path that the player is going on, I have tried to look up examples or tutorials on this but have not found anything. How would I go about this?
Additionally, if I can be pointed in the right direction regarding the camera like how does the camera changes depending on the angle of the player is achieved and is smooth? (I assume some kind of lerp but I do not know)
This may be more complex than you think, but the principle is quite simple: define a 3D path the player and camera will follow, calculate the player and camera position from the path direction.
How to calculate it will depend on many things, though, like wether the player is free-falling, the previous movements, extra hints for the camera etc…
You’re gonna need a function that transforms 3D coordinates to the local space of your curve and back, and that’s just not trivial. There is no easy way to do that. You just have to account for all the different cases.
If a smooth path seems too daunting, you can also just use a polyline (aka a list of vertices in order) and then use lerp in-between. You need to put in a lot of work to get something as polished as Klonoa!
Thanks for the info here! I was beginning to realize the complexity of what I wanted to achieve here but I am up for the challenge. I was actually thinking of making 2 different 3d paths: one for the player and the second for the camera. (Like a camera track similar to how film does it) Either way thanks for conceptualizing what I would need to do.
Of course, I could just have 3d environments for a 2D plane but what is the fun in that?