Notifications
Article
Cinematic Platformer
Updated 8 months ago
1.0 K
3
JC
An attempt to create an old school cinematic platform adventure game using the Unity 2D tools and root motion.
Much like games such as Prince of Persia and Flashback, this is an attempt to create a step based platform adventure. Having made platform games in other tools, I'm interested to work out how these old games were made and how Unity can fold into that process using Unity's 2D Tile mapper, 2D Pixel Perfect Camera and 2D Cinemachine.
Using root motion on 2D sprites and a conditional animation controller. The theory is that by understanding the distance one loop of animation can drive a character in any distance you can play out the next step of animation based on the players input and allow it to conform to it's environment.
An example of this would be once completing a first loop of walk animation if the player is still pressing forward, then cue up the next loop of walking. Or if the player is pressing up at the end, move into the crouch down getting ready to jump up loop. All the characters physical movement within the world is driven from the XYZ position within the animations.
The art pipeline is based on taking animated 3D models from the modelling package and rendering one frame at a time to create a sprite sheet to flick through. The current move set includes walking, jumping, pulling up, climbing ladders, walking up and down slopes, crouching and crawling along. Another key movement is to be able to move in the Z depth. An example of this can be seen when climbing stairs.
This is achieved quite simply as the collision areas within the levels are created with 3D collision geometry and provides the extra Z dimension. This gives the effect that the player is moving away or towards the camera.
The Setting After trying various themes and locations including a mash between medieval and future tech, I finally fell back to a distant future city based in huge sprawling towers. Each of these towers have their own purpose such as habitation, industrial, public records and some built solely for the purpose of the corps that built them. Each tower is connected to the next via a transport system.
Gameplay You assume the role of a courier who's role it is to carry out jobs for a mystery corporation. Moving between the main towers you must locate target locations to either collect or deliver key merchandise at times needing to utilise stealth tactics to infiltrate locations. The Courier system which delivers tasks in the game is a terminal situated within your apartment. It gives you a location and action that needs carrying out in order to complete the missions. But be warned you will be up against other Corporations bent on preventing you from carrying out your jobs. Employ stealth, cunning and gather local intel to infiltrate target locations.
Conclusion This was a good spur to start creating the movement engine and committing pixels to screen. It will defiantly be a hobby project that I will be dipping in and out of when I get time. Having a background in making 2D pixel games in other engines it was great to see how Unity is building up this side of their engine, creating tools and pipelines to enable a pixel purity that in the past had been challenging to achieve. The title mapper and pixel camera are great additions and I'm looking forward to using them more in the future.
Other Projects
JC
Jon C
Artist
2
Comments
CC
Chuck Chuckerson
8 months ago
has a great look!
0
JC
Jon C
9 months ago
Amir MohamadrezaeeHi Jon, I like this character controller. greate work! it reminds me of the good old school games. Did you use 3d objects for platforms? according to the real-time shadows.
Hi and thanks. Yes the collision boxes are meshes with just a collider and 'shadows only' selected. I hope to do an update soon which will show this.
1
Amir Mohamadrezaee
9 months ago
Artist / Programmer /
Hi Jon, I like this character controller. greate work! it reminds me of the good old school games. Did you use 3d objects for platforms? according to the real-time shadows.
0