J'apprécierais un café si vous utilisez ce transport dans votre projet et que vous souhaitez m'aider à garder mes factures payées et mes lumières allumées.
"Probablement le transport le plus rapide pour Mirror..." - FSE_Vincenzo, 2021 (Mirror Discord)
Ignorance est un transport basé sur UDP hautes performances qui se connecte au réseau miroir. En exploitant la puissance de la bibliothèque native ENet éprouvée, il fournit des communications UDP fiables et peu fiables avec jusqu'à 4 096 pairs connectés (clients) et 255 canaux. UDP fiable présente de nombreux avantages par rapport à TCP, qui était la valeur par défaut dans Mirror jusqu'à la mise en œuvre de KCP.
L'avantage de l'ignorance est que vous pouvez utiliser des canaux qui vous permettent de diviser les communications réseau. Cela vous permet de disposer de canaux pour les données critiques et qui doivent être envoyées le plus rapidement possible, ainsi que de canaux pouvant envoyer des données non essentielles plus lentement.
Ignorance 1.4 est actuellement en support à long terme, ce qui signifie qu'aucune nouvelle fonctionnalité n'est prévue. Les corrections de bugs sont prioritaires et seront résolues lorsque j'aurai du temps libre.
Si vous avez un rapport de bug urgent, nous vous encourageons à envisager un parrainage. Cela me permettra de prendre du temps sur mes activités professionnelles et de donner la priorité au rapport de bug.
L'ignorance est sous licence MIT. Cependant, il y a eu des cas récents où d'autres développeurs ont utilisé la totalité ou des parties de la source Ignorance, supprimant la licence MIT et y appliquant leur propre licence à la place.
Cela constitue une violation de la licence MIT car elle indique clairement que les mentions de droits d'auteur doivent rester intactes. Bref, ne soyez pas un voleur de code et respectez la licence MIT.
Ignorance 1.4 LTS ne fonctionnera pas avec les anciennes versions de Mirror. Vous pouvez rétroporter la version 1.4 LTS sur votre ancien projet Mirror, mais cette prise en charge est à votre charge.
Téléchargez le package Unity à partir des versions les plus récentes. Importez simplement le package Unity et Unity fera le reste. Suivez les instructions ci-dessous.
Alternativement, vous pouvez utiliser le code de la branche master, qui est souvent à jour par rapport aux versions.
J'ai inclus deux exemples de scènes préconfigurées afin que vous puissiez démarrer facilement. L'un est Pong, l'autre est un copier-coller avec quelques modifications de la scène Basic de Mirror. Sinon, ajoutez le script appelé Ignorance à votre objet NetworkManager, en supprimant tout transport basé sur TCP ou autre UDP (c'est-à-dire kcp2k). Définissez ensuite le script à utiliser dans le champ "Transport" de NetworkManagers.
Voir DOCUMENTATION.md.
Pour Ignorance Standalone , voir STANDALONE.md.
Pour la FAQ (alias Veuillez lire ceci en premier), voir FAQ.md.
Si vous utilisez votre propre pile réseau ou si vous essayez de connecter Ignorance à une autre solution réseau qui existe déjà, il est préférable d'utiliser le wrapper ENet-CSharp pour parler directement à ENet. Vous pouvez également essayer Ignorance Standalone mentionné ci-dessus.
Si vous possédez un exemplaire de Population One, félicitations. Ce jeu utilise Ignorance comme couche de transport réseau principale. Il mérite également sa place dans le premier jeu majeur utilisant Ignorance.
L'ignorance a été utilisée dans une démonstration de simulation de marche "Vinesauce is Hope" qui comportait plusieurs instances de serveur fonctionnant avec plus de 300 CCU chacune. Clips vidéo disponibles ici.
IMPORTANT : les cibles de bureau 32 bits ne sont PAS prises en charge. Les Macintosh équipés de la puce M1 (ARM64/AArch64) ne sont pas non plus pris en charge. Rosetta peut cependant fonctionner.
Plateformes prises en charge, prêtes à l'emploi :
Plateformes de bureau 64 bits (Windows/Mac/Linux), Android (ARMv7/ARM64), y compris les appareils VR et iOS (ARMv7/ARM64).
Si ENet natif peut fonctionner dessus et qu'il est pris en charge par Unity, vous pouvez opter pour Ignorance.
Les utilisateurs d’appareils Apple M1 doivent recompiler ENet Native pour leurs processeurs M1. L'utilisation d'Ignorance dès la sortie de la boîte entraînera l'impossibilité de charger la bibliothèque x86_64 sur Apple Silicon. Rosetta peut fonctionner, mais aucune promesse.
Autres plates-formes qui nécessitent un peu de travail supplémentaire :
Pour plus d'informations, consultez la FAQ.
Vérifiez les rapports de bugs ouverts actuels et/ou signalez-en un nouveau ici.
A défaut vous pourrez toujours me retrouver sur le discord Oiran Studio ou le discord Mirror.
Les bogues qui ne contiennent pas suffisamment de détails seront soit fermés, soit mis en faible priorité. Des détails tels que votre système d'exploitation, la version de Unity Editor, les éventuelles erreurs d'ignorance, etc. sont essentiels pour un bon rapport de bug.
Voici une introduction rapide. Elle est peut-être légèrement obsolète, mais elle couvre les bases de l'ignorance.
Donateurs : Merci d'avoir aidé à garder les lumières allumées.
FSE_Vincenzo : Maître résident de la voie ENet. Ils font partie de Flying Squirrel Entertainment – allez voir leurs jeux.
JesusLuvsYooh : projet de tests d'endurance CCU, idées, correctifs et autres trucs géniaux
Katori : A aidé à démarrer la version threadée qui a évolué vers la version éphémère d'Ignorance 2.x, qui est ensuite devenue Ignorance Threaded.
PhantomGamers : Got Mirror + Ignorance fonctionne comme une modification de chargement latéral côté client BepInEx pour un jeu. Putain de merde, c'est cool.
BigBoxVR : demandes d'extraction et découverte d'une condition de concurrence qui menaçait la stabilité. Utilise également Ignorance dans Population One, un titre VR.
Martin : Pull request, tests avec Dissonance. Excellent atout VoIP pour Unity.
c6burns, Petris, Shiena, Draknith, nxrighthere, vis2k, Paul
Le Mirror Discord et les autres qui m'ont manqué. Merci beaucoup, tu sais qui tu es.
Vous aussi pouvez avoir votre nom ici si vous envoyez un PR. Ne tardez pas, recevez votre PR dès aujourd'hui !
À suivre...?