A multiplayer skateboarding game with Supabase server discovery built entirely with Cursor and Claude 3.7. Code is probably bad but I didn't write a single line of code just to see how will it handle building something semi complex by itself.
- Install dependencies:
bun install- Set up Supabase:
- Create a new project at Supabase
- Create a new table called
noob-skater-server-listwith the following schema:
create table "noob-skater-server-list" (
id uuid default gen_random_uuid() primary key,
server_name text not null,
player_count integer default 1,
created_at timestamp with time zone default now() not null
);- Configure environment variables:
- Create or update the
.envfile in the project root with your Supabase credentials:
- Create or update the
VITE_SUPABASE_URL=YOUR_SUPABASE_URL
VITE_SUPABASE_PUBLIC_KEY=YOUR_SUPABASE_ANON_KEY
PROJECT_ID=YOUR_PROJECT_ID
- Replace
YOUR_SUPABASE_URLwith your project URL (found in Project Settings > API) - Replace
YOUR_SUPABASE_ANON_KEYwith your anon/public key (found in Project Settings > API) - Replace
YOUR_PROJECT_IDwith your Supabase project ID (found in Project Settings)
Start the development server:
bun run devTo generate TypeScript types for your Supabase tables:
bun run generate:typesbun run buildFor faster builds without type checking (use with caution):
bun run build:dangerousbun run preview- P2P multiplayer using PeerJS
- Server discovery via Supabase
- Skateboarding physics simulation
- Real-time player interactions
- 3D graphics with Three.js
- Tailwind CSS for styling
- P2P chat for player communication
- WASD/Arrow Keys: Move the skateboard
- Space: Jump
- E: Do a kickflip
- Escape: Toggle pause menu
- T: Toggle chat interface
- Enter: Send chat message when chat is open