Skip to content

Commit 47e048c

Browse files
authored
Create README.md
1 parent 1764011 commit 47e048c

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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.

0 commit comments

Comments
 (0)