Skip to content
miopoweredPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

150 Commits

Folders and files

Repository files navigation

Oiled Up

Where the project is

Milestone State
M0 Grey box · M2 Verdict loop · M3 Contamination · M5 Day cycle Complete
M1 Chemistry + tests 481 Unity tests passing locally; hosted CI awaiting activation
M4 Co-op Four-process lobby/chat/voice/gameplay smoke and fresh-process save resume passed; full human playthrough pending
D1 Heat-treatment domain · D2 Deliveries and customers Complete
F1 Frontend, options, accessibility Complete
M6 Art Underway — the lab has a building, distinct instruments and a tutorial
M7 Content and balance · M8 Weird layer Not started

A single player can play a full contract end to end: samples arrive by truck, are unboxed, reconciled against a delivery note, prepped, run, filed, and resolved — with the run surviving a quit. It remains pre-alpha.

Project

Oiled Up is a 1–4 player first-person co-op game about running a heat-treatment oil laboratory. Receive customer samples, choose and operate tests, interpret the results, and file a verdict before a bad quench bath ruins parts or starts a fire. Unnecessary shutdowns are costly too, so there is no safe default answer.

The project is built with Unity 6 and URP. It currently includes the playable lab workflow, deterministic chemistry, contamination and calibration systems, customer deliveries and note reconciliation, host-authoritative multiplayer, session text chat, Relay proximity voice, run save and continue, and a full front end.

See docs/DESIGN.md for the full design and technical rules.

Still missing

Verification debt

  • Human multiplayer acceptance remains. The live four-process smoke checks actual Lobby/Relay, readiness, all-origin chat/voice forwarding, command authority, instrument results, saving and next-day replication. A separate fresh process verifies the title's Continue action. It does not replace a complete cooperative playthrough, cross-machine latency or hearing tests. Follow MULTIPLAYER.md.

  • The full Unity suite now runs successfully: 481 passed, none failed or skipped. Evidence and remaining release checks are recorded in RELEASE_VALIDATION.md.

  • CI now requires Unity activation. Pull requests run EditMode tests; main/manual builds also package Windows players, and version tags create draft releases. Missing license secrets fail explicitly. See CI setup and releasing.

Polish and accessibility (F1)

  • English and German string tables are included. Both languages still need an in-game layout check at supported resolutions and UI scales, especially instrument readouts and chat.

Not started

  • Art pass (M6), content and balance pass (M7), and the optional weird layer (M8).

The assemblies are named Residue.* after the working title and are staying that way (#34, closed as not planned). That is a decision, not outstanding work.

Track the details in GitHub Issues.

Requirements

Setup

git lfs install
git clone git@github.com:miopowered/OiledUp.git
cd OiledUp
git lfs pull

Add the project in Unity Hub and open it with Unity 6000.5.9f1. After package restore, use these menu commands:

  1. Residue > Content > Rebuild Definitions
  2. Residue > Content > Validate
  3. Residue > Art > Rebuild Palette
  4. Residue > Build > Rebuild Greybox Lab

Open Assets/Scenes/Boot.unity and press Play. That is the scene a build starts in, and the menu, the save slot and the lobby all wake up there — opening Lab.unity directly skips them and starts a run with no way back to a menu.

Tests

For fast checks of the managed multiplayer models, run dotnet run --project tools/modeltests/ModelTests.csproj (requires .NET 8 and an imported Unity installation). This deliberately excludes native engine operations and does not replace Unity tests.

Residue > Build > Run EditMode Tests, then read Temp/oiledup-editmode.txt. It appends a line per test as the run goes, so a run that dies partway still says how far it got. The Test Runner window works too.

Do not drive TestRunnerApi from the Unity MCP tool — see the trap documented in CLAUDE.md, which deadlocks the Editor after every test has passed.

When changing balance data, edit Assets/Editor/Content/ContentTables.cs, rebuild and validate the definitions, then run the full EditMode suite. Do not edit generated .asset files by hand.

Structure

Assets/Scripts/Data/         Definitions
Assets/Scripts/Chemistry/    Generation and measurement
Assets/Scripts/Gameplay/     Lab interactions and simulation
Assets/Scripts/Net/          Multiplayer and replication
Assets/Editor/               Content and art tooling
Assets/Tests/EditMode/       Automated tests
docs/                        Design, workflow, and CI notes

The host owns samples, measurements, machines, economy, and consequences. Clients request interactions and never receive sample ground truth.

Contributing

Read docs/WORKFLOW.md and CLAUDE.md.

  • Use one issue per branch and one branch per pull request.
  • Commit Unity assets with their .meta files.
  • Keep generated content and scene files out of manual YAML edits.
  • Preserve the host-only SampleGroundTruth boundary.
  • Keep chemistry deterministic and scientifically consistent.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages