In Super Umbrella Ninja you play as Shiro - a powerful cybernetic ninja with a mysterious past. Use fast-paced ninja skills and your hidden umbrella sword Hizamaru to slash through the pink n' cyan streets of CyberTokyo. Face off against neo-Japan / cyberpunk inspired robots and cybervillians as you work to take down a growing threat in the city.
Super Umbrella Ninja (SUN for short) is inspired by tough old school games like Mega Man, the old 8 bit Ninja Gaiden, and the Shinobi games. Because of that I've used pixel art for main character and level assets. However, I wanted the game to push visuals more, so backgrounds use a mixture of 2D and 3D to create more depth - Unity is great at combining 2D and 3D so this has been working well.
SUN features tight controls and a lot of movement mechanics - double jumping, gliding, wall jumping, edge grabs and so on. It took a while to get the player controller feeling right, but I'm pretty happy with it now. There's stuff that you don't usually think about, but it helps the feel a lot, like jump input buffering (when you press jump before you've actually landed yet) and jump grace time (when you've actually moved off an edge but only for a fraction of a second).
The goal is to make Shiro feel fast and powerful, with fast and powerful enemies to overcome. The game is going to aim for challenging without being throw-your-controller impossible challenging. Boss fights will be radical and intense.
There are a number of 2D features being used here as well as other stuff, here's the main things I'm relying on to pull this off:
New Unity 2D features:
2D Tilemap - level layout and creation. To make development faster I've created Rules tiles.
2D Cinemachine - Cinemachine is the defacto best camera solution in my opinion, so I'm thrilled there's a 2D option.
2D Pixel Perfect - Along with Cinemachine, this is great
Vector Graphics - used for some FX and lighting
Amplify Shader Editor
Corgi Engine + Advanced Platformer 2D engine, both modified a lot
Devlogs (Updates come here)!
Animation is done frame by frame with pixel art, and then the unique frames are extracted and made into spritesheets, reassembled in Unity and animations there.
Normal-mapped 2D sprites
I experimented with normal-mapped sprites and, it's pretty cool! For this to work, separate sprite-sheets with the normal maps have to be created for the sprites.
Then you also have to use a shader that uses normal maps. I modified the default Sprite shader for this.
I'm relying on 2D Tilemap's new Rule tiles to make level layout easier. So far it's been awesome! A small amount of assets and I can create a large variety of levels. I'm keeping the artwork simple on the platform layer to keep the focus on play, with more beautiful visuals happening in the world all around you.
The enemies are each unique and have to be overcome in different ways to beat them. Bots, security drones, cybertanks, and other robotic cyber beasties wait to take you on.