SCRAPSHIFT is a fast-paced, cooperative multiplayer game built in Unity 6. You and your crew are tasked with maintaining a decaying spaceship as it travels through deep space. Systems will overheat, doors will lose power, and chaos will inevitably ensue. Work together to repair the reactor, manage the power grid, and survive!
- 🌐 Seamless Multiplayer: Powered by Unity Netcode for GameObjects (NGO) and Unity Relay. Host a game and share a 6-letter Join Code with your friends. No port-forwarding required!
- 🔧 Interactive Ship Systems:
- Reactor Core: Continuously generates heat. Needs manual cooling to prevent a catastrophic meltdown.
- Power Generator: Distributes limited power to various ship systems.
- Powered Doors: Doors that require an active power grid to open and close.
- 🖐️ Physics Interaction: A robust physics-based grab system to pick up, throw, and manipulate objects in zero-gravity environments.
- ⚡ Chaos Event System: Dynamic events that trigger unexpected failures across the ship.
- 🏗️ Clean Architecture: Built from the ground up using scalable design patterns (Service Locator, Event Bus).
- Engine: Unity 6 (6000.0+)
- Networking: Unity Netcode for GameObjects (NGO) v1.x
- Transport: Unity Transport (UTP) over Unity Relay Services
- Architecture:
- Service Locator Pattern
- Global Event Bus (
EventBus.cs) - Component-based state machines
- Install Unity 6 via Unity Hub.
- Ensure you have a Unity account and a linked organization.
- Clone or download this repository.
- Open the project in Unity Hub.
- Go to
Edit > Project Settings > Servicesand link the project to your Unity Cloud Organization. - Go to the Unity Cloud Dashboard, select your project, and Enable Relay in the Multiplayer section.
- Open the
MainMenuscene. - Press Play in the editor (or build the game).
- Click Host Game to start a server and generate a Join Code.
- Have your friends launch the game, type in the Join Code, and click Join Game.
- Phase 1: Core Foundation & Architecture
- Phase 2: Networked Player Controller & Physics Grab
- Phase 3: Ship Systems (Reactor, Power, Doors)
- Phase 4: Multiplayer UI (Main Menu, Join Codes, Relay)
- Phase 5: Inventory System (Coming Next!)
- Phase 6: Game Loop (Win/Loss conditions, Timers)
- Phase 7: Polish (VFX, Audio, Animations)
For deep technical dives into the codebase, check out the Docs/ folder in the project root:
ProjectOverview.mdArchitecture.mdSystems.mdCurrentState.md
Built with ❤️ for cooperative chaos.