$ cat ~/work/mbed-rpg-game.md
project · embedded · 2023
Beat the Buzz
A top-down RPG on bare-metal ARM
A handheld top-down RPG on an mbed LPC1768, with a hash-table world backing two 50x50 maps, a boss fight and a pause menu, all in a few kilobytes of RAM.
- kind
- project
- course
- ECE 2035, Georgia Tech
- category
- embedded
- period
- Mar 2023 - Apr 2023
- status
- completed
head -n 20 README
A color-screen role-playing game on an mbed LPC1768, built on a bare course shell with a C hash table underneath it.
The project came in two parts. First, a separate-chaining hash table written in C, tested with GoogleTest and checked for leaks with AddressSanitizer; the game stores every map tile in it, keyed by coordinate. Then the game itself on the mbed LPC1768: a 50x50 world drawn through an 11x9 tile viewport with partial redraw at 100 ms, hand-drawn 11x11 sprites, and a nav switch and buttons for input. On top of the required features I added a start screen, a second faster movement mode, a pause menu, a lives system, and a boss fight with two enemies that each die to a different spell, plus a hidden extra life. With no engine, no filesystem and a few kilobytes of RAM, everything a normal platform gives you for free had to be written by hand.
grep -n highlights
- 01Wrote a separate-chaining hash table in C, tested with GoogleTest and memory-checked with AddressSanitizer, storing every map tile by coordinate.
- 02Rendered a 50x50 world through an 11x9 tile viewport with partial redraw at 100 ms on an mbed LPC1768.
- 03Drew the sprites by hand as 11x11 pixel arrays and drove them from the nav switch and buttons.
- 04Added a start screen, a faster second movement mode, a pause menu, a lives system and a hidden extra life beyond the required features.
- 05Built a boss fight with two enemies that each fall to a different spell.