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 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Pokémon Champions 파티 빌더 — 6슬롯 파티를 구성하고 타입 상성을 확인하며, 결정력·내구력 매치업과 여러 턴짜리 배틀타워 시뮬레이션까지 판정하는 웹 앱. • 배포: poke-builder-two.vercel.app — Vercel에 main 브랜치 자동 배포 • 저장소: github.com/Erensia/poke-builder • 현재 버전: ver.1.7 — 상세는 문서 참고README 전문 보기 ↗
Pokémon Champions 파티 빌더 — 6슬롯 파티를 구성하고 타입 상성을 확인하며, 결정력·내구력 매치업과 여러 턴짜리 배틀타워 시뮬레이션까지 판정하는 웹 앱.
main 브랜치 자동 배포🧠 AI 학습 N판 → "AI가 본 내 습관"에서 성향 확인·학습 끄기·초기화). 판단 기준 한눈에 보기: ai-판단기준-요약.mdlocalStorage에 자동 저장, 새로고침해도 복원localStorage만 쓴다src/data/samplePartyPresets.json — npm run validate:data가 기술·특성·포인트·중복을 검사)public/sprites/ — npm run sprites로 src/data/spriteManifest.json 재생성React 19 + TypeScript + Vite 8. 서버 코드 없는 정적 SPA — 기본은 로컬 JSON 데이터 + localStorage로 동작하고, 선택 기능인 클라우드 백업만 Firebase(Authentication·Firestore, 로그인 화면을 열 때 지연 로딩)를 쓴다(ver.6.0). @/는 src/를 가리키는 경로 별칭(ver.1.5). 린트는 oxlint, 테스트 러너는 없음 — 엔진·AI 검증은 Vite ssrLoadModule로 src/를 직접 불러오는 스크립트(npm run test:ai·npm run sim:ai, ver.1.7)로 한다.
npm install
npm run dev # http://localhost:5174
npm run build # 데이터 검증 + tsc -b + vite build → dist/
npm run lint # oxlint
npm run sprites # public/sprites/ 스캔 → src/data/spriteManifest.json 재생성
npm run test:ai # 배틀 AI·엔진 규칙 시나리오(실패 시 exit 1)
npm run test:inference # 상대 실능치 역산·내구 조정: 엔진 데미지 공식 대조 + 왕복·전수 검증(ver.2.1~)
npm run test:damage # 정수 데미지 공식 난수표 + 엔진 대조
npm run test:rank # 랭크배틀 규칙표(게이지·마스터볼 진입·레이팅·챔피언) 검증
npm run test:rank-ai # 랭크 AI 정책(단계·구간·연패 보정·상대 선택·랜덤 구축·학습 사용률) 검증
npm run test:sync # 클라우드 동기화 판정·정규화(6.0, 네트워크 없음)
npm run test:rules # Firestore 보안 규칙(에뮬레이터, Java 21 이상 필요)
npm run validate:data # 데이터 정합성 검사(build가 먼저 실행)
npm run sim:ai -- regress # 엔진 동작 불변 확인용 로그 해시(모드: regress|ai|greedy|style|h2h|selectvs|partyvs|diag|logidx)
npm run bench -- compare <이전 체크아웃> # AI 벤치(그리디·STATUS·h2h, 코어 수만큼 병렬 — toggle 모드는 켬/끔 비교)
클라우드 로그인(선택)을 쓰려면 프로젝트 루트에 .env.local을 만들어 VITE_FIREBASE_API_KEY·VITE_FIREBASE_AUTH_DOMAIN·VITE_FIREBASE_PROJECT_ID·VITE_FIREBASE_APP_ID 4개를 넣는다(값은 Firebase 콘솔 → 프로젝트 설정 → 내 앱. 웹 설정은 비밀이 아니고 *.local은 git에 올라가지 않는다). 없으면 "클라우드 백업" 구역만 보이지 않고 나머지는 그대로 동작한다. 규칙 검증(npm run test:rules)은 Java 21 이상이 필요하다.
main 브랜치가 Vercel 프로덕션에 자동 배포된다(제로 설정, 프레임워크 프리셋 자동 감지). dev에서 항목별 브랜치를 파서 PR로 dev에 머지하고, 버전이 끝나면 dev를 main에 merge commit으로 병합한다(dev는 삭제하지 않는다). 기획·백로그 문서만 고치는 변경은 브랜치/PR 없이 직접 커밋한다. 상시 브랜치는 main·dev 둘뿐 — 머지된 작업 브랜치는 로컬·원격 모두 삭제한다.
src/
├─ types/ Pokemon, Move, Ability, Item, Party, Nature, Matchup, BattleStats, Status, Weather, Field 등 도메인 타입
├─ data/ pokemon.json, moves.json, abilities.json, items.json, natures.json, typeChart.json, spriteManifest.json
├─ lib/ 데이터 조회·타입 상성·실수치/결정력/내구력 계산·특성/랭크/명중/턴순서 판정·도구 효과·
│ 상대 실능치 역산(defenseInference·attackInference·speedInference·combinedInference·candidateCards)·
│ 스피드/내구 조정(speedTable·bulkAdjust)·HP 눈금(hpMagic)·조사 자동 판별·로컬 저장(storage.ts, 팩토리 기반)
│ └─ battle/ 다중 턴 배틀 시뮬레이터(ver.1.5에 8개 파일로 분리) — state/switching/
│ hitResolution/preHitEffects/mirroredEffects/resolveAction/runTurn/finishTurn.ts
│ └─ ai/ 배틀 AI(ver.1.7) — evaluator(옵션 평가)·decision(HP 교환 점수식)·opponentMoveModel
│ (상대 기술 확률 모델)·partyEval(파티 대면표)·moveDamage·hitsToKill(처치 타수 DP)·
│ turnRates(턴 종료 효과)·statusMoveEffects·protectMoves 등
├─ hooks/ useParty · useMatchup · useBattleSetup · usePartyPresets · useSlotPresets · useMySamples · useBattleVideos · useBattleSeries · useAiMemory 등
└─ components/ PartyBoard, MatchupPage(+ DefenseInferencePanel·SpeedTablePanel·BulkAdjustPanel 탭), PokedexPage(+ TypeChartTable), MoveDexPage(카드형 UI), ItemDexPage, 각종 PickerModal 등
BattleLogPage(+ BattleSetupScreen/BattleSelectScreen/BattleBoard 화면 분리),
BattleTurnLog(+ 로그 계열별 렌더러 9종 분리)
public/sprites/ 포켓몬·메가진화·도구·타입 스프라이트 (spriteManifest.json 생성 소스)
scripts/ 데이터·에셋 유지보수 도구 — scripts/README.md 참고
기획·백로그 문서는 docs/00_기획문서/에 있다 — 초기 개발 phase 문서는 01_phase/, 버전 백로그·세션 인계 문서는 02_backlog/(1.x는 01_ver.1.0/, 2.x는 02_ver.2.0/, 3.x는 03_ver.3.0/, 4.x는 04_ver.4.0/, 5.x는 05_ver.5.0/, 6.x는 06_ver.6.0/), 배틀 AI 설계 문서는 03_battleAI_DEV/, 샘플 파티 초안은 04_sample_DEV/. (docs/ 바로 아래의 03_샘플파티추가/에는 샘플 파티 추가용 원본 txt를 모아 둔다.) 버전별 배포 내역은 메이저 버전마다 요약 문서 하나로 묶었다:
ver.1.0 이전(Phase 1~8) 회고·기획 문서도 같은 폴더에 있다 — 초기 아키텍처 결정과 단계별 개발 이력이 궁금하면 참고.