Skip to content

Legend of Zelda Remake

The first dungeon of the 1986 NES original, rebuilt in Unity with a level of our own. Playable in the browser. By Jonah Cohen and Nick Stenman.

A recreation of Dungeon 1 from the original Legend of Zelda, built in Unity and C#. The goal was authenticity: grid-aligned movement, the NES weapons, every enemy in the dungeon, and room-by-room progression that plays like the original. On top of that we designed a custom item, a dash, and a multi-room level designed around it.

Play in browser ↗

What I built

Combat. Link’s sword swings in the direction he faces and fires a beam when he is at full health; the bow spends rupees as ammo, the way the original does; the boomerang flies out, stuns what it hits, kills one-hit enemies, and returns to whoever threw it.

Enemies. Stalfos, Keese, Goriya, Gels, Blade Traps, and Wallmasters, each modelled on the NES version’s movement and timing, with wall checks so grid-walking enemies never clip through a doorway. A Wallmaster that grabs Link drags him back to the dungeon entrance. Around them I added knockback, item drops, enemies that carry a key and drop it on death, and a death animation. Sprite animation is driven directly from C# rather than Unity’s Animator.

Audio and presentation. Every sound effect and the music, including Aquamentus’s roar, which plays only while you are in his room. I also built the 2D side-scrolling bow room and the NES damage flash on Link and the sword beam.

The custom mechanic

The dash is an alternate item on a short cooldown. It sends Link two tiles in the direction he is facing, refuses to fire into a wall, makes him invulnerable for its length, and damages anything in his path — straight through a Darknut’s shield. The level is built around those properties: Darknuts that block sword hits from the front, lava to cross, and a final room where a wall of lava chases you to the exit.

Controls

Arrow keys or WASD to move. X attacks with the sword; Z uses the alternate item; Space cycles the alternate item. Press 1 to toggle invincibility with full rupees, keys, and bombs, and 4 to jump straight to the custom level. The build runs best in a desktop browser.

facts
StatusLive
Year2026
RoleCo-developer, with Nick Stenman

Stack

  • C#
  • Unity 6
  • WebGL
  • Git
highlights
  • I built the player’s weapons: sword and sword beam, bow, boomerang, and the weapon manager that equips and cycles them.
  • I wrote the AI and animation for Stalfos, Keese, Goriya, Gels, Blade Traps, Wallmasters, and the custom level’s Darknuts.
  • I did all of the audio: sound effects, background music, and the Aquamentus roar.
  • For the custom level I built the lava, the combat doors that seal a room until it is cleared, and the rooms themselves.