introduction
This was a game jam project for the Super Nintendo Style Graphics Jam.
The theme was "You are not the main character", so I decided to make a puzzle platformer about escorting a reckless heroine through a dungeon.
The original goal of the project was to achieve convincing SNES visuals using 3D, although this was ultimately abandoned.
Aside from using 3D to speed up asset production, I attempted to "solve" a core issue I have with isometric platforming games: a lack of depth perception.
By dynamically "lighting" the entire layer of tiles the player exists at in 3D space, the player has an easier time judging their vertical position despite the orthographic view.
Using Godot's 3D tiling system and shader magic, I constructed a system in which I could quickly build out 3D maps that looked like 2D pixel art at runtime.
model
In some portions, 3D was used to create a pixel art basis.
The above set of sprites was cleaned up manually, but somehow modeling and rigging a pair of wings and cleaning them up is still much faster and more precise than manual pixel art, especially considering the need to quickly generate multiple angles.
This organic growing block was made using curve animations. In the compositor I used a manually drawn base 64x64 cube sprite to mask and shade the final result.
shader
Pixel Snapping
One of the biggest issues with making 3D art appear as authentic pixel art is "shimmering".
An unmoving 2D sprite has no changes in appearance, while a 3D object moving in 3D space may be slightly reinterpreted due to the multitude of decimal places of global positioning.
Notice the constant change on the above cube's linework, giving away that it's not a sprite.
The only adequate way to solve this is to round the object's movements in correspondence to the size of the screen's pixels.
Without this logic across the scene, it would create substantial problems due to the 3D tilemap consisting of many separate meshes.
dev
Pathfinding
Because of the retro aesthetic and due to the desire to not generate navmeshes repeatedly during puzzle testing,
I decided to implement pathfinding from scratch by generating nodes at each tile.
The escorted character uses astar to find the quickest grid route to the exit door.
I then decided to add a mechanic that would allow the player to have some control over the escorted character's pathing, so I added the ability to start small fires that the escorted character would put out. This simply overwrites the character's destination from the end door to the flames in the order they are placed.
Scouting
Due to the nature of the reckless heroine, it was vital to have the player control when to "start" a level.
My solution was to implement a "scouting" mode where time is frozen, allowing the player to determine a solution for the room's puzzle before executing that solution in real time.
Though there aren't really any stakes in this example...
Summoning
The core mechanic of the game is summoning blocks.
The player is also given the ability to use wind to push blocks around, leading to frantic placement under the escorted character, sokoban-like puzzles to hit switches, or riding the blocks across the stage.
Debug
In trying to achieve total SNES authenticity, I did a lot of work for visual debugging.
Features include CRT filter toggling, a 240p test grid (used here to see where to best place UI elements, due to CRTs often being at risk of cutting off the outer pixels of the screen),
adjustable FPS limiter, and a stencil grid to check that no 3D objects were exceeding the 64x64 sprite size limit the SNES adheres to.
Pixel Art
Although the broad project was intended to use 3D, I knew from the start I would hand draw the character sprites due to their resolution.

Portraits
For the portraits, I did rough sketches of the characters at high resolution and then drew over them at a reduced scale.
