Sobre League of Legends

Estou pegando o League of Legends para cristo pelo simples motivo de ser um dos jogos mais jogados desse últimos anos e pela sua complexidade ao instalar nas distribuições. A pergunta em si é: O que faz League of Legends ser tão complicado de “rodar” nas distruibuições, não só ele, mas também como outros jogos.

1 curtida

oque faz e ele precisar do wine e toda hora a riot da um jeito de mexe nele pra quebra o jogo, o lutris sempre lança alguma coisa pra deixa o jogo melhor, mas demora no chat e outras coisas ainda e costante, eu jogo pelo lutris e o unico jeito bom que achei que da menos problema, ja to tão acostumado que ta no autimatico pra pra resolver os problemas.

1 curtida

Entendo, mas acho que não consegui ser claro na pergunta. Eu me refiro à termos de compilação, programação. Por que, diabos, é tão ruim correr um jogo no Linux sendo que a maioria é feito em C, etc. Sei que não é algo simples de se explicar. Mas eu gostaria de ter uma noção sobre isso, se é algumas bibliotecas, ou alguma espécie de API espefícia para Windows. Enfim, na minha pequena percepção o que falta para o Linux ganhar maiores proporções é esse lado gamer.

então, não sei ser vc sabe mas o lol não e feito em C, ele e feito em usar motor grafico nem um e uma outra programação tanto que o cliente dele e em html5 agora porque antes era em flash player, o lol e feito de um jeito que ate pra criar champ novo e pior habilidade e complicado, por isso que toda hablidade do lol e parecida, pq pra coloca coisa nova no jogo e complicado, muito diferente doque eles tão fazendo agora com o lol de celular que usar a unity como motor grafico, ser um dia eles for fazer tudo do zero o lol talvez tenha potabilidade pra linux ja que a unity ja trabalha com linux, bom vai depedendo dos cabeças da riot ser vale ou não apena.

1 curtida

Porque não é a penas mágica, mas programação. C é uma linguagem compilada, ou seja, para o Kernel do macOS, Windows e Linux o programa em questão precisam ser compilados, além de que algumas bibliotecas não existem para Linux, como a conio.h. O mesmo pensamento serve para desenvolver com interface gráfica. enquanto o WPF usa XAML para gerar vetorização, macOS e Linux usam, de forma geral, XML. Basta pegar o QT Designer e o Glade. E outra, o LOL se quer usa Vulkan nem OGL, mas sim DirectX, o que não roda em outra plataforma a não ser Windows. Além mar, Linux é case sensitive, enquanto o Windows não liga para isso, basta pegar debates antigos internet a fora vendo o porque o Visual Studio, assim como o Adobe e qualquer outro software para Windows complexo não roda apenas estalando os dedos no Wine .Se fosse fácil, e não apenas birra de teoria de conspiração, TODOS os softwares de Windows, Linux e macOS rodariam entre si sem nem uma alteração. @Natanael.755 e @romulopb vocês que sacam também de programação…

2 curtidas

A linguagem usada não é responsável pela performance do LOL no Linux comparado ao Windows. Simplesmente estes jogos não rodam bem no Linux, mesmo quando portados, porque foram concebidos, desde o início do projeto, para rodar no Windows e muitos deles incorporam profundamente coisas do sistema onde nasceram. Em muitos casos isso está até enraizado nos frameworks usados, que foram criados e expandidos visando o Windows.

É difícil garantir performance igual entre arquiteturas muito diferentes pelo mesmo motivo que é difícil manter performance igual entre sistemas operacionais muito diferentes. Linux e Windows são duas “criaturas” muito diferentes. Algumas diferenças:

Por exemplo, no linux threads e processos são a mesma coisa. Existem programas feitos para Linux que no seu núcleo conceitual, resolvem o problema para o qual o programa foi feito, criando milhares de processos separados. Esse mesmo programa seria muito lento no Windows pois threads e processos são coisas totalmente diferentes e criar processos no Windows é bastante custoso em termos de performance.

O windows tem mecanismos próprios de multicasting para o que no linux é chamado de mutexes e semáforos, usados para controlar thread e process locking , esse mecanismo do Windows reduz muito a troca de contextos em casos específicos comuns em jogos que tem muitas vezes centenas de milhares de threads internas para controlar o estado de objetos em jogo.

A lista vai e vai… Linux tem CoW thread, windows não, etc etc etc.

Estas características se entranham na forma como você concebe o jogo de cima a baixo, e meramente traduzir instruções, portando bibliotecas e fazendo gambiarras para replicar o melhor possível, não resolve. Porque uma bola foi perfeitamente feita para ser redonda e não vai ser um quadrado exemplar.

7 curtidas

Mas a principal causa para o caso do League é o que o colega falou lá em cima – o motor gráfico do LoL é jurássico, legado e defasado, e encontra dificuldades para performar satisfatóriamente até mesmo no Windows. Ele foi escrito em 2009 para sustentar um jogo simples, com mecânicas singelas, mas continua sendo usado em pleno 2022 para sustentar um jogo complexo, com mecânicas muito diferentes e um visual muito mais arrojado, jogado por milhões de pessoas. Se eles já encontram uma dificuldade imensa em sequer atualizar o jogo (volta e meia uma simples atualização de estatísticas base de campeões quebra alguma coisa), portá-lo para outra plataforma seria extremamente complicado. Ou seja, não é culpa do Wine, mas sim da Riot.

2 curtidas

ele não usa motor grafico, e tudo feito em blocos codigo por codigo, digas vocês pode ver nesse video: Descobrimos as Tecnologias por trás do League of Legends // Vlog #122 - YouTube

5 curtidas

Independente disso, infelizmente não roda no pinguim tão bem como no Windows,
simplesmente porque não foi idealizado para ser migrado para outras plataformas.

Uma analogia que se encaixa totalmente, somos nós! Nosso corpo não foi construído pensando em ambientes como o topo do monte everest, até podemos chegar lá com muita ajuda e ajustes, mas nunca vai ser o mesmo que viver nos ambientes ideais para nós.

O Linux ainda tem alguns débido a cobrir, um ecossistema a construir para servir de apoio aos desenvolvedores de jogos e precisará de algum tempo até que existam bastante estúdios e desenvolvedores com o mindset preparado para resolver problemas de uma forma Unix fazendo uso dos pontos fortes do Linux.

3 curtidas

Isso aqui foi muito interessante! Obrigado!

pra fim de assunto, não roda no linux porque assim como a riot fala quando ser pergunta sobre roda no linux " nos não que coloca nosso jogo em um ambiente sem controle " foi a respota que recebi assim que comecei a joga lol no linux, era cheio de problema ate levei ban por 14 dias mas consegui tira depois de manda print, lol roda no macos não roda no linux porque a riot não que o jogo dela no linux e pronto.

Edit: e no macos o jogo roda nativo pois a riot da suporte e ate um mac de 2015 roda o jogo melhor que muito pc com windows.

Eu tenho um MacBook de 2017 e a última vez que testei lá por 2019, estava num barco bem diferente e pelo visto não sou apenas eu:

GambiarraPort oficial ou não, falsos motivos de um atendente de marketing 500 cargos distante da diretoria ou não… Ainda roda melhor no sistema de origem, e a única forma de isso ser diferente é reescrever o jogo do zero levando em consideração outras plataformas.

Algumas pessoas podem dar a sorte no wine de seu programa ser pouco emaranhado com o sistema de origem, muitas vezes até ter performance superior, mas infelizmente não é o caso do LOL.

1 curtida

image
no site mostra que tem pra mac tbm

e tem esse video do cara mostrando o lol rodando em um mac de 2016 e o video foi gravado em 2020

Será que é o mesmo caso do pessoal do Roblox? Usa servidor Linux mas faz birra ao falar sobre o client rodar via wine/portar? Em fim, a hipocrisia

1 curtida

O que eu vi foi um usuário experienciando vários quirks, de mouse problematico a drop de FPS na loja e concluindo ele mesmo que a experiência é inferior infelizmente.

A pergunta original é:

E no geral a resposta continua a mesma, existir um port oficial ou não, ser em C ou não, ter uma engine gráfica ou não, estar rodando no wine ou não… No geral não vão mudar a questão, esses programas rodam melhor na plataforma original pelos motivos que apontei.

Isso não é regra para todos os programas, existem programas que foram concebidos de forma a serem amigáveis na hora de portar, ou foram concebidos sem explorar profundamente características únicas do sistema operacional para o qual foram feitos, por exemplo, existem vários jogos que não fazem uso pesado de threads e multicasting de thread locks e nesse quesito rodam normal via Wine.

Mas, no caso de programas como o LOL a explicação para “rodar” melhor na plataforma original, é essa, o programa foi concebido de forma a estar muito atrelado a plataforma original.

3 curtidas