Skip to content

A bare-metal game engine for the Raspberry Pi 3, playable through a serial terminal

Notifications You must be signed in to change notification settings

BenWoodworth/RasPi3-UART-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Demo

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

Menu (Epilepsy warning: has quickly cycling colors) Menu
Snake Snake
Tic-Tac-Toe Tic-Tac-Toe

Design

The game 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 based on compiler flags.

Architecture Diagram Architecture Diagram
Sequence Diagram Sequence Diagram

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.

About

A bare-metal game engine for the Raspberry Pi 3, playable through a serial terminal

Resources

Stars

Watchers

Forks

Packages

No packages published