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 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Dieses Projekt ist ein kleines Spiel im Browser: eine Private-Equity-Simulation auf Deutsch. Man spielt einen Investmentfonds gegen vier computergesteuerte Fonds über mehrere Spieljahre. Damit das Spiel im Internet aufrufbar ist (z. B. über Vercel), steckt es in einem sogenannten "Next.js-Projekt". Das ist im Grunde nur ein Ordnergerüst, das dafür sorgt, dass eine Webseite daraus gebaut werden kann.README 전문 보기 ↗
Dieses Projekt ist ein kleines Spiel im Browser: eine Private-Equity-Simulation auf Deutsch. Man spielt einen Investmentfonds gegen vier computergesteuerte Fonds über mehrere Spieljahre.
Damit das Spiel im Internet aufrufbar ist (z. B. über Vercel), steckt es in einem sogenannten "Next.js-Projekt". Das ist im Grunde nur ein Ordnergerüst, das dafür sorgt, dass eine Webseite daraus gebaut werden kann.
components/PeLeagues.tsx
Das ist das eigentliche Spiel. Die komplette Spiellogik, alle Formeln,
Zahlen und die Oberfläche stecken in dieser einen Datei. Sie wurde 1:1 aus
der ursprünglichen Datei pe-leagues-mvp7.tsx übernommen — an der Logik
wurde nichts verändert.
components/pel/battle.tsx
Die visuelle Identität der Unternehmenskarten in Dealflow und Portfolio
("Battle Cards"), auf zwei Ebenen. Der Sektor trägt eine Farbe (SECCOLOR
in lib/engine/engine.ts), ein Wappen und eine Bildszene — Serverreihe für
Software, Doppelhelix für Healthcare, Roboterarm für Industrials, Flasche mit
Botanik für Consumer, Standortnetz für Services. Das einzelne Unternehmen
bekommt daraus
eine eigene Ausprägung: Farbton innerhalb der Sektorfamilie, Bildvariante und
Hintergrundmuster, alles aus dem Firmennamen abgeleitet und damit über die ganze Partie stabil — zwei Ziele desselben
Sektors sehen verwandt aus, aber nicht gleich. Dazu die Bausteine der Karte
(Kopfbereich, Kopfzahlen, Kennzahlenzeile, Abschnitte, Messbalken,
Netzdiagramm) und ihre Stilregeln. Die Datei enthält ausschließlich
Darstellung; welche Zahl wann sichtbar ist, entscheidet weiterhin
components/pel/ui.tsx, gerechnet wird in lib/engine/.
public/sektoren/
Die Fotos, die der Kartenkopf im Dealflow und im Portfolio zeigt. Der Ordner
ist leer ausgeliefert: Solange für einen Sektor kein Motiv hinterlegt und in
PHOTO_VARIANTS gezählt ist, zeichnet die Karte ihre Szene selbst. Wie ein
Motiv beschaffen sein muss und wie man es einhängt, steht in
public/sektoren/README.md.
docs/prompts/kartenbilder.md
Die Bildprompts für die fünf Sektormotive — Claude erzeugt keine
Rasterbilder, sie entstehen in einem Bildmodell — samt der technischen
Vorgaben, ohne die ein Motiv in der Karte nicht funktioniert (dunkel,
Lichtquelle oben rechts, Motiv in der rechten Bildhälfte). Im zweiten Teil
der Arbeitsauftrag für die gezeichneten Szenen, die zu sehen sind, solange
kein Foto hinterlegt ist.
public/kulisse/
Das Motiv hinter Startseite und Anmeldung — eine einzelne Datei,
eingang.webp (941 × 1672, 113 KB). Fehlt sie, bleiben die beiden Verläufe
über dem Grundton stehen, die Seite sieht dann gewollt aus und nicht nach
einem kaputten Bild. Anleitung in public/kulisse/README.md, der Bildprompt
in docs/prompts/eingangsbild.md.
docs/reality-checks.md
Der Fragenkatalog aus der Durchsicht durch einen Corporate-Finance- und
PE-Praktiker: achtzehn Prüfungen an der Spiellogik (Covenant-Basis, IRR,
Value Bridges, Carry-Wasserfall, Gebühren, Managementbeteiligung,
Zinsschranke …), je mit Befund im Code und der Korrektur, die daraus folgte.
Jeder Punkt ist in lib/engine/__tests__/realityChecks.test.ts festgehalten.
app/access/page.tsx, app/onboarding/, lib/access/context.ts
Die Zugangskontrolle. Wer sich neu registriert, beantragt unter
/onboarding einen Zugang (Anzeigename + optionale Nachricht) und wartet
danach auf /access, bis ein Administrator ihn freigibt und ihm ein oder
mehrere Universen zuteilt. Erst dann führt die Anmeldung ins Spiel;
lib/access/context.ts ist die gemeinsame Schranke aller Spielseiten.
Ausführlich beschrieben ist das in supabase/README.md.
app/confirm-email/
Hilfeseite für den Fall, dass der Bestätigungslink aus der Registriermail
nicht mehr greift (er gilt nur einmal und wird von manchen Mail-Programmen
schon beim Anzeigen verbraucht). Sie erklärt, dass das Konto in aller Regel
trotzdem bestätigt ist, führt zur normalen Anmeldung und verschickt auf
Wunsch einen neuen Link.
app/admin/
Der Admin-Bereich: Partien, Nutzer samt Freigaben und Universen. Universen
sind voneinander getrennte Spielwelten (zu Beginn Test und Live, beliebig
erweiterbar) — Partien und Ranglisten des einen sind im anderen
unsichtbar.
app/page.tsx
Die Startseite. Sie macht nichts anderes, als das Spiel aus
components/PeLeagues.tsx anzuzeigen. Wer die Webseite öffnet, landet
hier.
app/layout.tsx
Das "Grundgerüst" jeder Seite (z. B. der <html>-Rahmen und der
Seitentitel im Browser-Tab).
app/globals.css
Ein paar ganz grundlegende Stil-Einstellungen (z. B. dass die Seite die
volle Bildschirmhöhe nutzt). Die eigentliche Gestaltung des Spiels
(Farben, Schriftarten, Layout) steckt direkt in components/PeLeagues.tsx
und wird von dort geladen — inklusive der Schriftarten, die sich das Spiel
selbst aus dem Internet lädt (Google Fonts).
public/
Ordner für Dateien, die direkt und unverändert ausgeliefert werden (aktuell
nur das Browser-Icon "favicon.ico").
package.json
Liste aller Zusatz-Bausteine ("Abhängigkeiten"), die das Projekt braucht,
z. B. Next.js selbst, React und lucide-react (eine kleine Bibliothek für
die Icons, die im Spiel verwendet werden).
tsconfig.json, next.config.ts, eslint.config.mjs
Technische Einstellungsdateien für das Projekt-Gerüst. Da die
Original-Spieldatei nicht durchgehend "typisiert" ist (ein Merkmal der
Programmiersprache TypeScript), wurde die Typprüfung bewusst locker
eingestellt, damit sie den Bau der Seite nicht blockiert.
.gitignore
Liste von Dateien und Ordnern, die nicht mit ins Projekt-Archiv (Git)
aufgenommen werden sollen — vor allem automatisch erzeugte Dateien, z. B.
aus node_modules (heruntergeladene Zusatz-Bausteine) oder .next
(Bau-Ergebnisse).
Falls jemand das Spiel auf dem eigenen Rechner ausprobieren möchte:
npm install
npm run dev
Danach ist die Seite unter http://localhost:3000 erreichbar.
Das Projekt ist so aufgebaut, dass Vercel (ein Anbieter zum Veröffentlichen von Webseiten) es ohne weitere Einstellungen erkennt und bauen kann. Es reicht, das Repository dort zu verbinden.