Eu apreciaria um café se você usar este transporte em seu projeto e quiser ajudar a manter minhas contas pagas e as luzes acesas.
"Provavelmente o transporte mais rápido que existe para Mirror..." - FSE_Vincenzo, 2021 (Mirror Discord)
Ignorance é um transporte baseado em UDP de alto desempenho que se conecta ao Mirror Networking. Ao aproveitar o poder da biblioteca nativa ENet testada e comprovada, ela fornece comunicações UDP confiáveis e não confiáveis com até 4.096 pares (clientes) conectados e 255 canais. O UDP confiável tem muitos benefícios sobre o TCP, que era o padrão no Mirror até a implementação do KCP.
A vantagem da Ignorância é que você pode utilizar canais que permitem dividir as comunicações da rede. Isso permite que você tenha canais para dados que são de missão crítica e devem ser enviados o mais rápido possível, bem como canais que podem enviar dados não essenciais mais lentos.
O Ignorance 1.4 está atualmente em suporte de longo prazo, o que significa que nenhum novo recurso está planejado. As correções de bugs são priorizadas e serão abordadas quando eu tiver tempo livre.
Se você tiver um relatório de bug urgente, então você é incentivado a considerar um patrocínio. Isso me permitirá tirar um tempo das minhas atividades comerciais e priorizar o relatório de erros.
A ignorância é licenciada sob licença do MIT. No entanto, houve casos recentes em que outros desenvolvedores usaram a fonte completa do Ignorance ou partes dela, retirando a licença do MIT e colocando sua própria licença nela.
Isto viola a licença do MIT, pois afirma claramente que os avisos de direitos autorais devem permanecer intactos. Resumindo, não seja um ladrão de códigos e respeite a licença do MIT.
O Ignorance 1.4 LTS não funcionará com versões mais antigas do Mirror. Você pode fazer backport do 1.4 LTS para seu projeto Mirror mais antigo, mas esse suporte fica por sua conta.
Baixe o pacote Unity em Releases que é o mais recente. Basta importar o pacote Unity e o Unity fará o resto. Siga as instruções abaixo.
Alternativamente, você pode usar o código do branch master, que geralmente está atualizado em comparação com os lançamentos.
Incluí duas cenas de amostra pré-configuradas para que você possa começar facilmente. Um é Pong, o outro é copiar e colar com algumas modificações da cena básica do Mirror. Caso contrário, adicione o script chamado Ignorance ao seu objeto NetworkManager, removendo qualquer transporte baseado em TCP ou outro transporte baseado em UDP (ou seja, kcp2k). Em seguida, defina o script a ser usado no campo "Transporte" do NetworkManagers.
Consulte DOCUMENTAÇÃO.md.
Para Ignorance Standalone , consulte STANDALONE.md.
Para o FAQ (também conhecido como Por favor, leia isto primeiro), consulte FAQ.md.
Se você estiver usando sua própria pilha de rede ou tentando conectar o Ignorance a outra solução de rede que já existe, é muito melhor usar o wrapper ENet-CSharp para conversar diretamente com o ENet. Você também pode tentar o Ignorance Standalone mencionado acima.
Se você possui uma cópia do Population One, parabéns. Esse jogo usa a Ignorância como sua principal camada de transporte de rede. Ele também ganha seu lugar no primeiro grande jogo que usa Ignorância.
A ignorância foi usada em uma demonstração de simulação de caminhada "Vinesauce is Hope" que tinha várias instâncias de servidor em execução com mais de 300 CCU cada. Videoclipes disponíveis aqui.
IMPORTANTE: Os destinos de desktop de 32 bits NÃO são suportados. Macintoshes com chip M1 (ARM64/AArch64) também não são suportados. Rosetta pode funcionar.
Plataformas suportadas, prontas para uso:
Plataformas de desktop de 64 bits (Windows/Mac/Linux), Android (ARMv7/ARM64) incluindo dispositivos VR e iOS (ARMv7/ARM64).
Se o ENet nativo puder rodar nele e for suportado pelo Unity, você está pronto para usar o Ignorance.
Os usuários de dispositivos Apple M1 devem recompilar o ENet Native para seus processadores M1. Usar o Ignorance imediatamente resultará na impossibilidade de carregar a biblioteca x86_64 no Apple Silicon. Rosetta pode funcionar, mas sem promessas.
Outras plataformas que requerem algum trabalho extra:
Para mais informações, consulte as Perguntas frequentes.
Verifique os relatórios de bugs abertos atuais e/ou relate um novo aqui.
Caso contrário, você sempre pode me encontrar no discord do Oiran Studio ou no Mirror discord.
Bugs que não possuem detalhes suficientes serão fechados ou colocados em baixa prioridade. Detalhes como seu sistema operacional, versão do Unity Editor, quaisquer erros de ignorância, etc. são essenciais para um bom relatório de bugs.
Aqui está uma introdução rápida. Pode estar um pouco desatualizado, mas cobre o básico da Ignorância.
Doadores : Obrigado por ajudar a manter as luzes acesas.
FSE_Vincenzo: Mestre residente do caminho ENet. Eles fazem parte da Flying Squirrel Entertainment - confira seus jogos.
JesusLuvsYooh: Projeto de teste de resistência CCU, ideias, correções e outras coisas incríveis
Katori: Ajudou a iniciar a versão encadeada que evoluiu para a versão Ignorance 2.x de curta duração, que mais tarde se tornou Ignorance Threaded.
PhantomGamers: Got Mirror + Ignorance funcionando como uma modificação de carregamento lateral do lado do cliente BepInEx para um jogo. Puta merda, isso é legal.
BigBoxVR: Faça pull de solicitações e encontre uma condição de corrida que ameaça a estabilidade. Também usa Ignorance in Population One, um título VR.
Martin: Solicitações pull, testes com Dissonance. Excelente recurso VoIP para Unity.
c6burns, Petris, shiena, Draknith, nxrighthere, vis2k, Paul
The Mirror Discord e os outros que senti falta. Muito obrigado, você sabe quem você é.
Você também pode ter seu nome aqui se enviar um PR. Não perca tempo, obtenha seu PR hoje!
Continua...?