Skip to content

Commit

Permalink
Create README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
BenWoodworth authored Oct 5, 2021
1 parent 1764011 commit 47e048c
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## About
This is a simple game engine that was built to run bare-metal on a Raspberry Pi 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.

The engine was architected with platform-specific details (timer, terminal) abstracted out so it could also
be implemented and compiled for desktop, which is easier to test and debug.
The platform-specific dependencies are injected in [`main.c`](source/main.c) based on compiler flags.

## Demo
A menu and two games are included as examples, controlled using the WASD and Space keys.

<details>
<summary><b>Menu</b> (Epilepsy warning: has cycling colors)</summary>
<img alt="Menu" src="images/game-menu.gif" />
</details>

<details>
<summary><b>Snake</b></summary>
<img alt="Snake" src="images/game-snake.gif" />
</details>

<details>
<summary><b>Tic-Tac-Toe</b></summary>
<img alt="Tic-Tac-Toe" src="images/game-tic-tac-toe.gif" />
</details>

## Design

<details>
<summary>Architecture Diagram</summary>
<img alt="Architecture Diagram" src="images/diagram-architecture.png" />
</details>

<details>
<summary>Sequence Diagram</summary>
<img alt="Sequence Diagram" src="images/diagram-sequence.png" />
</details>

## Building

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 comments on commit 47e048c

Please sign in to comment.