Skip to content

Releases: SoftwareGuy/Ignorance

Ignorance 1.3.9.2: Hotfixes for Mirror 26+

18 Nov 11:20

Choose a tag to compare

Important note: This version of Ignorance will identify itself as 1.3.10, instead of 1.3.9.2. This is due to 1.3.9 getting some revisions before 1.3.10 actually materialized. Ignorance 1.3.10 might also be the start of Ignorance 1.4, right now Ignorance is under heavy sugery on my workstation so the next version might very well be 1.3.10, or Ignorance 1.4.0, or some other weird mashup version number.

Please uninstall any Ignorance previous version, as this version can cause breakage otherwise. Backup your project too while you're at it!

Additions

  • UPM Support for Ignorance available at T-CROC's GitHub Repository, so you can use that if you want - it will bring in the latest Git version of Ignorance that's tagged as latest, however...

Fixes

  • #73 by paulpach: Fixes issue with Ignorance not passing the length of the packet back to Mirror, causing bigger arrays to be sent back to Mirror instead of just the bytes needed.

Improvements

  • Ignorance Debugging Menu renamed to Ignorance.
  • Added Repo and Issue Tracker menu options.
  • Saner defaults.

Removals

  • Ignorance Classic is dead. It was broken causing Access Violations. Migrate to IgnoranceThreaded and get a free performance boost.

As always, thanks for using Ignorance!

Ignorance 1.3.9 Prerelease Revision 1

05 Oct 02:34

Choose a tag to compare

This is a pre-release of Ignorance 1.3.9. It has been released as a "pre-release" as I am very busy at the moment and also dealing with the aftermath of Ignorance 1.3.8, which was a partial lemon due to a mixture of build-bot confusion.

A clean install of Ignorance is highly recommended as this release has changes to the Dependencies including ENet-C# and the native ENet blobs. Backup your project beforehand!

A proper full release with changelog will come later in the near future.

Ignorance 1.3.8

16 Aug 06:47

Choose a tag to compare

It is highly recommended to do a "clean" install of Ignorance when upgrading to this version of the transport. Back up your project before doing so!

1.3.8 is a quality of life update, addresses some stupid mistakes I've made plus should help improve reduce memory allocations. 🎉

Bug Fixes

  • Reported by Discord users: Random memory allocations, but then not even working with that allocated memory, yet allocating more memory.
  • Hopefully fix #66: ENet-CSharp was loading the wrong library on some Unity Editor instances depending on the build setting.
  • Fix #65: Mirror Profiler specific bug
  • Probably others too

Improvements

  • Backport a Ignorance 1.4 feature using System.Buffers.ArrayPool for allocating memory. This allows efficient re-use of the byte arrays used internally. It's not optimal, but it does the job and doesn't seem to hurt performance.
  • Menu item to determine what the name of the internal library you're using on your Unity Editor platform

Binaries

  • Up-to-date blobs from the forked ENet-CSharp repository
  • Windows 32 Bit support has been removed. I am no longer supporting 32Bit, either compile them yourself or contact me privately and I'll try to get you some.

Ignorance 1.3.7

11 May 07:12

Choose a tag to compare

This was so overdue but it's here now. 🎉

Bug Fixes

  • Fix #59: An oversight could potentially cause Access Violations and ENET to crash.
  • Fix #60: An oversight that caused Ignorance to not disconnect clients when ServerDisconnect() was called by Mirror. I honestly don't have words for this one. 🥴

Improvements

  • Deprecate Ignorance Classic, throw a warning saying that people should migrate to Ignorance Threaded
  • Other misc improvements

Binaries

  • Update blobs to match the custom ENet-CSharp repository. This makes sure you're up to date with latest ENET changes.

Ignorance 1.3.6: The New Year's First QoL Update

30 Jan 07:13
d8ffcdf

Choose a tag to compare

This is a quality of life update for Ignorance. It does not have any changes with ENET Binary blobs or the ENet-C# layer, however it does fix some minor bugs that have been fixed since the release of 1.3.5.

Advance Warning: Ignorance Classic, which is the LateUpdate pumped version will be deprecated shortly and removed in v1.4.0. I am doing this because Ignorance Threaded provides much better performance and the network pumping is not tied to the frame rate, thus providing a better overall experience.

Thanks for choosing Australian Open Source Software projects!

Ignorance 1.3.5: The road to networking victory

02 Nov 05:41

Choose a tag to compare

This release contains some changes to add support for Mirror 5.x, which is another breaking change for Mirror Networking.

This release was written with a dependency of Mirror 4.4.4.

Fun fact: Ignorance Threaded has been going through a lot of torture tests lately and coming back from the Battlefield without crashing. There's a reason why people choose Ignorance over Unity LLAPI.

Read this first

  • If you're coming from Ignorance 1.2, delete the entire Ignorance folder out of your project as your version is obsolete. Then, import this release. You might need to update your Mirror version too, if you get errors about things not being able to be overridden, etc.
  • If you're coming from Ignorance 1.3.x, please delete the "Plugins" and "Modules" folders. Then import this one over the top of your existing installation.

What else is new?

  • Removed all pre-Mirror 4.x calls in the transport files. You no longer can use Mirror 3.x with Ignorance 1.3.5.
  • Better error and announcement log messages. Ignorance will now apologize upon bailing, and ask you to report a bug if you can consecutively get it to crap the bed.
  • Clean up/refactoring in Ignorance Threaded. Instead of overloading the thread wrapper starter, a configuration struct is now in use and it is much cleaner to look at, at the expense of some extra LOC.
  • Experimental x86 (32bit Windows) binaries for the ENET Networking backend. These will be treated as experimental, if you find a bug you will need to try to replicate it on 64bit (just build your game for 64bit Windows). There are no Linux x86 binaries for the ENET Networking backend, however. Open a issue ticket and I'll help you do so.
  • Native library went on a diet. I recompiled the native library blobs and they shrank in the wash. WTF?

As always, thank you for using Ignorance.

Ignorance 1.3.4 QoL Update

30 Sep 05:47

Choose a tag to compare

Ignorance 1.3.4 is a quality of life update for 1.3.3, which should actually be versioned as 1.3.3.1. As always, don't delay, get that bug report in today!

Mirror Networking 4.x Compatible: Now you can get some sweet non-alloc sending goodness when passing data down the Mirror chain of command.

Known Bugs

  • Ignorance identifies as 1.3.2 in the code, but it's actually 1.3.4. This will be fixed in 1.3.5 (or master, before 1.3.5's release).

Bug Fixes

  • Hopefully fix ENET Library not loading correctly in the Mac OS Editor; as outlined by #52. This was caused by an outdated ENet-CSharp wrapper file. (oops!)

Updates

  • Updated ENet-CSharp wrapper since it was actually outdated.

New Features
No new features were implemented in this version.

Thank you for using Ignorance to power your game's low-level networking! If you like what I do, please consider dropping me some loose change on my Ko-Fi page.

Ignorance 1.3.3: Welcome back, threaded sister!

14 Sep 04:12

Choose a tag to compare

This update will most likely break your existing installation of Ignorance. Backup your project before installing this release! This update was long overdue and due to a snowball of IRL stuff that happened, I am glad this release is out now!

Delete all instances of Ignorance out of your project, then import this release to make sure you are cleanly installing this release. If you get script assembly issues, close your project, and delete the Library/ScriptAssemblies folder in your project path. Let Unity recompile everything then.

Notes

  • If you made any edits to your Ignorance installation you will need to add them back in. It may be wise to copy your edited Ignorance to a safe directory outside your working tree and then diff your changes back in.
  • Please note that Ignorance Threaded needs real-world testing and may crash randomly. If it does, please file a support ticket with any debugging information (ie. Android logcat/Xcode Exception Log on mobile or the stack trace on desktop OSes) and I'll get back to you ASAP.

Changes

  • Multi-packet per frame version of Ignorance is now "Ignorance Classic".
  • Ignorance.cs and IgnoranceTransport.cs are basically wrappers for Ignorance Classic and are designed to help aid migration from Ignorance 1.2.x.
  • The return of the fully threaded Ignorance transport. Ignorance Threaded takes to the sky, and is high performance "big sister" version of the transport.
  • ENet wrapper was cleaned out and enhanced thanks to Visual Studio's recommendations. The amount of var in that file was crazy. This might help some usage cases.

Libraries

  • New libraries for the following platforms: Windows, MacOS, Linux (64bit), Android (4.4+), iOS (8.0+)
  • All built from the custom ENet-CSharp repository fork, with refinements by yours truly and @c6burns.

As always, thank you for using Ignorance! Don't delay, get that bug report in today.

Ignorance 1.3.0 Gold Release

01 Jul 05:03

Choose a tag to compare

It's finally here! 🎉

You could probably overwrite a Ignorance 1.3.0 RC2 installation with this gold release but it's safer to delete all Ignorance scripts out of your project, import this Unity Package and go from there.

Upgrading from 1.2.x? Backup your project! This is a major rewrite of Ignorance and I strongly recommend taking a backup of your project before continuing.

Correct Setup

Also see the Ignorance_Barebones_PreconfiguredScene scene. That is a good starting point for Ignorance powered projects.

image

New Features

  • Apart from refactors and tidying up after 1.3.0 Release Candidate 2, nothing much.
  • DNS resolver confirmed working, now you can throw hostnames at Ignorance and ENET will go out, resolve it and try to connect to either IPv4/IPv6 address it discovered.

Removed Features

  • NAT-PMP/UPnP will return at a later date. I have to re-implement this module.

Bug Fixes & Improvements

  • Fix ping calculation frame setting not always being reset after X amount of frames (stupid mistake)

Other

  • Updated ENET-C# Managed Wrapper dependency which broke halfway during update and had to be surgically reattached.
  • Freshly cooked set of ENET-C# binaries without LZ4 support based from my repository

Thank you for choosing Ignorance.

Ignorance 1.3.0 Release Candidate 2

17 Jun 07:12

Choose a tag to compare

IMPORTANT: BACK UP YOUR PROJECT BEFORE UPGRADING TO IGNORANCE 1.3.0
I can't stress that enough. Ignorance 1.3.0 is a rewrite of the transport code to cut some of the fat that the Ignorance 1.2.x had, and is a code-breaker release. However the breakage can be minimized if you read the following.

While this release candidate has been used against client projects and confirmed stable both in a local LAN environment and real-world connection from a country Australia connection to a Sydney data center server, it is still release candidate status. You can either roll the dice and use this version, or play it safe and wait until 1.3.0 comes out.

You will need to remove all of Ignorance prior to this version from your project. Delete the Ignorance folder out of Mirror/Runtime/Transport and let it recompile. You will get errors and NetworkManager objects will likely add a Telepathy Transport to be helpful.

Import Ignorance 1.3.0. Let it recompile again, then go "Add Component" -> search for "Ignorance" and add that component. Then, grab where it says Ignorance in the inspector and drag it up into the Transport slot of the NetworkManager. Then remove the Telepathy Transport. If done correctly, you'll get something like this:
image

In fact, just make sure it looks something like the above. If so, you're good to go.

New Features

  • Core rewrite. Much cleaner, less code in the hot path.

Removed Features

  • LZ4 Compression: You probably should be compressing stuff before sending it over the network, not leaving ENET having to do it for you.
  • UPnP & NAT-PMP Port Mapping: Will be re-implemented at a later date (likely 1.3.0 non-RC). Didn't work correctly on Mac/Linux platforms.

Bug Fixes & Improvements

  • Nothing to mention here.

Other

  • New batch of ENET-C# libraries without LZ4 support.
  • Updated ENET-C# Dependency