GONet: Dead-Simple GameObject Networking – Auto-Magical Sync, RPCs, Pub-Sub, Scene Mgt, Blazing Perf, Sync Configs and Plugin API, Full Source. Instant Wins, Infinite Tweaks.**GONet is the production-ready multiplayer networking solution for Unity with tight integration into the Unity architecture/runtime.** If you want multiplayer, you need GONet.[Discord](https://discord.gg/NMeheRHQgd) | [Documentation](https://galoreinteractive.com/gonet) | [Tutorial Video](https://www.youtube.com/watch?v=fs1flIi35JM)---## NEW in v1.5 (October 2025)### 🎯 RPC SystemProduction-grade Remote Procedure Calls with `async/await` support, server-side validation hooks (profanity filtering, authorization), persistent RPCs delivered to late-joiners, and deferred execution for components not ready yet.```csharp[ServerRpc]async Task RegisterPlayer(string playerName) { }[ClientRpc]void NotifyAllClients(string message) { }[TargetRpc(validationMethod: nameof(ValidateChatAsync))]async Task SendChat(string chatMessage) { }```### 🌍 Scene ManagementServer-authoritative networked scene loading with Build Settings AND Unity Addressables support. Client scene change requests require server approval. Automatic late-joiner scene synchronization with extensibility hooks for validation.```csharp// Server loads sceneGONetMain.SceneManager.LoadSceneFromBuildSettings("BattleArena");// Client requests scene changeGONetMain.SceneManager.RequestLoadScene("BattleArena");```### 📦 Unity Addressables SupportFull integration for scenes AND runtime prefab spawning. No Resources folder restrictions - organize prefabs anywhere. Efficient asset bundles via Addressables groups. Platform-specific asset variants. Zero configuration - auto-detected when package installed.```csharp// Addressables sceneGONetMain.SceneManager.LoadSceneFromAddressables("DynamicArena");// Addressables prefabs (GONet handles loading)GameObject.Instantiate(weaponPrefab); // Works exactly the same!```### ⚡ Adaptive Congestion ManagementAutomatic network pool scaling from 1,000 to 20,000 packets/tick based on demand. Handles burst spawning (100+ objects/frame) gracefully. Prevents "Ring buffer is full" errors.### 🔧 Auto-Detection for DevelopmentZero configuration local testing - just hit Play! First instance starts as SERVER, additional instances connect as CLIENTS automatically. Works in Editor AND builds.### 🛡️ Velocity-Augmented SyncMassive bandwidth savings (90%+ reduction) for slow-moving/rotating objects. Eliminates micro-jitter for platforms, turrets, doors. Intelligent switching between velocity and absolute values.### 🚀 GONetId Batch SystemPre-allocated ID ranges eliminate spawn latency for client-owned objects. Zero spawn delay with 200-1000 IDs pre-allocated per batch. Automatic refill at 50% threshold with rare edge-case "limbo mode" handling.---## Core Features### Auto-Magical Data Sync**Transform, Animator, Custom Fields** - Add `[GONetAutoMagicalSync]` attribute to any field and it syncs automatically. `GameObject.Instantiate()` works as expected - networked automatically. Value blending (interpolation/extrapolation) handles packet loss gracefully.### RPC SystemThree RPC types: `[ServerRpc]` (Client→Server), `[ClientRpc]` (Server→All clients), `[TargetRpc]` (Targeted delivery). Async/await support, validation hooks, persistent delivery to late-joiners.### Event Bus SystemPublish/Subscribe architecture with transient and persistent events. Custom event classes promote clean, decoupled architecture.### Network TransportUDP-only (unreliable+unordered fast, reliable+ordered RUDP). Encryption via customized Bouncy Castle Crypto API. Multi-level API: high-level convenience + low-level control when needed.### Serialization & CompressionCustom bit-packing tighter than MessagePack. LZ4 compression for bulk data. Configurable quantization trades precision for bandwidth. Custom serializers via `IGONetAutoMagicalSync_CustomSerializer`.### Platform SupportAll managed C#, no native libraries. AOT compilation support (iOS). IL2CPP supported. Windows, Mac, Linux, iOS, Android, consoles (case-by-case). Unity 2022.3.62f3 LTS or later required.### Late-Joining Client SupportNew clients receive full world state on connect. Persistent events delivered automatically. Scene synchronization loads correct scene. GONetId assignments for scene-defined objects.### LoggingCustom-built GONetLog system (no external dependencies). Multi-threaded, cross-platform. Console output in Editor, file output in builds (`Application.persistentDataPath/logs`). Configurable levels with comprehensive context (thread, timestamp, frame time).---## Coming Soon: GONet PRO**Keep your eyes peeled!** GONet PRO is coming and it's going to blow your minds. We're talking game-changing features for production games at scale. Stay tuned to our Discord for announcements!---## Support**What's Included:**Comprehensive tutorials, examples, documentation. Active Discord community. Forum and email support. Regular updates and bug fixes. Full source code access.**We're Here to Help You Succeed:**Don't hesitate to reach out - we're happy to work with teams of all sizes to help you achieve success with your multiplayer game. Whether you're just getting started or shipping to production, we're here to support you.**Need More?**Professional support, custom feature development, architecture reviews, launch support, direct collaboration with the GONet team.[Contact us](mailto:contactus@galoreinteractive.com) - Let's talk about your game!---## System Requirements**Development:**Unity 2022.3.62f3 LTS or later, .NET Framework or .NET Standard 2.1, 64-bit CPU with 4 cores (recommended)**Runtime:**Baseline Unity player requirements, 64-bit CPU (mobile: ARM64), Network connection (LAN or Internet)---## Third-Party LicensesGONet includes the following open-source libraries (licenses included):Bouncy Castle Crypto (Apache 2.0), Class Type Reference (MIT), MessagePack (MIT), MemoryPack (MIT), Netcode.IO.NET (MIT), Reliable Netcode (MIT)See `Third-Party Notices.txt` in package for full details.---## Get Started Today**Ready to build multiplayer?**1. Import GONet package2. Add GONet_GlobalContext prefab to your first scene3. Add GONetParticipant to GameObjects4. Build executable5. Hit Play (for local play: first one in becomes server, the rest become clients)**That's it!** Your game is now networked.[Join our Discord](https://discord.gg/NMeheRHQgd) | [Read the Docs](https://galoreinteractive.com/gonet) | [Watch Tutorial](https://www.youtube.com/watch?v=fs1flIi35JM)---**GONet - Making Unity Multiplayer Simple, Powerful, and Production-Ready**## NEW in v1.5**RPC System**- Async/await support with `CallRpcAsync()`- [ServerRpc], [ClientRpc], [TargetRpc] attributes- Server-side validation hooks- Persistent RPCs delivered to late-joiners- Deferred execution for components not ready- Delivery reports and validation results**Scene Management System**- Server-authoritative scene loading- Build Settings and Unity Addressables support- Client scene change requests with server approval- Automatic late-joiner scene synchronization- Extensibility hooks (OnValidateSceneLoad, RequiresAsyncApproval)- Single and Additive loading modes**Unity Addressables Support**- Scene loading from Addressables- Runtime prefab spawning from Addressables- No Resources folder restrictions- Organize prefabs anywhere in project- Efficient asset bundles via Addressables groups- Platform-specific asset variants- Zero configuration (auto-detected)- Works alongside Resources-based prefabs**Adaptive Congestion Management**- Auto-scaling packet pools (1,000 to 20,000 packets/tick)- Handles burst spawning (100+ objects/frame)- Prevents "Ring buffer is full" errors- Configurable drop thresholds for unreliable traffic- Detailed congestion logging**Velocity-Augmented Sync**- 90%+ bandwidth reduction for slow-moving objects- Eliminates micro-jitter for smooth movement- Intelligent switching (velocity vs absolute values)- Aggressive quantization (slow velocities compress to 0 bits)- Periodic VALUE anchors prevent drift- Perfect for platforms, turrets, doors, rotating cameras**Auto-Detection for Development**- Automatic server/client role detection- First instance becomes server, rest become clients- Works in Editor and builds- Zero manual configuration for local testing- Command line args override available**Sync Bundle Deferral System**- Industry-standard DROP-FIRST approach (default)- Optional queue-and-retry for turn-based games- Handles race conditions during rapid spawning- Configurable queue size and processing batch size- Authority re-sends state 30-60 times/sec (auto-recovery)**GONetId Batch System**- Pre-allocated ID ranges (200-1000 IDs per batch)- Zero spawn latency for client-owned objects- Automatic batch refill at 50% threshold- Configurable limbo mode for edge cases- Eliminates 50-150ms server round-trip delay**GONetId Reuse Protection**- Configurable delay before ID reuse (default: 5 seconds)- Prevents premature despawn messages- Tunable for different latency scenarios**Message Flow Logging**- Separate log file: `gonet-MessageFlow-YYYY-MM-DD.log`- Comprehensive send/receive/process tracking- Critical for debugging race conditions**UI Components**- GONetStatusUI (persistent on-screen status display)- Scene Selection UI (server-side scene picker)- Exit Button UI (graceful disconnect with approval)## Core Networking Features**Auto-Magical Data Sync**- Transform (position, rotation, scale)- Animator Controller parameters- Any MonoBehaviour fields with [GONetAutoMagicalSync]- Input state (keys, mouse, buttons)- Design-time code generation (debuggable, no runtime reflection)- Configurable sync profiles (reliability, frequency, quantization)**Network Spawning**- GameObject.Instantiate() networked automatically- Prefab alternates for non-owners- Runtime authority transition- Resources and Addressables loading- Late-joiner spawning support- Spawn data provider interface (IGONetSpawnDataProvider)**Value Blending**- Default interpolation/extrapolation- Custom blending via IGONetAutoMagicalSync_CustomValueBlending- Handles packet loss gracefully- Smooth non-owner visuals- Configurable buffer lead time (default: 100ms)**Event Bus System**- Publish/Subscribe architecture- Transient events (current clients only)- Persistent events (includes late-joiners)- Custom event classes- Automatic event delivery from sync changes- Promotes event-driven architecture**Serialization & Compression**- Custom bit-packing (tighter than MessagePack)- LZ4 compression for bulk data- Configurable quantization (choose bit count per value)- Custom serializers via IGONetAutoMagicalSync_CustomSerializer- Automatic range mapping and compression**Network Transport**- UDP-only (no TCP overhead)- Unreliable + Unordered (fast, low latency)- Reliable + Ordered (RUDP - guaranteed delivery)- Configurable channels per data type- Encryption via Bouncy Castle Crypto API- Multi-level API (high, mid, low-level)**Late-Joining Client Support**- Full world state sync on connect- Persistent events delivered automatically- Scene synchronization (loads correct scene)- GONetId assignments for scene-defined objects- Buffered assignments if scene not loaded yet**Physics Support**- RigidBody synchronization (position, rotation, velocity, angular velocity)- Kinematic vs dynamic mode sync- Collision event propagation (optional)- Authority transition mid-flight- Sync after all FixedUpdate and physics processing**Logging System**- Custom GONetLog (no external dependencies)- Multi-threaded architecture- Cross-platform (Mono, .NET Framework, .NET Standard, IL2CPP)- Console output in Editor- File output in builds (Application.persistentDataPath/logs)- Configurable levels (Debug, Info, Warning, Error, Fatal)- Comprehensive context (thread, timestamp, frame time)- Automatic log rotation**Code Generation**- Pure C# code generators (no T4 templates)- Design-time generation (committed to source control)- Runtime debuggable- Per-prefab sync companion classes- Automatic regeneration on changes- Object pooling and bit packing## Network Topologies**Dedicated Game Server (Client-Server DGS)**- Authoritative server prevents cheating- Scales well for online multiplayer- Predictable behavior**Local Area Network (LAN)**- Low latency, high bandwidth- Great for Location-Based Entertainment (LBE)- Couch co-op, arcades, events## Platform Support**Wide Compatibility**- All managed C#, no native libraries- Ahead of Time (AOT) compilation support (iOS)- IL2CPP supported- Windows, Mac, Linux, iOS, Android- Consoles (case-by-case basis)**Unity Version**- Unity 2022.3.62f3 LTS or later (minimum required)- Forward compatible with Unity 2023.2+ LTS## Performance & Optimization**High Performance Design**- UDP-only for minimal overhead- Aggressive inlining on hot paths- Object pooling (NetworkData, byte arrays)- Span and Memory for zero-copy operations- Minimal allocations in hot paths- Multi-threaded where safe**Bandwidth Optimization**- Bit-packing and quantization- LZ4 compression- Velocity-based sync for slow-moving objects- Configurable update frequencies- Delta encoding**Memory Management**- Object pooling throughout- Automatic pool scaling- Byte array reuse- Zero allocations in sync loops- Incremental GC recommended## Extensibility & Customization**PluginAPI**- Custom serializers (IGONetAutoMagicalSync_CustomSerializer)- Custom value blending (IGONetAutoMagicalSync_CustomValueBlending)- Spawn data providers (IGONetSpawnDataProvider)- Scene-defined object initializers (IGONetSyncdBehaviourInitializer)- Runtime component injection (GONetRuntimeComponentInitializer)**Validation Hooks**- RPC validation (server-side)- Scene load validation (OnValidateSceneLoad)- Async approval workflows- Custom filtering and authorization**Configuration**- GONetGlobal runtime settings- Per-value sync profiles- Quantization settings- Reliability and frequency per field- Custom sync profiles via templates## Documentation & Examples**Included Documentation**- Comprehensive setup guide- API reference documentation- Sample scene with working examples- Code comments throughout- CLAUDE.md with architecture details**Sample Code**- GONetSampleScene.unity (complete working example)- GONetSampleInputSync.cs (input synchronization)- GONetSampleSpawner.cs (network spawning)- GONetSampleChatSystem.cs (RPC validation example)- SceneSelectionUI.cs (scene change requests)- ExitButtonUI.cs (persistent UI with async approval)**Community Resources**- Active Discord community- Tutorial videos- Forum support- Regular updates## System Requirements**Development**- Unity 2022.3.62f3 LTS or later- .NET Framework or .NET Standard 2.1- 64-bit CPU with 4 cores recommended- Windows, Mac, or Linux- Allow 'unsafe' Code enabled**Runtime (Playing GONet Games)**- Baseline Unity player requirements- 64-bit CPU (mobile: ARM64)- Network connection (LAN or Internet)## Third-Party Libraries- Bouncy Castle Crypto - Apache License 2.0- Class Type Reference - MIT License- MessagePack - MIT License- MemoryPack - MIT License- Netcode.IO.NET - MIT License- Reliable Netcode - MIT LicenseAll licenses included in package. See Third-Party Notices.txt for full details.## Source Code- Full C# source code included- Well-commented and debuggable- Pure C# (no native dependencies)- Design-time code generation- Committed generated code for debuggingGenerative AI LLMs were used as a collaborative development assistant throughout the creation of GONet v1.5.**Workflow:**- Human developer (subject matter expert) identifies needs and sparks ideas based on expertise- AI assists with ideation and discussion of approaches- Human architect designs the architecture and way forward- AI assists with implementation details after human designs the solution- Human guides through series of commits, verifying everything at each step- All code and technical decisions ultimately approved and verified by human developer**Specific AI Assistance:**- **Unit Testing:** Thorough test coverage and edge case identification- **Implementation Details:** Code generation based on human-designed architecture- **Bug Identification:** Analyzing code for potential issues- **Root Cause Analysis:** Investigating problems and suggesting fixes- **Log Analysis:** Parsing large log files to identify patterns and issues- **Documentation:** Setup guides, release notes, and product descriptions**Key Point:**The human developer's subject matter expertise guides the AI toward real solutions. The human architect makes all architectural and design decisions. AI assists with detailed implementation work, testing, debugging, and documentation.**Result:**All code and features in GONet v1.5 reflect human expertise and decision-making, with AI serving as an intelligent assistant for detailed work and analysis.