Skip to content

Commit 2365c3c

Browse files
committed
update README.md
1 parent f4c5c7f commit 2365c3c

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
Race App is an exciting racing game built with Node.js and React. Players compete to complete a virtual race course in the fastest time possible by navigating through a series of waypoints. The app features a leaderboard that displays the top 20 fastest race times, allowing players to compare their performance with others.
44

5+
## Built With
6+
7+
### Client
8+
9+
![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
10+
![Vite](https://img.shields.io/badge/vite-%23646CFF.svg?style=for-the-badge&logo=vite&logoColor=white)
11+
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
12+
![Tailwind CSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white)
13+
14+
### Server
15+
16+
![Node.js](https://img.shields.io/badge/node.js-%2343853D.svg?style=for-the-badge&logo=node.js&logoColor=white)
17+
![Express](https://img.shields.io/badge/express-%23000000.svg?style=for-the-badge&logo=express&logoColor=white)
18+
519
## Features
620

721
- Interactive race course with a visual racetrack loop and multiple waypoints
@@ -53,3 +67,33 @@ To reset the race stats to a default unplayed state:
5367

5468
Click the "Admin" button in the drawer.
5569
On the admin page, click the "Reset Race Stats" button to remove all previously attained race times.
70+
71+
## Implementation Requirements
72+
73+
### Required Assets with Unique Names
74+
75+
The following assets must exist in the world with specific unique names:
76+
77+
| Unique Name | Description |
78+
|-------------|-------------|
79+
| `race-track-container` | A rectangle asset that surrounds the entire race track area. Used to determine placement position when switching tracks. |
80+
| `race-track-checkpoint` | Checkpoint assets placed along the track. Multiple checkpoints should use partial matching (e.g., `race-track-checkpoint-1`, `race-track-checkpoint-2`). |
81+
| `race-track-start` | The starting line asset where players begin the race. |
82+
83+
### Additional Environment Variables
84+
85+
In addition to the standard environment variables, this app supports Google Sheets integration for leaderboards:
86+
87+
| Variable | Description |
88+
|----------|-------------|
89+
| `GOOGLESHEETS_CLIENT_EMAIL` | Google service account email for Sheets API access |
90+
| `GOOGLESHEETS_SHEET_ID` | The ID of the Google Spreadsheet for storing leaderboard data |
91+
| `GOOGLESHEETS_PRIVATE_KEY` | Service account private key for authentication |
92+
93+
### Track Configuration
94+
95+
Tracks are configured in `server/constants.js`. Each track requires:
96+
- `id`: Unique track identifier
97+
- `name`: Display name for the track
98+
- `thumbnail`: URL to track preview image
99+
- `sceneId`: The Topia scene ID containing the track assets

0 commit comments

Comments
 (0)