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
친구와 플레이하며 좋아하는 플라잉 스타일을 찾고, 드리프트·화력·명예를 은하 최대 우주정거에서 즐깁니다
Play with friends and find your favorite fly style. Master drift, unleash firepower, and chase glory on the galaxy's largest space station.
게임C# · PythonGitHub @froglet-studio온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Connecting casual and hardcore gamers in the hypersea.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
This is the source code repository for Cosmic Shore, a multigenre space game — "the party game for pilots" — developed by Froglet Inc., a Delaware C-corp based in Grand Rapids, MI.
Different vessel classes embody gameplay from different genres to connect players across demographics: from casual, hotseat minigames and rewarded dailies to team missions and a structured esport. It's your game and you can play it your way.
Please don't forget to play and give feedback!
Also don't forget to join our community!
Each vessel embodies a different genre of gameplay:README 전문 보기 ↗This is the source code repository for Cosmic Shore, a multigenre space game — "the party game for pilots" — developed by Froglet Inc., a Delaware C-corp based in Grand Rapids, MI.
Different vessel classes embody gameplay from different genres to connect players across demographics: from casual, hotseat minigames and rewarded dailies to team missions and a structured esport. It's your game and you can play it your way.
Please don't forget to play and give feedback!
Also don't forget to join our community!
Each vessel embodies a different genre of gameplay:
| Vessel | Genre | Description |
|---|---|---|
| Squirrel | Racing / Drift | Vaporwave arcade racer — tube-riding along player-generated trails (F-Zero / Redout feel) |
| Sparrow | Shooter | Arcade space combat with guns and missiles |
| Manta | — | Feature-complete playable vessel |
| Dolphin | — | Feature-complete playable vessel |
| Rhino | — | Feature-complete playable vessel |
| Serpent | — | Playable vessel |
| Urchin | — | Playable vessel (AI in development) |
| Grizzly | — | Playable vessel (AI in development) |
| Termite | — | In development |
| Falcon | — | In development |
| Shrike | — | In development |
Every HyperSea-worthy vessel is capable of enhancing its colored mass output. Pacifying or controlling biomes is only possible if your color is the majority of mass in the biome. Producing mass is the fundamental way to win a majority and refuel along your journey.
Every vessel is also equipped with the ability to destroy, steal, shrink or otherwise disrupt other colors of mass. Filling populated biomes with additional mass can make them more hostile. Sometimes reducing hostile mass is your only option.
Maneuvering through the HyperSea is usually a thrilling delight. Knowing where and when to create your own or disrupt enemy mass is pivotal to victory. Each vessel has its own unique abilities to get where they need to be or otherwise extend their reach.
Couriers, refugees, colonists, and more all need safe passage across the galaxy. Navigating the HyperSea is the only practical way to turn 100 light years into a five minute journey. Join the Cosmic Shore's roster of elite guides, leading and protecting the galaxy's travelers as they brave the hazards of the HyperSea.
A stepping stone to our future dreams of a multi-biome esport, Duel for the Cell provides replayability with different teammates, opponents, and difficulties in every match, all of which can be enjoyed in a variety of environments with their own unique flora, fauna, and effects. Duel for the Cell is a 1v1 match with every player creating mass in the form of trail blocks, and disrupting mass by shielding, stealing or otherwise affecting them. The main objective is to have the greatest mass volume by the end of the match. This adds a third dimension to the classic strategy game focus on area control.
AppManager as root IInstaller, lazy singleton factories, [Inject] across gameplay and UI systemsApplicationStateMachine — table-driven phase tracking (Bootstrap → Auth → Menu → Game → GameOver) via SOAP ApplicationStateDataVariableAuthenticationDataVariableFriendsServiceFacade single-writer facade, relationship data via FriendsDataSOFMODUnity) + SOAP gameplay SFX events for decoupled audio triggersSee CLAUDE.md for architecture patterns, coding standards, and detailed project structure.
See GIT_RULES.md for branching model, commit conventions, and PR standards.
Bootstrap Scene → AppManager (DI root + orchestrator, persists across scenes)
├─ Reflex DI: registers all managers, SO assets, services
├─ ApplicationStateMachine: None → Bootstrapping → Authenticating
├─ AuthenticationServiceFacade → UGS sign-in → SOAP state
├─ FriendsServiceFacade → UGS Friends init on auth
├─ MultiplayerSetup → starts network host on sign-in
├─ SceneLoader → game launch, restart, return-to-menu (NetworkBehaviour)
└─ SceneTransitionManager → Authentication → Menu_Main (networked)
│
▼
ApplicationState: MainMenu
ScreenSwitcher
┌────┬────┬────┬────┬────┐
│Store│Arcade│Home│Port│Hangar│
└────┴────┴────┴────┴────┘
← slide left / right →
+ MenuServerPlayerVesselInitializer
(autopilot Squirrel in background)
The app boots through a Bootstrap scene where AppManager serves as both the top-level orchestrator ([DefaultExecutionOrder(-100)]) and the Reflex DI root (IInstaller). It configures the platform, registers all persistent managers and SO assets (including GameDataSO, SceneNameListSO, ApplicationLifecycleEventsContainerSO, ApplicationStateDataVariable, and FriendsDataSO), starts authentication and network monitoring, then transitions to the Authentication scene.
An ApplicationStateMachine (pure C# DI singleton) tracks the top-level application phase (Bootstrapping → Authenticating → MainMenu → LoadingGame → InGame → GameOver) with special states for Paused, Disconnected, and ShuttingDown. It validates transitions via a table-driven state graph and auto-subscribes to gameplay SOAP events for automatic phase changes. All phase data is written to ApplicationStateDataVariable (SOAP), allowing any system to read current state or subscribe to OnStateChanged.
Authentication is handled by the AuthenticationServiceFacade which writes to a shared SOAP AuthenticationDataVariable. On sign-in, MultiplayerSetup starts the network host, a FriendsServiceFacade initializes the UGS Friends service (syncing into FriendsDataSO), and the menu is loaded as a networked scene. Scene loading is managed by SceneLoader, a NetworkBehaviour that auto-selects local vs network scene loading and handles game restarts.
The Menu_Main scene uses a ScreenSwitcher that manages horizontal sliding navigation between five screen panels. A MenuServerPlayerVesselInitializer spawns an autopilot Squirrel vessel in the background with camera tracking. Screens implement the IScreen interface for lifecycle callbacks (OnScreenEnter/OnScreenExit), allowing the switcher to notify screens without hard-coded references. See the Menu Screen Navigation and Authentication & Session Flow sections (moved from CLAUDE.md into Docs/claude/) for details.
Docs/archive/PERFORMANCE_LOG_2026.md)Assets/
├── _Scripts/ # All first-party C# code (~1,100 files)
│ ├── Controller/ # Gameplay systems (~536 files)
│ │ ├── Vessel/ # Vessel core, actions, prisms, trails
│ │ ├── Environment/ # Cells, crystals, flora/fauna, spawning
│ │ ├── ImpactEffects/ # Impactors + Effect SOs
│ │ ├── Arcade/ # Mini-game controllers, scoring
│ │ ├── Multiplayer/ # Netcode: vessel init, lobby, network stats, menu autopilot
│ │ ├── Camera/ # Per-vessel camera system
│ │ ├── AI/ # AIPilot, AIGunner
│ │ └── ... # Projectiles, IO, FX, Managers, etc.
│ ├── System/ # Application-level systems (~126 files)
│ │ ├── Bootstrap/ # BootstrapConfigSO, SceneTransitionManager, ApplicationLifecycleManager
│ │ ├── Systems/Auth/ # AuthenticationController (MonoBehaviour adapter)
│ │ ├── Instrumentation/ # Analytics (UGS)
│ │ ├── Runtime/ # Dialogue runtime
│ │ ├── AppManager.cs # Top-level orchestrator + Reflex DI root
│ │ ├── ApplicationStateMachine.cs # App phase state machine (SOAP single-writer)
│ │ ├── SceneLoader.cs # Scene loading, restart, return-to-menu (NetworkBehaviour)
│ │ ├── AuthenticationServiceFacade.cs
│ │ ├── AuthenticationSceneController.cs
│ │ ├── FriendsServiceFacade.cs # UGS Friends single-writer facade
│ │ ├── SplashToAuthFlow.cs
│ │ ├── NetworkMonitor.cs
│ │ └── ... # Audio, LoadOut, Quest, Ads, etc.
│ ├── UI/ # Game & app UI (~188 files)
│ │ ├── Screens/ # Menu screens (Home, Arcade, Store, Hangar, Leaderboards, Episodes)
│ │ ├── Interfaces/ # IScreen, IVesselHUDController, IVesselHUDView
│ │ ├── Elements/ # Reusable components (NavLink, NavGroup, ProfileDisplayWidget)
│ │ ├── Views/ # PlayerDataService, screen views
│ │ ├── Controller/ # HUD controllers
│ │ ├── Modals/ # ModalWindowManager, Settings, Profile, Purchase dialogs
│ │ ├── ScreenSwitcher.cs # Central menu navigation (slide + IScreen lifecycle)
│ │ └── ... # FX, Toast, Animations
│ ├── Data/ # Enums & data structs
│ ├── ScriptableObjects/ # SO definitions & SOAP types
│ │ └── SOAP/ # Custom SOAP types (16 subdirectories)
│ ├── Utility/ # Effects, pooling, data persistence
│ └── Tests/ # Edit-mode unit tests
├── _SO_Assets/ # ScriptableObject asset instances
├── _Prefabs/ # Prefabs organized by category
├── _Scenes/ # Game scenes (singleplayer, multiplayer, test)
├── FTUE/ # Tutorial / first-time user experience
└── Plugins/ # Third-party (SOAP, DOTween, etc.)
Copyright 2022 - 2026 Froglet Inc. Code released under the MIT license.