The Octorock Enemy Update and All Project Files [Update 4] The Legend of Zelda GB


  • Contents:
  • Update overview
  • New Feature (Octorock enemy)
  • Quality of Life Improvements / Smaller Changes
  • All Project Files Available
  • Developer notes and experiences
  • Plans for the future of the project


Update Overview:

The main part of this update is the Octorock enemies that have been added into the game. These enemies are the most basic type of enemy in the game and its the one that you see most of in the original Legend of Zelda NES game. The reason why I wanted this update to have one of the enemies included within the game is because when you are moving across the overworld, without any enemies being there, the world feels empty and lifeless and might make the game less interesting to play. So by adding the Octorock enemy within the game, the game now has more life to it as there are other moving things in the overworld and everything isn't just static anymore.

The Octorock enemy AI isn't a one to one replication of the original games, but it has the same base functions and purpose to them.


New Feature (Octorock enemy):

  • Added the Octorock enemy into the game. The AI will choose a random direction to face, move a random amount of 'steps' within the range that it is given, and then randomly decides whether it is going to attack by shooting a rock in the direction they are facing.
  • The Octorocks and their rock attacks don't damage the player as there isn't a health system in place as of this update, so the rock just disappears when hitting the player, and the player and Octorock just bump into each other when touching.
  • The Octorocks appear in all parts of the overworld that they would normally appear in the original game.
  • There are also the two different types of Octorocks Red/Orange and Blue. In this game, the Orange/Red Octorock is the darker coloured one whereas the Blue ones are the have the lighter coloured sprites. The differences between the two types of Octorocks are only appearance and their position in the overworld.
  • When Octorocks are hit by the players sword, they disappear. It only takes one hit to make them disappear.



Quality of Life Improvements / Smaller Changes:

  • Swapped around the positions of the 'More...' and 'Back...' options in the dungeon teleport menu in the developer menu to make the 'Back...' option universal with where it is on all the other menu options.
  • Added the ability to use the Sword in the test room area.
  • Added the ability to use the Bomb in the test room area.
  • The main menu screen now shows what version the game is in which is version 0.4 for this update.
  • Slight changes to the beta information text on the main menu screen which also includes the game version.


All Project Files Available:

You might have seen that in the downloads there are two png images that can be downloaded which contain the two tilesets that I have used to create all of the backgrounds in this project, but along with this update, I am going to be providing all the GBStudio project files to download.

My plan from the beginning was to make all of the files that I use to create the game free to download as when I am creating projects, sometimes I find it easier to understand things by look at what is happening within the project rather than someone trying to explain it to me, so if you want you can do that with the project files or change the project to include your own changes to it or just take the assets that I have created and use them in your own project if you want.

All that I ask is please do not just download the project and re-upload it claiming it to be your own. Crediting me isn't mandatory but would be appreciated if you create a project.


Developer Notes and Experiences:

Octorock AI:

This update wasn't very difficult to add to the game, but I had to learn quite a bit about how to create an enemy AI as I haven't created an AI in any project before, so I was learning how to make one and when I had created the 'framework' for the AI, I did a lot of tweaking to try and get it how I wanted. I created the AI around random numbers and probability so that way I can change the numbers if I think the Octorock is shooting the rock too often or moving too many steps etc. Doing this made me realise how annoying GBStudio random system was as after some research, I found out that every time the choose random number between x and y event ran, it wasn't exactly different each time because of the random number coming from the GameBoy system memory or something like that. This made the AI constantly and only do things like move the same amount of steps each time when it is supposed to be random each time.


Thanks to the help of the GBStudio subreddit, I got told that I have to do something with the create random seed event which I had never touched before, but I had to add this script with the players button inputs to try and get a different, more random outcome of the Octorock AI. Thankfully it made the Octorock behave more randomly than what it was previously.


Tile Swapping:

At the beginning of developing this update, I wanted to introduce tile swapping into my project as it will help in a lot of areas of the game because of the GameBoys limit on how many actors can appear on screen at one time. So I wanted to use tile swapping a there are part in the original Legend of Zelda NES game such as the Armos enemy that appears to be a background tile, but when the player touches it, it becomes an actor and a moving enemy. I think I could use this method on the secret cave entrances where the player has to bomb the walls as well to swap the background tiles rather than adding another actor ontop.

However, when researching tile swapping, it was more complex than I originally though as currently there isn't a way to make it work using the GBStudio engines event scripts, instead you have to code it yourself using the GBStudio GBVM script which allows you to code in things that the engine doesn't offer itself. 

So instead I created the Octorocks and their AI for this update, but I might have a look into the tile swapping and GBVM again in the future for another update.


Plans for the future of the project:

I think the project has progressed quite a lot from the original first release version that was just walking around the overworld as the project feels much closer to the original game and more lifelike with the introduction of the Octorock enemies, dungeons, bombs etc.

However updates from now on may slowdown or stop entirely as there are other things that I need to use my attention on whether its different projects or other things.

As of writing this devlog, the project has over 300 views and over 100 browser plays so thanks for checking my project and devlogs out.

Get The Legend Of Zelda GameBoy [ver 0.4] (PLAY IN BROWSER)(Open Source)

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.