Catacombs of the damned! (Formerly Another FPS style 3D demo)

Have you actually been making the compiler compile code as C (e.g. by using .c files, or by using gcc directly instead of through the Arduino IDE) or just writing C-like C++?

It wouldn’t be unless someone is doing something seriously wrong.

(In some cases the C++ can perform better, but usually by allowing a better construct to be used rather than comparing like-for-like. E.g. std::sort outperforms qsort because std::sort being templated allows the compiler to perform more inlining and other optimisations.)

It’s generally a bad idea to lump them together as if they were somehow the same language or C++ was just ‘C with some extra bits tacked on’.

They’re two distinct languages - C isn’t even a subset of C++.
The distinction can be important, the same code can behave differently depending on which language it’s compiled as.

Ok I take back what I said, pretend I said C++ all along. :wink: Thanks for pointing out all the differences. Not sure I was aware C isn’t a subset.

I have used C (.c files) with Arduino long ago I think, but I don’t remember really digging into the compiled binaries much back them.

1 Like

Nice job, dude!!! Cannot wait to give this a play!

1 Like

Wow, really impressive! I wasn’t really expecting an actual 3D game to work so well on the Arduboy. Fantastic work!


It’s fantastic. But probably it’s better to make HUD more compact to have a better game view?


Interesting idea but might be less readable on the smaller screen. Especially since the mana recharges automatically, it would be rapidly changing as it recharges.

I didn’t think that the HUD really tends to obscure much of the game play anyway?


Personally I prefer the bars because they remind me more of elder scrolls games.
I suspect the people who prefer numbers might be thinking more of Doom’s HUD.


Works fine as is for me. Been playing this on my daily driver arduboy. Awesome job!


I honestly signed up to just say this is the most amazing 3d I’ve seen on the Arduboy, well done!

I was messing around with porting a raycaster I had on the ESP8266 and couldn’t get my textures working, so I was currently going with solid walls for the time being.

Do you mind me using your code to try roll another game, quite keen to see if I can add more of story of some sort and maybe small quests and a map.

I know space will pose and issue since you said you were over 95% already, but would be keen to give it a go none the less.


Glad you like the game! The code is MIT license so feel free to fork and make your own modifications. As you mentioned, there is very little program space left so you might struggle to add any big features but good luck!

Please share any changes you make, however big or small as I would be interested to see what you come up with :slight_smile:


This game is AMAZING!!!

1 Like

Yeah, something to help navigation, even a compass might help.

1 Like

hi i went to Erwin’s Arduboy Collection and i got Catacombs of the damned! on my arduboy but now i cant get anything on my arduboy all i get is a error ? help to fix

1 Like

This was so awesome to find!

I love those old school early FPS games and have that exact pack you referenced from GOG that I bought several years ago. IMO the Catacombs games are very special and I would gladly play them any time over the latest AAA FPS. A lot of atmosphere and just good solid fun.

You have done an awesome job on this. It “feels” near perfect moving around. The gameplay is solid. A good balance of exploration and action. I liked destroying the vases / urns and finding the occasional surprise! Very cool. I think a few more enemies would be good but overall this is fantastic.

I kept shooting walls wondering if you had implemented the occasional destructible wall from the original games but, if so, I did not find any. I get it though is likely a technical constraint due to the tiny amount of RAM.

I do wish the console had an extra 0.5 KB to 1 KB of RAM available for dynamic stuff.

1 Like

Glad to hear you are enjoying the game! Just reminding myself of the amount of RAM / program memory left after compiling:

Sketch uses 28506 bytes (99%) of program storage space. Maximum is 28672 bytes.
Global variables use 2364 bytes (92%) of dynamic memory, leaving 196 bytes for local variables. Maximum is 2560 bytes.

So yes not much space left for additional features! Program space probably being the more limiting factor here. I think I originally was planning to have destructible walls like you suggested but it added to the complexity. I also wanted to have more sign posts with messages to read, sort of like how the Catacomb series has scrolls that you can pick up with tips or lore.


…someone has done a playthrough on the MiSTer Arduboy core :sweat_smile:



I played this game in my playthrough YT video :slight_smile:


After many moons, I actually ended up porting the Arduboy to an ESP32 and a 240x240 TFT screen from a badge we made for a conference last year.

Had a ton of fun playing Catacombs of the damned! on it and was my benchmark for making sure the screen was running fast enough.

Due to the scaling to full screen and the speed of the SPI, I had to thread the display and get the updates to it running on a seperate than and leave the game logic on the main thread, worked quite well in the end as you can see in the video :slight_smile:

Thanks for a stand out and fun game :+1:


Same issue happened to me by using the Arduboy Mate Android app. Was hoping you got a reply for this. If you ever found out how to fix it I’d love a reply on how.

Have you tried using the reset button?

1 Like