Ignorance 1.2.x Stable
If you feel so inclined, I'd appreciate a coffee to keep me caffeinated if you use this transport.
Ignorance Transport allows you to harness reliable UDP communications over the vast seas that is the internet. Simply plug this transport into Mirror Networking and you've got the power of reliable UDP provided by the ENET C Networking Library in your project.
Ignorance now uses a custom fork of nxrighthere's ENET-CSharp repository due to his recent fallout with the Mirror team over silly things. If you want my analysis of the situation, you can find it on my blog.
Why should I use Ignorance 1.2.x over Unity LLAPI?
Unity LLAPI is old, obsolete and no longer mantained by Unity Technologies. Plus, it was held together by bandaids and bubble-gum. Ignorance aims to replace it with a stable, high performance transport system that allows you to forget about low-level networking stress and spend more time focus on making the game you want to make.
- Windows 7 onwards, x64 platform. x86 (32Bit) not supported, sorry.
- Anything recent that is Intel platform. PowerPC not supported.
- Anything modern that is x86_64 platform. Ubuntu recommended, but should work on Debian, Arch, Gentoo...
- Kitkat 4.4 onwards.
- iOS 8.0 onwards on ARMv7 all the way to the iPhone X on ARM64e.
- ENet-CSharp, our custom fork of NX's code. Blobs are included in the repository, no manual compile required.
Please use the Mirror Asset Store releases. The master branch of Mirror can also be used but please beware that it's bleeding edge and massive breakage can be expected on a bad day.
Download the Unity Package from Releases that is the latest one. Simply import the Unity Package and Unity will do the rest. Follow the instructions below.
How to use
If you haven't already, make a empty GameObject with the Mirror Network Manager. It will automatically add Telepathy as the default transport. Add a new component and look for Ignorance Transport. You will have Ignorance added as a transport, but it will not be activated. Now drag the Ignorance Transport script into the Transport field of the Network Manager inspector. If all goes well, you should see Ignorance Transport (Transport) in that field.
Check the current open bug reports and/or report a new one here, and I also recommend you be present in the Discord so I can ask for further info and/or you can test fixes for your bug reports.
Bugs that do not have enough details will be closed with #wontfix. Details like your OS, Unity Editor version, any Ignorance errors, etc is essential for a good bug report.
Mac OS Editor Compatibility Issues
When using Ignorance inside the MacOS environment, it will run in a compatibility mode to ensure things work correctly. This is due to some Unity Editor thread managed-to-native issues that were fixed in 2018.3+.
I have questions, I want answers.
- Coffee Donators: Thank you so much.
- vis2k and Paul: Mirror lead developers.
- Katori: Helped kickstart the threaded version that evolved into Ignorance 2.
- BigBoxVR: Pull requests and found a race condition that threatened stability.
- c6burns: Words cannot describe how much help he's been. Bloody oath mate.
- FSE_Vincenzo: Providing insight into proper usage of ENET, rebuttal, improvements, etc.
- BigBoxVR and Martin: Pull requests.
- To all the others who I have missed. Thanks a lot, you know who you are.
- You too can have your name here if you send in a PR. Don't delay, get your PR in today!
Previous hall of fame:
- Petris: Code refactoring and tidy up (you rock man!)
- Draknith: Testing and mapping Reliable/Unreliable channels in Mirror to ENET Channels, testing.
- shiena: Pull requests for bug fixes and oversights.
- The folks at the Mirror discord: Memes, Courage, LOLs, drama and all-round awesome folks to chat with.
And last but not least...
- nxrighthere: Helped debug some things in early versions of Ignorance, before going full rampage and blacklisting everyone on the Mirror team from his repos. RIP.