File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ ## About
2+ This is a simple game engine that was built to run bare-metal on a Raspberry Pi 3.
3+ Using the Raspberry Pi's UART hardware, the games can be played through a serial terminal, and create colored text graphics with ANSI codes.
4+
5+ The engine was architected with platform-specific details (timer, terminal) abstracted out so it could also
6+ be implemented and compiled for desktop, which is easier to test and debug.
7+ The platform-specific dependencies are injected in [ ` main.c ` ] ( source/main.c ) based on compiler flags.
8+
9+ ## Demo
10+ A menu and two games are included as examples, controlled using the WASD and Space keys.
11+
12+ <details >
13+ <summary ><b >Menu</b > (Epilepsy warning: has cycling colors)</summary >
14+ <img alt =" Menu " src =" images/game-menu.gif " />
15+ </details >
16+
17+ <details >
18+ <summary ><b >Snake</b ></summary >
19+ <img alt =" Snake " src =" images/game-snake.gif " />
20+ </details >
21+
22+ <details >
23+ <summary ><b >Tic-Tac-Toe</b ></summary >
24+ <img alt =" Tic-Tac-Toe " src =" images/game-tic-tac-toe.gif " />
25+ </details >
26+
27+ ## Design
28+
29+ <details >
30+ <summary >Architecture Diagram</summary >
31+ <img alt =" Architecture Diagram " src =" images/diagram-architecture.png " />
32+ </details >
33+
34+ <details >
35+ <summary >Sequence Diagram</summary >
36+ <img alt =" Sequence Diagram " src =" images/diagram-sequence.png " />
37+ </details >
38+
39+ ## Building
40+
41+ Building can be done with ` make raspi3 ` , or ` make gcc ` for desktop. Making raspi3 requires the Linaro arm-none-eabi-g++ cross compilation toolchain.
You can’t perform that action at this time.
0 commit comments