Upload an audio file, then run through a level generated directly from the audio data while dodging obstacles in your way!
This game was developed in vanilla TypeScript using no external libraries or technologies (outside of React for page rendering). This was created as my capstone project for Epicodus. I was inspired to create a project that combined my passion for game design with my passion for music. For more information, see the Development Log section below.
Note: Chromium-based browsers (Chrome, Edge, Brave, etc.) are recommended. Game does not behave consistently in Firefox.
- W / SPACE / UP Arrow: Jump / Double-Jump
-
Clone this repository by running the following command from the Git Bash console:
git clone https://github.com/mejia-dev/rhythmrunner.git
-
Navigate to the project directory:
cd rhythmrunner
-
Run the following command to install dependencies:
npm install
-
Once the dependencies install, run the following command to start the development build:
npm run dev
-
The development server opens at http://localhost:5173/ by default. Navigate to this page in a web browser to play the game.
-
To generate a production build of the game, run:
npm run build
-
To run ESLint against the code, run:
npm run lint
- Spritesheet: 16x16 Robot Tileset by 0x72.
- Sound Effects: Freesound
The development of this game happened in 120 hours of Epicodus class time. Below is a list of resources in other repositories that display my progress taking the game from a concept into an actual finished project.
- Dec 1, 2023: Capstone Idea Outline - The idea board and subsequent notes in this repository laid the foundational ideas for what I wanted to do for my Capstone.
- Mar 22, 2024: Timetracker & Development Log - This is the master devlog for the game, and also how I kept track of the time spent on the project. This file was updated until the very last day of development.
- Mar 25, 2024: Formal Capstone Proposal - This is my proposal of my Capstone project that I submitted to Epicodus.
- Mar 30, 2024 - Apr 29, 2024: Development Demos - This is a link to some folders containing demos of early versions of the MVP of the game. I kept these around as separate files so that they were easy to quickly inspect.
If you see an issue, please report it on the Issues page.
- Line 31 of
GameRendering.tsx
uses anany
variable declaration. - Player falls back to ground very quickly after resuming from pause.
- Player invincibility glow can stay active after the track is restarted.
- Audio tracks with consistent/ambient low frequencies can cause visualizer and rendering to become glitchy.
Please open an Issue to leave feedback or report a bug!
Copyright (C) 2024 Aaron Mejia
Open Source under the GPLv3 License.