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,即可验证所有权并自行管理介绍。
一分钟完成验证낮엔 용사, 밤엔 마왕 — 성을 털고 지키는 방치형 성 키우기. React + TypeScript + Agent8 Game Server, Verse8 배포. Play: https://verse8.io/Y4e8r8Z
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
낮에는 남의 성을 털고, 밤에는 내 성을 지킨다. 용사 셋을 이끌고 다른 마왕의 탑을 공략하고, 내 탑에는 몬스터를 세워 밤마다 몰려오는 침입자를 막는 방치형 성 키우기 게임입니다. Verse8(Agent8) 플랫폼에 배포했고, 설치 없이 브라우저에서 바로 돌아갑니다. 세로 화면에 맞췄고, 마우스 클릭(터치)만으로 조작합니다. 화면에는 늘 내 마왕성 탑이 서 있습니다. 탑의 층마다 몬스터를 세우고, 꼭대기에는 마왕이 앉아 있습니다.查看完整 README ↗
낮에는 남의 성을 털고, 밤에는 내 성을 지킨다.
용사 셋을 이끌고 다른 마왕의 탑을 공략하고, 내 탑에는 몬스터를 세워 밤마다 몰려오는 침입자를 막는 방치형 성 키우기 게임입니다. Verse8(Agent8) 플랫폼에 배포했고, 설치 없이 브라우저에서 바로 돌아갑니다. 세로 화면에 맞췄고, 마우스 클릭(터치)만으로 조작합니다.
▶ 플레이: https://verse8.io/Y4e8r8Z
화면에는 늘 내 마왕성 탑이 서 있습니다. 탑의 층마다 몬스터를 세우고, 꼭대기에는 마왕이 앉아 있습니다.
공성과 출정
방치형 흐름
운영 요소
| 영역 | 사용 기술 |
|---|---|
| 클라이언트 | React 18, TypeScript 5.7, Vite 8 |
| 렌더링 | DOM + CSS 스프라이트 시트(홈·공성), Canvas 2D(전투) |
| 서버 | Verse8 Agent8 Game Server (server/src/*.ts, 원격 함수 · $global 상태/컬렉션 · $asset 재화 · $lock) |
| 플랫폼 | @agent8/gameserver, @verse8/platform(VX Shop), @verse8/ads(보상형 광고) |
| 테스트 | Vitest 143개(순수 게임 규칙·밸런스), Agent8 서버 하네스 25개(원격 함수) |
| 아트 | PixelLab으로 생성한 픽셀 아트(유닛·배경·UI 키트·아이콘·컷신) |
조작되면 안 되는 값은 전부 서버에서
골드·영혼석은 Verse8 Asset, 진행도는 Global User State, 순위는 Global Collection에 둡니다. 원격 함수는
누구나 부를 수 있는 공개 엔드포인트라고 보고, 클라이언트가 보낸 점수·보상·결과는 쓰지 않습니다. 공성 결과,
전리품, 광고·패스 보상, 결제 지급($onItemPurchased, 같은 구매 ID 중복 지급 방지)은 서버가 직접 계산합니다.
결정론 전투 — 서버와 화면이 같은 결과
전투는 server/src/battle.ts의 순수 함수이고 시드(계정 + 시각)로만 무작위가 정해집니다. 서버가 공성 파도의
승패를 정하면, 화면은 같은 결과를 걸어오고 싸우고 쓰러지는 연출로 재생합니다. 게임 규칙은 DOM을 모르기 때문에
Vitest에서 그대로 돌립니다.
시뮬레이션으로 맞춘 성장 곡선
성장 공식은 server/src/growth.ts, 숫자는 BALANCE(server/src/catalog.ts) 한 곳에만 둡니다.
tests/balance.test.ts가 50로컬 서버 모드 — 배포 없이 서버까지 확인
Agent8 서버는 클라우드에서만 돌아서 서버를 고칠 때마다 배포해야 확인할 수 있었습니다. 그래서 브라우저 안에
$global·$asset·$lock·$sender를 흉내 낸 저장소를 깔고 같은 server.ts를 그대로 실행하는 모드를
만들었습니다(src/services/localServer.ts, 개발 서버에서 ?local=1일 때만 켜지고 배포 빌드에는 빠집니다).
여러 계정, 시간 되감기, 가짜 결제로 끝까지 플레이해 보고 배포합니다. README의 캡처도 이 모드로 찍었습니다.
플랫폼 코드는 서비스 층에만
Verse8 SDK 호출은 src/services/(api, shop, ads, connection)에만 있고, 화면과 게임 규칙은 SDK를 직접 부르지
않습니다.
npm install
cd server && npm install && cd .. # 서버 타입 검사용
npm run dev # 개발 서버 (Agent8 preview 서버에 연결)
# 브라우저에서 http://localhost:5173/?local=1 → 로컬 서버 모드(배포 없이 서버 코드까지 실행)
npm test # Vitest 143개
npm run test:server # Agent8 서버 하네스 25개
npx tsc --noEmit -p tsconfig.app.json # 클라이언트 타입 검사
npx tsc -p server/tsconfig.json --noEmit # 서버 타입 검사
npm run build # 배포 빌드
로컬 서버 모드 콘솔 도구: localServer.gold(5000), localServer.rewind(90)(분 단위로 시간 되감기),
localServer.buy('premium')(가짜 결제), localServer.as('다른계정'), localServer.wipe().
server/src/ 게임 서버 (원격 함수, 전투, 공성, 성장 곡선, NPC, 리그, 패스, 결제·광고 보상)
catalog.ts 유닛·마왕 능력치와 BALANCE(모든 밸런스 숫자)
growth.ts 성장 곡선(능력치·비용·골드·k/m 표시)
battle.ts 결정론 라운드 전투
siege.ts 공성 파도
server/test/ Agent8 서버 하네스 테스트
src/screens/ 화면(홈 탑, 출정, 강화, 편성, 리그·패스, 상점, 설정, 컷신)
src/render/ 스프라이트, 전투 캔버스, 공성 연출
src/services/ Verse8 SDK 연결(api, shop, ads), 로컬 서버 모드
src/tutorial/ 클릭 튜토리얼
tests/ 게임 규칙·밸런스 테스트
docs/ 설계·결정 기록(docs/superpowers/specs), 아트·UI 규칙, VX Shop 상품표
art/ PixelLab 원본과 후보
art/.public/audio/CREDITS.md.