跳到正文
Powered by Pagefind
中文
系统指南

Multiplayer Architecture - Netcode, Relay and Anti-Tamper

How Dimraeth networking works: Unity Netcode for GameObjects over Unity Relay, Facepunch Steamworks integration, obfuscated network values and co-op systems.

2026/9/17 Dimraeth Archives 最后更新: 2026/9/17 回退显示英文 2 分钟阅读

The transport stack

The dumped assemblies tell the exact stack:

  • Netcode for GameObjects (Unity.Netcode.Runtime) — the replication layer
  • Unity Relay + QoS (Unity.Services.Relay, production environment per UnityServicesProjectConfiguration.json) — the transport; no direct IP hosting, connections route through Relay for NAT traversal
  • Facepunch.Steamworks — Steam lobby, invites, and the Netcode.Transports.Facepunch transport adapter
  • Multiplayer Tools — runtime net statistics

Session flow

MultiplayerLobbyCustomNetworkManager → per-session spawn via NetworkPrefabManager / NetworkPrefabClient. Monster state, spell casts (NetworkSpell), shop purchases (NetworkShopItem) and even Pet Pen contents (NetworkPetPenPet) all replicate.

Anti-tamper: obfuscated network numbers

One of the rarest finds in an indie RPG: ObfuscatedNetworkInt and ObfuscatedNetworkFloat. Client-server traffic doesn’t move raw numbers — they’re obfuscated against memory-scanning cheat tools. Combined with Relay (no listen-server authority for clients), this is a genuinely serious anti-cheat posture for the genre.

Co-op systems on top

  • Party + PartyHUD + PartyTeleportMode — shared teleporting
  • ChatSystem with ChatMessageType and ChatLocale — localized chat
  • CombatSession / CombatSessionSort — dynamic fight grouping
  • MultiplayerDamageScaling — per-player monster scaling
  • UIInvitePopup — Steam invite flow

What this means for players

No port forwarding, no host advantage exploits by design, and cheaters can’t trivially edit visible numbers. The tradeoff: if Relay or Steam services are down, co-op goes down with them — there is no LAN fallback in the shipped code.

相关条目

对你有帮助吗?