top of page

Reverse Engineering Zelda

Updated: Sep 23, 2021

GDD710 Development Practice Module - Week 3 - Activity

_______________________________________________________________________


This weeks activity embraces prototyping, by identifying an existing artefact that I find particularly interesting and "Reverse Engineering" it into my own prototypal representation. These artefacts can range from a specific game's scoring system, to the measure of user friendliness on a shopping website. The more advanced the artefact, the more challenging the activity will become. This will enable me to experiment where my strongest skills are, through various approaches of prototyping and adapting it to a creative practitioners piece of work.


The meaning of reverse engineering is self-explanatory. First used to assist in the reconstruction of engines in the 1920s, it is the process of engineering a finished/existing product and reversing it to understand how that product was made. The goal when using this process is to extract design and implementation information into individual components, for ease of readability and gain working knowledge on the original version that could assist in a potential recreation (Brain Hess, 2019).


In games development, alot of designers tend to reverse engineer retro games due to moral nostalgia and preserving the mordern history of gaming. Taking an older and historic game enables you to open up more avenues of playability. Such as improving the visuals, porting to an updated system or even self-taught history, having a better understanding in how a favoured game came into digital existence. I'm going to follow the same traditonal method and reverse engineer the classic NES best seller, The Legend of Zelda (Nintendo, 1986).

________________________________________________________________________


Chosen Artefact: The Legend of Zelda


Even though it was before my time, I have always considered Zelda to be a heart-warming favourite, more recently when getting into game development as it demonstrates a prime example of small beginnings to take off and make such an enjoyable and commercial mark on the industry. I strongly remember owning one of multiple successors, The Legend of Zelda: The Twilight Princess (Nintendo, 2006) full of exploration, companionship and a literal LINK between realms as a Hylian and a Wolf. Going back to the original, The Leged of Zelda is an open-world adventure game created by the famous Shigeru Miyamoto, as well as story writer Takashi Tezuka, surrounding the protagonist Link, embarking on a hazardous journey to discover his heroic destiny within the fantastic world that is Hyrule.


"As a child, Miyamoto loved to explore the area around his home - woods, fields and even caves. Those memories, that sense of imagination, is clear to behold in The Legend of Zelda." - (Mike Diver, 2019)


Figure 1: Shigeru Miyamoto Image (Iggy, 2020)

________________________________________________________________________


Researching The Legend of Zelda


I went into quite alot in terms of background research on Zelda due to its massive influence on the industry, 35 years since initial release. This enabled me to gain a stronger insight on the historical and technological impacts the game has had, coming from the soul creators themselves. Even though I do not own a physical cartridge or Nintendo Entertainment System Console (NES). I did however find an online Emulator which allowed me to play the closest to the retro-style version that I could get. I played through about 10 minutes worth of gameplay as it was more about the feel in how the mechanics and exploration really made this creation stand out. It made me really appreciate how much design and development went into this game, especially the RPG-like experience which looking back, was a very unknown genre in the mid-80s where consoles were slowly on the rise.


Zelda's projected atmosphere comes across so differently to other games where you have this sense of independent advenure around you. The whole transition from one screen to the other prepares you for the unknown due to the maps size and content. Miyamoto's vision of Zelda was to make the RPG difficulty to play at an optimal level. This would not prevent players from unlocking certain passages or areas to progress through the story, but be given that sense of intuition that there is more to prepare for than just walking from a stable section of the map to a threatening one. I did some brief research on Zelda during my undergraduate studies which inspired alot in terms of functionality and appearence. This was during my final year, when I was involved in a 22-man studio aiming to develop an RPG-like game under 50kbs which as World Builder and Lead Designer, I named "Tales of Orelia".


During my other research findings, I came across a forgotten interview from 1992 that gives some further enlightment in how the production of Zelda was accomplished. Miyamoto discussess more successes than than faults when it comes to the development of the first Zelda as this was 6 years apart from initial release. His original plans to launch the game was limited within Japan due to the Famicon Disk System, unitl it was publshed internationally in 1987 on the NES with additional disk space, as well as an internal battery to facilitate data saving. I found the difference in disk space between the Famicom and NES since the Famicom cartridge of Zelda requires all 8MBs (Liam Doolan, 2019). This meant that modifications had to be made such as text for data needing to be estimated and written in single syllabary known as "Katakana" to compensate for the extra megabits required. This all changed when the NES cartridge was created.


Miyamoto's imagination established the right non-linear structure and correlation of puzzles to grasp a player's mindset and continuously deliver the thrill of discovery and purpose in his other forthcoming RPGs. The production of Zelda truly paid off in terms of gameplay that would eventually become the most determined genre of video games, to step into the groundwork frame and inspire for future generations of both companies and and consumers to come (Ryan Lambie, 2011). Alongside, I discovered some original design documents that were used to base the orignal map layout of Hyrule from the ominous Skull room, to the numerous explorable dungeons full of danger and secrets. it amazes me to see this literal level of design is still used within the industry to date. It truly demonstrates how much of an impact this collection of sketches outline the games representation from just a few rough drawing proposals. Both Mayamoto and Tezuka themselves had the right vision and attention to detail on paper that would line up the pixel art graphics with such precision. below is some illustrations of their level designs (Chris Kerr, 2016).

________________________________________________________________________


Figure 2: Skull Room Sketch (Takashi Tezuka, 1984)

________________________________________________________________________


Figure 3: Map Sketches of Hyrule (Shigeru Miyamoto, 1984)

________________________________________________________________________


Wireframing


From the given illustrations given above, I attempted my own mockup designs in a low-fidelity as wella as high-fidelity to capture the similar patterns and techniques attempted by the geniuses themselves. This was accomplished using a very reliable online tool called AutoDraw which gives you a selection of methods to those who are not so confident in drawing for people like myself. You can use the auto method where you can draw a scribbly version of an object, which will be highlighted from the smart predictor function attempting to portray what object I am aiming to draw. I find this very useful and less time consuming. The other method is a standard marker which gives that more natrual approach but gives me less predictive sketches in what I am attempting to interpet.


Due to the map size of Hyrule, I stuck with two simple green sections that would eventually be devloped upon through a vertical slice. My first approach was to sketch on pen and paper which will be my main concept. I had to consider what scope I was dealing with as the layout was quite specific and needed to follow the similar design flow from the original. This worked in my favour as I spent alot of time researching the UI and content of the game such as environment and story. Below is an illustration of my sketched and digital level design mockups of Zelda.

________________________________________________________________________


Figure 4: Zelda Sketched Wireframe Mockup (Kyle Cornwell, 2021)

________________________________________________________________________


Figure 5: Zelda Digital Wireframe Mockup (Kyle Cornwell, 2021)

________________________________________________________________________


I closely paid attention to the size and colour scheme of the map as the whole of the game was made up of pixel art. The basics from these designs would establish a playable prototype with a moveable character (Link) and a transition from the stage of the map to the other when reaching towards a open path (indicating blue arrow). One stage consists of getting a feel of the world and urging some exploration, whereas the other would appear more challenging to players with an upcoming enemy (Moblin) that must be killed within close contact. This would then push the player to move towards the princess at the other side of the map (Zelda) and thus completing the game. Of course, the original Zelda has alot more content and challenges put in place. Considering this is a brief prototype it does the job, to demonstrate the initial goal. I engaged alot of enjoyment when sketching these wireframes as I find designing quite theraputic, enabling me to push my creativity to the test.

________________________________________________________________________


Vertical Slice


Following up on these wireframes, I wanted to test my creativity further by fully reverse engineering Zelda from the NES and recreating it using the Unity game engine. I felt confident using this chosen engine as it has been my main choice of software throughout the whole of developing games. Having my concept in a high-fidelity design, I was able to reconstruct the levels by using the user-friendly tools that is Unity's tilemap system. It had been quite a long period of time since I used the tilemap system due to developing more 3D games instead of 2D topdowns. My last experience was making a 2D mobile dungeon game that really tested my tilemapping capabilities. I decided that I needed a refresher in this particular area.


I came across a handy video from the developer Brackeys who explained how the variation of layers worked and how you can import sprites using the editor in Unity, to individually select which type of tiles you would like to add, which would lead to constructing the overall map. I found a copy of the original Zelda sprite sheets online which were quite easy to import, give or take some editing in a similar online version of Adobe Photoshop called Photopea where I was able to collect the neccessary components that would make up the 2D pixelised assets required. Below is an illustration of the sprites I acquired from online.

________________________________________________________________________

Figure 6: Legend of Zelda Link Sprites (Nintendo, 1986)

________________________________________________________________________


Figure 7: Legend of Zelda Hyrule Tileset (Nintendo, 1986)

________________________________________________________________________


Figure 8: Legend of Zelda UI Hud (Nintendo, 1986)

________________________________________________________________________


Once the overall tilemap was completed, I just needed to script some simple character movement using the C# programing language in scripting software that is Visual Studio Community 2019. Once the general character movement and level transition were implemented. The vertical slice was almost completed. One issue I encountered was the smoothness of the level change as the original Zelda consisted of Link moving to a certain path to the next stage of the map, followed by a swipe to the left to introduce that following stage. I attempted to follow a similar function but this came across as too complicated to my levels of programming.


Instead I scripted it so when Link collides with a certain area of that path, it would trigger a change in position that would relocate both Link and the map to display the change in stages of the level. To a degree, this worked in my favour but due to my restricted time limit, this was the best method. I always find as long as it works similarily, it is acceptable enough. Once the imagery of the UI and some music was implemented to give abit more of that retro feel to the original, I built the game to ensure it ran on a browser using the WebGL option and run it on the website Itch.io due to a constant occurance of errors when uploading to a sole browser which could not be executed properly. Below is a video of my Zelda Vertical Slice developed in Unity running on Itch.

________________________________________________________________________


Figure 9: Legend of Zelda Prototype (2021)

________________________________________________________________________


Personal Thoughts on Reverse Engineering Zelda


Since this was a great warmup activity for the upcoming Rapid Ideation, I thoroughly enjoyed taking an eccentric creation from Nintendo and reverse engineering it into a more-updated platform that enables you to play in-browser using a WebGL plugin. It really benefited using the wireframes since they are a main key stage during any games design and prototyping process. I could visually see where the design was going to be implemented as this is following industry-standard techniques. It was also very experimental going back to Unity as I have not developed anything since making a 2D survival game. This enabled me to jump back into what I was a familiar with, minus the lack of knowledge in using tilemaps but all the same a successful attempt. It truly shows my proficiency in Unity and how my C# skills are still to a mediocre strong point, that will be improved on towards new projects. I hope to dive deeper in programming the Rapid Ideation and see what creations I end up constructing.

________________________________________________________________________


References:


Brian Hess, 2019. What Is Reverse Engineering and How Does It Work? [Online] Available at: https://astromachineworks.com/what-is-reverse-engineering/ [Last Accessed 19/08/2021]


The Legend of Zelda, 1986. Nintendo. [Online] Available at: https://www.nintendo.co.uk/Games/NES/The-Legend-of-Zelda-796345.html [Last Accessed 19/08/2021]


The Legend of Zelda: Twilight Princess, 2006. Nintendo. [Online] Available at: https://www.nintendo.com/games/detail/the-legend-of-zelda-twilight-princess-hd-digital-version-wii-u/ [Last Accessed 19/08/2021]


Mike Diver, 2019. Retro Gaming: A Byte-Sized History of Video Games. Michael O'Mara Books Limited, London [Last Accessed 19/08/2021]


Arcade Spot, 2021. The Legend of Zelda. [Online] Available at: https://arcadespot.com/game/the-legend-of-zelda/ [Last Accessed 19/08/2021]


Tales of Orelia, 2019. LazyTank Studios. [Online] Available at: https://lazytankstudios.itch.io/tales-of-orelia [Last Accessed 19/08/2021]


Liam Doolan, 2019. Forgotten Inteview with Miyamoto Sheds Light On A Classic Zelda Production. [Online] Available at: https://www.nintendolife.com/news/2019/05/forgotten_interview_with_miyamoto_sheds_light_on_a_classic_zelda_production [Last Accessed 19/08/2021]


Ryan Lambie, 2011. The inspiration behind The Legend Of Zelda. [Online] Available at: https://www.denofgeek.com/games/the-inspiration-behind-the-legend-of-zelda/ [Last Accessed 18/08/2021]


Chris Kerr, 2016. Nintendo digs up original The Legend of Zelda design docs. [Online] Available at: https://www.gamasutra.com/view/news/288293/Nintendo_digs_up_original_The_Legend_of_Zelda_design_docs.php [Last Accessed 19/08/2021]


AutoDraw, 2017, Google Creative Lab. [Online] Available at: https://www.autodraw.com/ [Last Accessed 19/08/2021]


Unity, 2004. Unity Technologies. [Online] Available at: https://store.unity.com/download-nuo [Last Accessed 19/08/2021]


Brackeys, 2018. TILEMAPS in Unity. [Last Viewed 19/08/2021] Available at: https://www.youtube.com/watch?v=ryISV_nH8qw


Al Sweigart, 2012. 8-Bit NES Legend of Zelda Map Data. [Online] Available at: https://inventwithpython.com/blog/2012/12/10/8-bit-nes-legend-of-zelda-map-data/ [Last Accessed 19/08/2021]


Photopea, 2013, Ivan Kutskir. [Online] Available at: https://www.photopea.com/ [Last Accessed 19/08/2021]


Visual Studio Community 2019, 2019. Microsoft. [Online] Available at: https://visualstudio.microsoft.com/downloads/ [Last Accessed 19/08/2021]


Legend of Zelda Prototype, 2021. Coven Interactive. [Online] Available at: https://vampireviktor20.itch.io/zelda-prototypev [Last Accessed 19/08/2021]



104 views0 comments

Recent Posts

See All

Comments


bottom of page