Creating a 2.5D Platformer Prototype

Hey everyone,

I’m currently in the process of creating my own first one-level game idea from scratch – a 2.5D platformer somewhat inspired by Inside. The game will have a 3D character and 3D graphics moving on 2 Axis (X and Y). I’ve worked through Ben’s 2D course years ago and studied general OOP programming methodologies so I’ve got programming skill and I comfortable breaking things in Unity. I currently teach High School computer science, game development, and app development.

I need help approaching the first step of my prototype: the character controller. I don’t want to use a pre-built solution. I have Corgi, for example, and I’ve watched a tutorial on doing this kind of thing in Playermaker but, I really want to build this on my own, from scratch, with a little guidance so that I come away understanding how the system I write works. There seems to be a big gap in my understanding here of what exactly I need to build or do. I’ve been scouring the web but nothing I’ve found really helps me think critically about what I need to do next.

Just to reiterate, I’m not looking for the answer or free code. If you guys can recommend a guide or even help me come up with a list of problems I need to solve or some basic pseudo-code that would be awesome. Here’s the functionality I’m looking for:

  1. Character is constrained to the Z axis (or X).
  2. Left/Right arrows turn character around if facing the opposite direction of the key press (or joystick or whatever.)
  3. Left/Right arrows move the character left or right, activating the animation / blend tree state of the character ( or cause the state to activate and move the character via root motion.)
  4. Character can jump
  5. Character can crouch

And that’s it for the basics. I’m not sure exactly how animation plays into scripting with root motion or activating animations, etc. What I am essentially asking for is: how do I begin to prototype this character controller? What are the things I need to be looking at doing from a to-do or pseudo-code standpoint? For example, I know how to use Translate or AddForce but those aren’t really appropriate in this scenario (or are they?) How would I go about getting the animator to move the character or would I move the character from script? Any help is much appreciated!


You can certainly find a few helpful techniques in the Tile Vania section. Instead of 2D components, you would use the 3D components. In the Project Boost project in the 3D course, we move the rocket along the x-axis only, so this could also be interesting for you.

Please feel free to ask our helpful community of students for advice in our official Discord chat.

1 Like

Thanks @Nina. I’ll head over and look at TileVania. I think constraints will be easy but Boost could be helpful as well.

You’re welcome. :slight_smile:

Privacy & Terms