Welcome to Super Netcode documentation
Tutorials | Changelog | API | Asset Store | Forum
Latest documentation update: 2021-12-16
Latest release: 2021-09-24
Latest version: 1.8
About
Super Netcode is an easy-to-use networking solution for Unity for programmers and non-programmers. It comes with code examples, YouTube tutorials, and support from the developer. Entire source code is included without DLL's, it works with IL2CPP, .NETCore and can be compiled without Unity for standalone fully authoritative dedicated servers. Connections can be established across different platforms including Mobile and PC. You host your own servers, there are no hidden fees or plans, once you have the netcode you have everything you need.
Low Level Transport
At its core is the low level transport over UDP written from scratch which supports reliability, encryption, authentication, compression, P2P, Mirror, accurate timings, and much more. The API is very easy to use and well documented. If you're comfortable with coding, you can only use the low level transport and write your own spawning and synchronization logic, or you can use the provided network component system that was built on top of the transport.
High Level Component System
With the component system, you can easily spawn and synchronize objects with no coding required. There is no distinction between servers and clients, the system allows any kind of network architectures including mesh networks, you just need to decide which peers get authority over which objects, and the system does the rest. There are several already written components for you to use for synchronizing transforms, rigidbodies and animations. These components use smooth interpolation and only send updates when necessary to save on bandwidth. You can also extend the system by writing your own components which handle synchronization in the way you want.
Support
Since we use the netcode in our games, we plan on maintaining it and offering support for the indefinite future. Any bugs or security vulnerabilities will be fixed immediately, and we will keep adding new features. If you have any questions, suggestions, feature requests, or if you need more examples, tutorials or advice for your game, you can contact me through discord, forum or email. I'm happy to help, and it improves the netcode :)
- Email: superversusgame@gmail.com
- Discord:
Casper#8159
- Discord Server
- Forum
Showcase your game
We're interested in obtaining footage of your game to include it (with permission and attribution) in a showcase video of what the netcode is capable of. If you have a game in development and you're using the netcode, you can showcase it on our discord, forum thread or you can send footage directly to our email. It also helps improve the netcode because we see how it is used and what features we need to add to make development easier.
Features
- Unlimited connections
- Smooth synchronization of transforms, rigidbodies and animations
- Lag compensation by rolling objects backwards through time
- Easy to use Unity Components with minimal coding required
- Collider rollback for accurate hit detection
- Any network infrastructure including mesh networks
- Fully documented clean and simple code
- Entire source code included, no third party libraries
- Can be compiled without Unity for dedicated servers
- Multiple examples including a 3D game with a server list and P2P
- Modern asynchronous code using TPL (async/await) without any threads
- End to end encryption with Diffie–Hellman key exchange
- Authentication of secure servers with public key cryptography
- Peer to peer connections without port forwarding with UDP NAT hole punching
- Send mechanics for reliability, order, duplicate prevention, timings, etc.
- Accurate timing of messages for time sensitive applications
- Automatic combining of messages to save on bandwidth
- Automatic fragmentation and recombination of large messages
- Fast compression of packets based on the DEFLATE algorithm
- IPv6 support, 255 data channels, CRC32 error checking
- Connection statistics for hosts and peers
- Broadcast messages to all machines in local network for host discovery
- Supported platforms: Windows/Mac/Linux/Android/iOS/UWP
- Support for serializing common Unity types (Vectors, Colors, ...)
- IL2CPP and .NET Core support
Future plans
- Priority based congestion control at the low level transport
- Bandwidth limiter that dynamically updates send rates
- Automatic serialization of message fields with reflection
- Rollback for animations
- Remote procedure calls in components
- Remove all allocations for zero GC
- Fixed point floating point data serialization (for transforms)
- Packed integer serialization support for reader and writer
- Support for direct encrypted messages between peers on the network
- Components for Text, Image, RawImage and Button
- Component for enabling/disabling components via the network
- Rent relay servers for P2P, Matchmaking, Lobbies, Server Lists, Accounts, etc...
- If a fragmented packet gets lost, retrasmit only lost fragments
- Hamming codes at the low level transport
- Automatic MTU detection
- DOTS support
- Region clustering for MMO architectures
- Visual scripting support
- WebGL support