https://github.com/implferris/esp32-cosmic-yudh
Cosmic Yudh, a shooting game written in Rust for the ESP32 with an OLED display, using the Embassy framework.
https://github.com/implferris/esp32-cosmic-yudh
cosmic embedded embedded-gaming embedded-systems esp32 game oled oled-ssd1306 rust rustlang shooting ssd1306 star wars
Last synced: about 1 month ago
JSON representation
Cosmic Yudh, a shooting game written in Rust for the ESP32 with an OLED display, using the Embassy framework.
- Host: GitHub
- URL: https://github.com/implferris/esp32-cosmic-yudh
- Owner: ImplFerris
- Created: 2025-02-06T18:36:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-07T18:22:11.000Z (over 1 year ago)
- Last Synced: 2025-04-02T03:43:12.678Z (about 1 year ago)
- Topics: cosmic, embedded, embedded-gaming, embedded-systems, esp32, game, oled, oled-ssd1306, rust, rustlang, shooting, ssd1306, star, wars
- Language: Rust
- Homepage:
- Size: 30.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cosmic Yudh: a Shooting Game written in Rust for ESP32 with OLED Display
A space shooting game for the ESP32 with an OLED display. You control a spaceship, shoot enemies, and dodge attacks. Written in Rust using the Embassy framework. The game gets harder as you score more;levels increase, enemies move faster, and more bullets fired from enemy.
## Hardware Requirements
- ESP32 (WROOM Dev Kit 1)
- SSD1306 OLED I2C 128x64 Display
- Joystick Module
- Jumper wires and breadboard
## Circuit
| ESP32 Pin | Component |
|----------|-------------------------|
| GPIO 23 | SDA pin of OLED |
| GPIO 18 | SCL pin of OLED |
| 3.3V | VCC pin of OLED |
| GND | GND pin of OLED |
| 3.3V | 5V pin of Joystick |
| GPIO 32 | SW pin of Joystick |
| GPIO 13 | VRX pin of Joystick |
| GPIO 14 | VRY pin of Joystick (unused) |
Note: I used only the VRX input for the player's movement(Up and Down) and won't be tracking VRY.
## Related Tutorials
You can refer to the following tutorials in the "impl Rust on ESP32" book to learn how to use the joystick and OLED with the ESP32.
- [Using Joystick Module with ESP32](https://esp32.implrust.com/joystick/index.html)
- [Using OLED Display Module with ESP32](https://esp32.implrust.com/oled/index.html)
- [Using Buzzer](https://esp32.implrust.com/buzzer/index.html)
## TODO
- Optional feature to use buttons instead of joystick
## Preview
https://github.com/user-attachments/assets/6613e051-f519-46a0-83c0-bf4428d5ef1c