Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Duality Dice — Rolagem de Dados do Daggerheart Site multiplayer leve para rolar os dois dados do Daggerheart (Esperança/Hope e Medo/Fear) numa sala compartilhada, com animação, cor por jogador e cálculo automático do resultado (Sucesso/Falha com Esperança ou Medo, ou Crítico). • Frontend: React 19 + Vite • Estado/Realtime: Supabase (Postgres + Realtime) • Dados 3D: @gnuton/css-dice-roller Já existe um arquivo .env.local na raiz do projeto com as credenciais do Supabase (VITE_SUPABASE_URL e VITE_SUPABASE_ANON_KEY). Se precisar recriar, pegue os valores em:README 전문 보기 ↗
Site multiplayer leve para rolar os dois dados do Daggerheart (Esperança/Hope e Medo/Fear) numa sala compartilhada, com animação, cor por jogador e cálculo automático do resultado (Sucesso/Falha com Esperança ou Medo, ou Crítico).
npm install
Já existe um arquivo .env.local na raiz do projeto com as credenciais do
Supabase (VITE_SUPABASE_URL e VITE_SUPABASE_ANON_KEY). Se precisar recriar,
pegue os valores em:
https://supabase.com/dashboard/project/whujybpgnpiyuyjdwlzj/settings/api
VITE_SUPABASE_URL=https://whujybpgnpiyuyjdwlzj.supabase.co
VITE_SUPABASE_ANON_KEY=sb_publishable_...
A senha de acesso ao painel do Supabase é
daggerheartsupa.
npm run dev
Abre em http://localhost:5173. Para testar o multiplayer, abra a mesma URL
em duas abas/navegadores diferentes.
npm run build
Gera os arquivos finais em dist/.
npm run preview
npm run lint
src/
├── App.jsx # Roteamento simples entre as 3 telas (Home → PlayerSetup → Room)
├── components/
│ ├── Home.jsx # Tela inicial: criar sala ou entrar em sala
│ ├── PlayerSetup.jsx # Tela de identidade: nome + cores do jogador
│ ├── Room.jsx # Tela da sala: rolagem dos dados + histórico
│ ├── ColorSettingsPanel.jsx # Painel para editar nome/cores dentro da sala
│ ├── ColorSwatchPicker.jsx # Paleta de cores fixa reutilizável (jogador)
│ └── ColorInput.jsx # Input de cor customizada (hex + color picker)
├── utils/
│ ├── dice.js # Regras do jogo: rolar dados e calcular resultado
│ ├── cores.js # Paleta fixa de cores dos jogadores
│ └── codigo.js # Geração do código curto da sala
└── lib/
└── supabase.js # Cliente Supabase (usa as env vars acima)
Hope > Fear → Sucesso/Falha com EsperançaFear > Hope → Sucesso/Falha com MedoHope == Fear → CríticoA lógica fica isolada em src/utils/dice.js (rolarDados, calcularResultado,
textoResultado) — sem estado, sem UI, fácil de testar.
Rodar no SQL editor do Supabase (uma vez só):
create table rooms (
id uuid primary key default gen_random_uuid(),
codigo text unique not null,
senha_hash text not null,
criada_em timestamp default now()
);
create table rolls (
id uuid primary key default gen_random_uuid(),
room_id uuid references rooms(id) on delete cascade,
jogador text not null,
cor text not null,
dado_hope int not null,
dado_fear int not null,
resultado text not null,
criado_em timestamp default now()
);
Depois, ativar o Realtime na tabela rolls em Database > Replication.
O checklist completo de fases do projeto (o que já foi feito e o que falta)
está em claude.md.
VITE_SUPABASE_URL,
VITE_SUPABASE_ANON_KEY) no painel de deploy.