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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A Unity 6 rebuild of Incognito, a 2013 GameMaker point-and-click stealth prototype: a Shadowrun-flavored cyberpunk street, a camera held deliberately close instead of a wide adventure- game establishing shot, and a mouse cursor that doubles as the player character's own tracking eyeball.
Every room and mechanic of the original is rebuilt: the title, Bleecher Street (street00), 2nd Avenue (street01) and the shop, with the original's art, sounds, music and fonts. There is no public build; build it from source with the Quick start below.
The original prototype (GameMaker 8, 2013) tried a few things worth rebuilding properly:
The rebuild keeps the gameplay exactly and rebuilds the code: an engine-free, tested Core, content
and tuning as validated data, rooms composed in code, and modern Unity (URP, the Input System,
UI Toolkit). Where the original was plainly broken, the rebuild plays the way it was meant to, and
docs/BIBLE.md records each fix.
help, list, list sheep/camera/computer/all, reboot <id>, overwrite <id>,
clear).Requirements: Windows, Unity 6000.4.3f1 (Unity Hub's default install path), the .NET SDK (for
the Core tests), and Unity.Shared,
MindAttic.Capture,
Unity.Multiplayer and
MindAttic.Components cloned beside this repo,
which Packages/manifest.json references as local file: packages.
Play online: powershell -File play.ps1 -Online (or launch Incognito.exe -online) opens the
online scene's menu instead of the title; in the Editor, open Assets/Rea.Incognito/Scenes/Online.unity
and press Play. Incognito/Build Online Scene regenerates it. A dedicated server and smoke-test bots
run it from mp-host.json (mp-host game local, mp-host game smoke).
Play in the Editor: open the project in Unity 6000.4.3f1, open
Assets/Rea.Incognito/Scenes/Rooms/Titlescreen.unity and press Play. Rooms rebuild their content
from data at Awake, so a room scene looks bare until you press Play.
Regenerate the scenes: Incognito/Build Room Scenes in the Editor menu rewrites the four
room scenes and the build settings (Assets/Rea.Incognito/Editor/RoomSceneBuilder.cs).
Build: powershell -File tools/build.ps1 writes Builds/Windows/Incognito.exe in batch mode.
Test: powershell -File tools/test.ps1 runs the Core, EditMode and PlayMode suites;
powershell -File run-core-tests.ps1 runs only the engine-free Core tests with dotnet test.
Parity tour: powershell -File tools/verify-parity.ps1 (Editor closed) plays the whole game
with scripted input, muted, and writes screenshots to Logs/parity-tour/.
Launch a playable build for development: powershell -File play.ps1 (builds it first if
Builds/Windows/Incognito.exe is missing; -Build rebuilds, -Wait waits for it to exit, the log
goes to Logs/play.log). This is not tools/build.ps1/tools/test.ps1's -batchmode runs: it
starts a real, on-screen player.
The batch scripts (tools/unity.ps1 underneath) need the Editor closed on this project, and keep
each run's Unity log in Logs/.
play.ps1 launches muted: it sets MINDATTIC_CLI_MUTED=1 and passes -muted, so a CLI or agent
starting the game never blasts audio. Pass -Sound to launch with audio. Either switch works on its
own when you start Incognito.exe (or the editor) yourself:
$env:MINDATTIC_CLI_MUTED = '1'; .\Builds\Windows\Incognito.exe
.\Builds\Windows\Incognito.exe -muted
The mute is the shared com.mindattic.unity.shared session mute: read before the first scene loads,
it makes the player profile's settings report music and sound effects muted at volume 0 for that run
only, and Incognito.Audio.SessionAudio silences the AudioListener. The player's saved
settings.json is never written, so the next normal launch has sound. Because Incognito has both
music (MusicPlayer) and sound effects (footsteps, the HUD flick, the weapon), SessionAudio only
silences the listener once both channels report muted, so muting just one of your own profile's
channels never silences the other. tools/build.ps1/tools/test.ps1's -batchmode runs play nothing
audible and don't need it.
| Assembly | Folder | What it holds |
|---|---|---|
Rea.Incognito.Core | Assets/Rea.Incognito/Core | Pure C# (noEngineReferences): GameWorld and its commands/events, every *State rule class, SuspicionMeter, CommandInterpreter, ScreenRatio, GmText, the settings registry and content catalog. References only Unity.Shared.Core. |
Rea.Incognito.Runtime | Assets/Rea.Incognito/Scripts | MonoBehaviours that read input, submit commands, and present state and events: player, NPCs, weapon, eye, camera, hacking overlay, console, rooms, audio, the UI Toolkit HUD (HudRoot), GameDisplay. |
Rea.Incognito.Editor | Assets/Rea.Incognito/Editor | Scene and build tooling: RoomSceneBuilder, SandboxSceneBuilder, OriginalArt, PlayerBuilder. |
Rea.Incognito.Online | Assets/Rea.Incognito/Online | Online play on Unity.Multiplayer: IncognitoNetPlayer (a NetEntity per seat), IncognitoAuthority (the server's one GameWorld), IncognitoOnlineGame, IncognitoBot, OnlineLaunch. Rea.Incognito.Editor.Online writes the online scene (OnlineSceneBuilder). |
| Tests | Tests/Core.Tests, Assets/Rea.Incognito/Tests/{EditMode,PlayMode} | dotnet test for Core; Unity EditMode for the MonoBehaviour layer; PlayMode for room traversal, the HUD and text. |
GameWorld.Submit(GameCommand);
every command carries a PlayerId, and presentation plays the resulting GameEvents. There is
no global current-player singleton.Assets/Rea.Incognito/Resources/Data/game-content.json (rooms,
NPCs, descriptions, the poem, console copy, the art, sound and font catalogs) and
game-tuning.json (locomotion, camera, suspicion, weapon, rain, display) are validated on load
by GameSettings.RoomBootstrap,
which rebuilds the room from its data at Awake, so a scene can't drift from its data.GameInput) producing an engine-free
InputSnapshot. Rendering is URP's 2D renderer, with the original's prop depths as sorting
layers; Core and gameplay never reference the pipeline.Feature complete, and a complete proof of concept of the original: the final parity tour
(ParityTourPlayTests, run by tools/verify-parity.ps1, muted) plays the title, Bleecher Street,
2nd Avenue and the shop through a virtual keyboard and mouse, every row of the parity checklist in
docs/RECONSTRUCTION.md section 11 is ticked, and ParityChecklistTests
keeps it honest. Every live piece of original art is drawn, down to the console view's
brain-select overlay, the GUI arrow cursor and the dashboard hover backdrop (U.INC-T39).
docs/RECONSTRUCTION.md: the reverse-engineering record, mechanic by
mechanic, read out of the original .gml/.gmx source.docs/BIBLE.md: the rebuild's brief, its systems and every decision where it
differs from the original, including the original content deliberately not ported.docs/USER_STORIES.md: stories and the ticket log, generated from the
ticket database.AGENTS.md: the rules every contributor and agent follows here.R:\Projects\_PRE_2022\_PRE_2021\_PRE_2020\_PRE_2017\gmlIncognito\09-05-13_2.19am: read-only
reference, never edited by this project.