All Projects → SoftwareGuy → Ignorance

SoftwareGuy / Ignorance

Licence: other
Ignorance utilizes the power of ENet to provide a reliable UDP networking transport for Mirror Networking.

Projects that are alternatives of or similar to Ignorance

Networker
A simple to use TCP and UDP networking library for .NET. Compatible with Unity.
Stars: ✭ 408 (+158.23%)
Mutual labels:  unity, unity3d, networking, udp
Mirror
#1 Open Source Unity Networking Library
Stars: ✭ 2,905 (+1738.61%)
Mutual labels:  unity, mirror, networking, udp
Bdframework.core
[中]Simple! Easy! Powerful Unity3d game workflow! Unity3d framework:c# hotfix(ILRuntime)、asset manager、ui workflow、network debug... and so on
Stars: ✭ 1,196 (+656.96%)
Mutual labels:  game, unity, unity3d
1 Character Movement
The first section of the course. You will learn everything required to build a simple movement system in your RPG, creating the core experience. http://gdev.tv/rpggithub
Stars: ✭ 81 (-48.73%)
Mutual labels:  game, unity, unity3d
Ecs
ECS for Unity with full game state automatic rollbacks
Stars: ✭ 151 (-4.43%)
Mutual labels:  unity, unity3d, networking
Ksframework
QQ Group:538722494,KSFramework = KEngine + SLua(or xLua) , Unity3D Framework/Toolsets focus on hot reload
Stars: ✭ 1,119 (+608.23%)
Mutual labels:  game, unity, unity3d
3 Modifiers And Abilities
Customise character abilities, weapons, characters and enemies. This includes multiple damage types, modifiers, sounds, animations. By the end you can create your core combat experience. (REF MA_RPG) http://gdev.tv/rpggithub
Stars: ✭ 64 (-59.49%)
Mutual labels:  game, unity, unity3d
Forgenetworkingremastered
In short, Forge Networking is a free and open source multiplayer game (multi-user) networking system that has a very good integration with the Unity game engine. You wanna make a multiplayer game or real time multi-user application? This is the library for you.
Stars: ✭ 1,338 (+746.84%)
Mutual labels:  unity, unity3d, networking
Savegamepro
A Complete and Powerful Save Game Solution for Unity (Game Engine)
Stars: ✭ 30 (-81.01%)
Mutual labels:  game, unity, unity3d
Openmmo
OpenMMO - Groundwork
Stars: ✭ 115 (-27.22%)
Mutual labels:  game, unity3d, mirror
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-37.97%)
Mutual labels:  game, unity, networking
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-24.68%)
Mutual labels:  game, unity, unity3d
Srp
A customized forward+ render pipeline for Unity
Stars: ✭ 53 (-66.46%)
Mutual labels:  game, unity, unity3d
Unity Core Project
Core Framework for Unity
Stars: ✭ 42 (-73.42%)
Mutual labels:  game, unity, unity3d
09 Zombierunner Original
First person shooter with Unity terrain and AI pathfinding (http://gdev.tv/cudgithub)
Stars: ✭ 64 (-59.49%)
Mutual labels:  game, unity, unity3d
Chasingplanes unity3d
A "Missiles" game replica, 2D fun mobile game about avoiding missiles while flying a plane.
Stars: ✭ 42 (-73.42%)
Mutual labels:  game, unity, unity3d
Projectfieldwarning
Project: Field Warning is a community-made RTS game centered around lethal regiment and division-scale warfare.
Stars: ✭ 86 (-45.57%)
Mutual labels:  game, unity, unity3d
Towerdefense
A Tower Defense style game example in Unity
Stars: ✭ 122 (-22.78%)
Mutual labels:  game, unity, unity3d
Beaverandfairies
Stars: ✭ 14 (-91.14%)
Mutual labels:  game, unity, unity3d
Hsplugins
Various Honey Select plugins
Stars: ✭ 21 (-86.71%)
Mutual labels:  game, unity, unity3d

Ignorance 1.4 Logo

Ignorance 1.4 Beta

Ko-Fi PayPal GitHub issues GitHub last commit MIT Licensed

I'd appreciate a coffee if you use this transport.

"Probably the fastest transport out there for Mirror..." - FSE_Vincenzo, 2021 (Mirror Discord)

Ignorance 1.4 is a ENet-powered transport that plugs into the Mirror Networking project. It provides a high-performance implementation of the tried and true native ENet C library which provides reliable UDP communications for your game projects. Variants of ENet are used by Triple-A game companies for their networking. Reliable UDP has a lot of benefits over TCP which was the default in Mirror.

Ignorance was originally intended to replace Unity's LLAPI Transport that ships with Mirror, however since it uses native libraries it was deemed too risky to ship with Mirror itself.

ENet supports a maximum of 4096 peers connected at the same time with up to 255 channels. Channels allow you to split up network communications so you can have channels for data that are mission critical as well as non-essential data. The native library has also been proven to be superior when compared to Unity's own LLAPI library.

Ignorance in Action

Ignorance was used in a recent "Vinesauce is Hope" walking simulation demo which had multiple server instances running with over 300 CCU each. Video clips available here.

What devices are supported?

  • Desktop platforms such as Windows, Mac OS and Linux are supported out of the box along with Android and iOS.

  • Consoles are hit and miss, since they run on slimmed down operating systems.

  • If ENet can run on it and it's supported by Unity, you're good with Ignorance.

For more info, see the FAQ.

Dependencies

Please note that the repository doesn't include Mirror, instead it only provides you the Ignorance code.

Make sure you have Mirror installed and up to date before installing Ignorance.

  • ENet-CSharp: slightly modified version included

  • Mirror Networking: use Asset Store release please, only use Git Master release for bug fixes that you desperately need

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

I have included a pre-configured sample scene so you can get started easily. Otherwise add the script called Ignorance to your NetworkManager object, removing any TCP-based or other UDP-based transport. Then set the script to be used in NetworkManagers' "Transport" field.

FAQ (aka Please Read This First)

See FAQ.md.

I found a bug, where do I report it?

Check the current open bug reports and/or report a new one here.

Failing that you can always ping me in the Mirror Discord and I'll reply as soon as I can. Don't excessively ping me or you'll suffer my wrath.

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.

I have other questions, I want answers.

Here's a quick primer.. It might be slightly out of date, but it covers the basics of Ignorance.

Credits

  • Donators: Thanks for helping keep the lights on.

  • FSE_Vincenzo: Resident master of the ENet way. They are part of Flying Squirrel Entertainment - go check their games out.

  • JesusLuvsYooh : CCU endurance testing project, ideas, fixes and other awesome stuff

  • Katori: Helped kickstart the threaded version that evolved into short-lived Ignorance 2.x version, which later became Ignorance Threaded.

  • BigBoxVR: Pull requests and found a race condition that threatened stability. Also uses Ignorance in Population One, a VR title.

  • Martin: Pull requests, testing with Dissonance. Great VoIP asset for Unity.

  • vis2k and Paul: Mirror and MirrorNG developers respectively.

  • c6burns, Petris, shiena, Draknith: Former buddies that helped a lot.

  • nxrighthere: Author of ENet-CSharp in which I forked and made custom improvements to it.

  • The Mirror Discord and 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!

To be continued...?

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].