Under the Tower - RPG


In a dying city, cut off from the world due to plague, The Tower stands above its center. While the rich and powerful gather in the tower, safe from the devastation below, those below are not so lucky. Among the trash on mud flats by the river, scavengers seek to find anything valuable. They are known as Mudlarks. This is the tale of one of the many unfortunate souls that lives…

Under the Tower.

I am happy to present Under the Tower, a new turn-based RPG for the Arduboy. Originally written by me for the Gamebuino, I decided to port it to Arduboy after getting one.


This version of the game is an enhanced port, because I had more space when using the Arduboy libraries. It includes a bigger viewing area, displaying the current objective on the pause screen, displaying the current floor on the pause screen (when in a dungeon), enemy health bars, and various small tweaks that improve the play experience.


You can find the source here.
You can find the binary releases here.

Game Manual

If you like learning game mechanics on your own then you should skip this, but here is a quick rundown of the items you can get in the game:

Fruit: Heals a small amount
Bread: Heals a medium amount
Meat: Increases damage
Tonic: Heals a large amount
Tea: Increases speed
Liquor: Increases damage resistance

Here is an explanation of the abilities of each character (minor plot spoilers, since you start with only one party member and acquire more along the course of the story):


  • Flail: The mudlark flails about, doing a respectable amount of damage.
  • Rally: The mudlark gives a rousing speech, increasing the damage of whoever is motivated.
  • Search: The mudlark takes a look around in the middle of battle to find something useful. The only way to get items.


  • Strike: The shadow leaps from the shadows, attacking with precision. A shame the weapon isn’t that powerful.
  • Vanish: The shadow melts into the shadows (a fitting name!), unsettling the enemy and gathering strength. If an enemy does manage to find the shadow, unfortunately, then the element of surprise is lost.
  • Haste: The shadow focuses intently and moves faster. Increases the shadow’s speed during a battle.


  • Heal One: The nurse carefully bandages and tends to the target. Heals a large amount to target.
  • Heal All: The nurse rushes about and tries to treat everyone all at once. Heals a small amount to everyone.
  • Protect: The nurse throws herself in harm’s way, focusing on protecting a specific individual and shielding them from all damage (or detection). The nurse takes some damage, but the nobleness of her act reduces the damage taken.

ArduRPG (free assets for Arduventure)
(Simon) #2

Who needs Arduventure when you can play this! Wow … great job.

(fred ) #3

looks cool. Ill check this out. It will satisfy my RPG fix nicely after finishing Arduventure.

(Nicole Birgel) #4

Great! Would have been a reason for me to buy the classic gamebuino😉 Now i can play it on arduboy!

(Scott) #5

@wuuff, Compiling this game with all warnings on produces a fair amount of warnings. You may wish to examine them and address at least the ones that may indicate that the game isn’t working as you expect, such as:

warning: comparison is always true due to limited range of data type

To see all warnings:

  • In the IDE select File > Preferences
  • Select: Show verbose output during: compilation
  • Select: Compiler warnings: All
  • Click on: OK at the bottom right of the window


Hmmm…I actually had to turn on warnings for something recently and was irritated to find that the IDE had been hiding so many warnings from me. There were so many that I decided not to bother looking closely at them since the game had behaved correctly up to that point.

Since you mentioned it, I went back and took a closer look at that warning, and it looks like I made some unnecessary comparisons because an unsigned value can’t be negative: I was checking whether it was within a range, but the bottom value in the range was zero, so the first comparison was always true. The result of the comparisons should still work like I intended.

Thanks for drawing my attention to that, though. Perhaps I should address those warnings at some point. At the very least I plan to avoid warnings for any new projects I start in Arduino IDE.

Thanks to everybody for the comments! Let me know what you think after you play it a bit. I tried to make things interesting by having something new appear fairly regularly (enemies, dialogue, characters, etc.) and have more than one possible strategy in combat. I’m curious to know if I managed to make the game stay interesting or whether it ends up feeling repetitive.

(Nicole Birgel) #7

As soon as i find some time i will try out this a little more

(Nicole Birgel) #8

So i spend nearly an hour with it and have to say it is a lot of fun. It is not too easy (i like that) and the always new generated dungeons add much replay value. It is hard to fill your hp. Is there a way to buy equipment or only search for it?
Maybe it would help if you could use eat/drink not only in combat.
The main character looks weird - in a good sense (reminds me of slimes from dragonquest with legs)

(Stephane C) #9

I played a little on it, i saved my game and then this morning when trying to load my game it just displays where i was but cant see my character. Water animates and all but i cant see myself or move i guess. That or the camera position didnt save properly and i am somewhere off-screen. No idea.

(Jul) #10

The game looks stunning but I find it a bit frustrating. Every random encounter drains my hp and the next one kills me.


Such a great game! Thank you so much! :blush::+1:

(Cody) #12

if i gave up arduventure i would be off my 8-bit slightly fake doctors prescription


@Vampirics, hmm, that sounds really strange. I haven’t encountered anything like that when testing the game. Could you send a picture of what happens?

Can anyone else confirm whether or not saving works for them?

@Nicole_Birgel, thanks for the feedback! The only way to get items is in combat. I wanted to add merchants, but I’m not sure I have room to implement it like I would want. I wanted to keep healing as only a combat option so it would not be possible to refill health out of battle. It does make things a bit harder though.

Also, everybody I showed the game to thought the character sprite looked weird, too. One person called it “muffin boy,” haha. Just an amusing result of my lack of art skills.

@Jul, sorry, I might have made the game a bit hard. It’s possible to make it through battles if you use a careful combination of abilities, however, and you can heal with items. Levelling up also gives you some health.

@manulli Thanks! I’m glad you’re enjoying it!

(Nicole Birgel) #14

As for the save feature: No, i didn’t have this bug yet.

(Diamond Leyba) #15

I love it!! Great job!!


No issues with saving on my side either. All works fine.
And i have to add how well made this game is. I couldn’t stop playing last night. I fell asleep during a fight, only for seconds, but that was the only reason why i stopped :sweat_smile:


Now the save issue happened here too. Seems as if the hero is in one of those boxes? Can’t move him tho. What a shame. My party was on LV 20 :confused:


Oh, dang it, I think I know why that’s happening. It’s because of a change I made right before I released the game, so I didn’t test it enough to encounter it.

It’s probably caused because I save the player’s x and y coordinates as whichever tile they’re in. I made it so that the player’s bounding box is a little smaller, and that made it possible to be saved inside a wall. I’ll try to make a patch really soon to fix that.

Your save can be fixed, but it requires backing up your EEPROM to your computer and modifying the save data. If you want, you can PM me about it and I can fix your save to move the player out of the wall.

Until I update the game, it should be possible to avoid this bug by saving out in an open area. I’m sorry about this if anybody lost any progress. If anybody has a broken save, I can fix it if you PM me.

(Nicole Birgel) #19

Ah, i always was grinding outside, this explains why i didn’t get this nasty bug.


Thank you! :slightly_smiling_face: I‘ll just wait for an update and start again. Looking forward to it :blush::+1: