Skip to content
Ignorance: A reliable UDP based transport for vis2k's Mirror Unity API.
Branch: master
Clone or download
Latest commit 8214e01 May 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Assets 1.2.7 WIP. May 18, 2019
Library release candidate of 1.2 Feb 14, 2019
ProjectSettings 1.2.4 release preparations Apr 16, 2019
.editorconfig Freshly baked DLLs ready for 1.2.5 Apr 28, 2019
.gitignore update gitignore May 11, 2019
LICENSE Legal mumbo-jumbo Jan 8, 2019
README.md Update README Apr 6, 2019

README.md

Ignorance 1.2.x Stable

PayPal

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.

Compatiblity

Windows

  • Windows 7 onwards, x64 platform. x86 (32Bit) not supported, sorry.

MacOS

  • Anything recent that is Intel platform. PowerPC not supported.

Linux

  • Anything modern that is x86_64 platform. Ubuntu recommended, but should work on Debian, Arch, Gentoo...

Android

  • Kitkat 4.4 onwards.

iOS

  • iOS 8.0 onwards on ARMv7 all the way to the iPhone X on ARM64e.

Dependencies

  • Mirror
  • ENet-CSharp, our custom fork of NX's code. Blobs are included in the repository, no manual compile required.

Mirror Compatibility

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.

Installation

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.

Bugs

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.

You're welcome.

Credits

  • 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.
You can’t perform that action at this time.