Rec-GungeonTogether_3Player icon

GungeonTogether 3Player

Three-player Steam co-op with physical remote players, synchronized world interactions, combat and mod support.

CHANGELOG

Changelog

0.10.8

  • Remote movement now preserves the sender's 30 Hz snapshot timeline when Steam delivers packets in bursts, removing stop/jump motion.
  • The interpolation buffer adapts to measured packet jitter and starts at 85 ms instead of imposing a fixed 120 ms delay.
  • Remote rigidbodies use velocity feed-forward with proportional correction instead of frame-sized velocity spikes.
  • Protocol version 21 prevents mixing the old and new movement timelines.

0.10.7

  • Death now follows the base game: no more frozen "downed" state. The dying player plays the native death/ghost flow; the other side sees the proxy as dead (game over when both are dead). Network revive disabled.
  • Diagnostics: [Damage] ENEMY lines (hits on enemies) and [Combat] lines (who the first enemy targets).

0.10.6

  • Remote player animation: sprite frames are now played on the same delayed timeline as the interpolated position (was newest-packet sprite on a 120 ms delayed body); position send rate 20 -> 30 Hz.
  • Diagnostics: [Damage] log lines (source, amount, room, position) for the first 60 hits on any player.

0.10.5

  • Fix: ownerless companions (cloned with the remote player proxy) no longer throw a NullReferenceException every frame in CompanionController.Update.

0.10.4

  • Fix: NPC conversations and all Breach (foyer) interactions/breakables are no longer synchronized. Replaying a dialogue on the other machine froze input and broke the game ("cannot pass doors").

0.10.3

  • Remote player movement: snapshot interpolation (120 ms buffer) instead of last-packet prediction, tighter physics tracking, and warp only after a sustained gap. Fixes jittery movement and periodic teleporting.

0.10.2

  • Fix: remote avatar no longer re-applies identical health/armor every packet (removes the "changing health" log flood).
  • [Progress] sync summaries are now logged at Info level so they appear in LogOutput.log.

0.10.1

  • Client no longer rolls its own private seed when a floor starts loading before the host world state is applied; it reuses the host seed.

0.10.0 - ProgressProfile sync

  • All players now play with the intersection of everyone's progress (flags, stats, encountered rooms/items), like Isaac Online: the least-progressed player decides. Computed in memory only; save files are never modified.
  • Map layout/unlocks now match between host and clients, fixing the world-mismatch rejection after dungeon load.
  • New config ProgressSync/Enabled (default true). Host and clients should use the same value.
  • Protocol version 20 (all players must update).
  • Fix: remote avatar no longer spams "changing health" log lines.

0.9.8

  • The authoritative foyer state now starts the client's normal playable-Breach transition instead of calling a foyer load while the title menu is still active.
  • Duplicate reliable world-state packets no longer cancel and restart an in-progress client placement.
  • Same-world placement retries until the local player exists instead of failing after one early attempt.
  • Protocol version 19 prevents mixing visually identical but binary-different 0.9.7 test packages.

0.9.7

  • Clients now enter the host's Breach only through the authoritative world-state packet; the menu no longer starts a second competing foyer load after joining.
  • A newer host world state cancels an older delayed placement, preventing a queued Breach teleport from firing after dungeon loading has begun.
  • Includes the LEAVE main-menu return fix prepared after 0.9.6.
  • Protocol version 18 rejects earlier builds that still contain the double-load race.

0.9.6

  • Added a JOIN LOBBY option beside the main-menu host flow.
  • Added an in-game Steam lobby browser showing the host name, player count and version compatibility.
  • Hosted rooms are discoverable as public Steam lobbies, while the browser filters out every lobby that is not created by Gungeon Together.
  • Full or incompatible rooms remain visible for diagnosis but cannot be joined.
  • LEAVE now closes the network session and returns to the real main menu instead of silently leaving the player in a single-player breach.

0.9.5

  • Preserve reliable delivery when structural inventory changes are relayed through the host; lightweight heartbeat snapshots remain unreliable.
  • Added sender-minted transaction IDs for pickups, ground-item changes, interactions and breakables so retransmission or snapshot replay cannot apply a world mutation twice.
  • Added host-session and floor-epoch stamps to movement, combat, rooms, vitals, inventory and world-event packets; delayed packets from an earlier floor are rejected before application.
  • Reconnecting clients use a fresh transaction namespace while retaining the host's current world identity.
  • Fixed the lobby UI reporting a pending or rejected Steam-lobby member as game-connected; protocol/mod mismatches now remain out of the game and show an explicit rejection reason and per-member connection state.
  • Protocol version 17 rejects older clients that do not carry transaction and world stamps.

0.9.4

  • Inventory removals require two distinct revisions, preventing a stale snapshot from dropping a freshly acquired item.
  • A reliable confirmation snapshot follows inventory changes after 0.45 seconds, so legitimate drops do not wait for the two-second heartbeat.
  • Ammo counts no longer alter the inventory fingerprint, avoiding reliable inventory traffic for every shot; ammo continues through the regular vitals stream and inventory heartbeat.
  • Fixed null passive/active item reconciliation and throttled failed modded-item grant retries.
  • Protocol version 16 rejects mixed 0.9.2/0.9.3 sessions.
  • Release DLLs are built directly from the tagged source with versioned assembly metadata.

0.9.3

  • Internal inventory-race test build; superseded by 0.9.4.

0.9.2

  • Restored the game's native co-op door, sealed-room and elevator movement instead of warping the party on every room transition.
  • Added periodic host-relayed inventory snapshots for all guns, per-gun ammo, passive items, active items and current weapon selection.
  • Inventory snapshots repair missed pickup/drop events and initialize reconnecting players correctly.
  • Added explicit ground-pickup removal messages so expired, sold or otherwise removed drops do not remain on clients.
  • Added host-side distance validation for client pickup claims.
  • Camera overrides are now cleared only when Gungeon Together owns them.
  • Protocol version 15; every participant must use 0.9.2.

0.9.1

  • Internal test build for native co-op door transitions; superseded by 0.9.2.

0.9.0

  • Added party-wide room transitions and three-player native camera bounds.
  • Registered all three controllers for room logic and enemy targeting.
  • Synchronized enemies across active rooms and activated nearby teammate revives.
  • Added host-authoritative ground drops, pickup claims and shared money/keys.
  • Reject mismatched generated maps caused by different mods or unlock state.
  • Added measured round-trip latency and synchronized gun aim direction.
  • Protocol version 13; every participant must use 0.9.0.

0.8.3

  • Added the optional Isaac-style three-player corner HUD and F8 toggle.

0.8.2

  • Added shared run seeds, map fingerprints, safe placement and black-screen fallbacks.

0.8.1

  • Protected the camera during floor loads and retried late room placement.

0.8.0

  • Replaced visual-only avatars with physical network-controlled PlayerControllers.
  • Added host-authoritative interactions, room state, shared resources and modded equipment identity.