UGDK, Jogos do USpGameDev e binários auto-contidos

Pessoal!

Vocês não acham que se os jogos do UspGameDev fossem distribuídos em pacotes com binários que permitissem sua execução direta em distribuições Linux mais populares isso não ajudaria a difusão dos mesmos?

Ou mesmo estes templates/protótipos “simples” que tem sido feitos com a UGDK para o projeto Circuit of Mana? (Ogre, Bullet uma geometria, uma camera e deslocamento).

Algo que possibilitasse a reles mortais poderem compilar binários simples, sem ter de resolver tantas outras dependências alienígenas ao próprio binário e que permitisse prototipagens simples como por exemplo mudar a distância da camera ou quanto pula um personagem?

De forma resumida: Seria interessante que existissem binários que não dependessem de tantas configurações externas de sistema para serem compilados com sucesso por leigos.

Consigo pensar em muitas soluções. Nenhuma delas factível em menos de 6 meses, mas podemos fazer esse investimento a longo prazo.

1 Curtida

Oi Wil!

Eu dei esta sugestão e faço estas perguntas em função da experiência que eu tenho com o Blender mesmo, principalmente em instituições culturais e educacionais. O fato dele nunca ter precisado de nenhum ajuste extra para rodar, faz com que o mesmo seja aceito mais facilmente pelos usuários finais, além de tornar as dinâmicas mais lúdicas. Fora tornar coisa bonitas como esta possíveis: http://www.graphicall.org/

No entanto eu não sei o quão inocente esta sugestão é frente aos paradigmas de programação que vocês do BCC e UspGameDev seguem :wink:

Se você quiser posso te por em contato com pessoas da lista de desenvolvimento do Blender que tem bastante experiêcia prática com esta parte. Não sei se ajudará muito já que a escala do projeto é muito distinta atualmente… Mas o Blender um dia já teve 2,5 MB :slight_smile:

Basicamente, o Blender deve ter levado 6 meses para conseguir isso da primeira vez =D (ou o equivalente proporcionalmente à quantidade de pessoas envolvidas). É simplesmente difícil mesmo. E talvez as tecnologias que usemos não estejam facilitando isso (embora facilitem outras coisas).

Pior que acho que foi isso mesmo Wil! xD
Interessante como “seis meses” é um tempo quase “Atávico” que aparece frequentemente no desenvolvimento inicial de vários softwares que eu admiro (modeladores 3D open source principalmente), creio que deve ser um período crítico na formação de um projeto. Já ouvi muita gente que programa em Open GL começar uma fala com algo do tipo “Para fazer isto eu fiquei isolado do mundo durante seis meses…”

Se vc olhar bem no site, a ugdk tem releases binários para debian e ubuntu, para algumas versões/arquiteturas específicas.
Enquanto isso, no windows temos releases binários de todos os jogos, e até mesmo da ugdk. E para devs da ugdk, tem um script que baixa e “instala” quase todas as dependências da ugdk.
Mac eu ainda não sei como faz um .APP corretamente. Quem fez o release do horus foi o Jeff.

Fazer um binário universal no linux é um inferno. Ainda mais o nosso caso que dependemos do X11 e de libs de áudio.
Não foi você mesmo que mandou o vídeo daquele QA com o Linus. O primeiro rant que ele fez foi sobre esse problema, e como extra tornando as coisas mais fácil.

Preciso ver se consigo recuperar um guia que li uma vez de como fazer binários universais: era algo bem cabuloso

Por finalmentes, minha reação a fazer isso com a ogre é “haha, não”.

Fato! Comecei este post inspirado por aquele video. :slight_smile:

É eu sei… Mas talvez fosse uma boa dar uma padronizada, fazendo com que fossem pastas zipadas com o binário dentro. Creio que a seção de downloads está um pouco desatulizada e heterogênea não?
Também postar os protótipos que estão sendo feitos (Godot por exemplo) no blog já com links para os binários, criando algo que fosse mais fácil de ler e acessar para a maioria das pessoas do que o GitHub (<—Sugestôes).

Os releases da ugdk estão na forma de pacotes da distribuição em questão. Se vc usa a distro (e arquitetura) do qual temos um pacote pronto, vc só precisa mandar instalar o pacote, e isso é tão simples quanto um clique duplo.

Talvez escolher o pacote seja difícil: nesse caso podemos resolver tendo um repositório próprio que o cara adiciona na máquina dele. Essa solução é bem legal, e nem da tanto trabalho de fazer.

O problema é se não temos nenhum pacote pronto para a sua distro/arch. Vc até pode tentar usar um pacote de outra disto, mas boa sorte.

A página de downloads está mais feia do que desorganizada: jogos tem um link para download de binários auto contidos (só pra windows, e um velho pra mac do horus), e de um pacote de código fonte (importante também lançar o código fonte).

A ugdk é uma lib, logo os downloads dela são diferentes.

Já desatualizada ela não está. Tudo que nos já lançamos está lá. Se não está, isso não foi lançado :wink:

Nem eu sei se eu fiz corretamente :stuck_out_tongue:
Eu precisaria testar em um Mac “limpo”, ou seja, sem todas as bibliotecas que eu tenho instaladas para desenvolvimento.

Pelo que eu me lembre, faltou fazer a parte de colocar o HorusEye.app dentro de um arquivo DMG, que é a forma padrão de distribuir aplicativos em Mac. Aí acabei colocando dentro de um ZIP mesmo.

E eu deixei instruções de como compilar no Mac nos arquivos HOW_TO_COMPILE da ugdk e do Horus Eye, e tem um script para gerar o APP na pasta deploy do Horus Eye (com instruções no arquivo HOW_TO_DEPLOY). Não sei se ainda funciona, mas tá lá.

Anotação:

No caso do Blender, você tem um página principal de downloads bem intuitiva que já te redireciona para o download para o seu sistema operacional. Caso você precise de uma versão mais antiga o link está num nível mais adentro e depois você vai encontar aquela “cara de SVN”. É muito muito prático MESMO. Em três tempos o usuário perde aquele medo de mudar de versão. Vale lembrar que o binário distribuído para Windows embora não espalhe .dlls no sistema possui .dlls no diretório principal, no entanto para remove-lo em windows basta deleta-lo não é necessário desinstalador :wink:

Outra pessoa que distribui binários de forma bastante elegante é o Jason Rorher. Embora ele distribua o source dos jogos dele para Linux ao manter a cadência e as intruções de compilação muito claras, acredito que ele consegue um alcance bem grande para um desenvolvedor solo.

@jeff: as instruções para mac do HOW_TO_COMPILE são “instale cmake, SDL e digite cmake .”, problema que não consegui fazer funcionar com a SDL que vc instala do site deles e tals, nem compilando a que ta no repositorio, só com a do homebrew, e isso n gera um binário bom de mandar para a máquina dos outros =[

@chico: minha experiencia diz: se tem que compilar algo, vai dar trabalho. Se tem alguma dependência que não se chama “GCC”, vai dar problema.
Até no windows que eu fiz ser “instale o visual studio, rode esse .bat” da problema. =/

Olhei a página de downloads deles. A única coisa dahora que eu vi lá é abas, que provavelmente olham pro user-agent do navegador para começar na aba do seu SO. Fora isso, não tem nada de especial. Na realidade, tem até downloads “x64/x86” que eu já vi analytics falando que é RUIM.

Henry!

Qual sua opinião sobre PPAs? :stuck_out_tongue:

https://launchpad.net/~henriquegemignani/+archive/ubuntu/uspgamedev

Só tem uns backports de um pacotes para usar no travis.
Colocar algo lá não é exatamente trivial, tem que montar uns arquivos que descrevem como gera um pacote .deb da maneira oficial e isso é bem trabalho.

Mas fora isso, PPA é uma forma fácil de colocar (e montar e popular) um repositório alternativo para Ubuntu. Da pra agente colocar um repositório para debian na própria ra tb :slight_smile:

Mmm… Legal! 8)

Mas deixa eu entender: PPAs “só” funcionam em sistemas baseados no Debian certo?

[quote=“chicortiz, post:14, topic:371”]Mmm… Legal! 8)

Mas deixa eu entender: PPAs “só” funcionam em sistemas baseados no Debian certo?[/quote]
*ubuntu

E tem os mesmos problemas que eu listei para os arquivos .deb acima, exceto que é mais fácil fazer uma build para várias versões do ubuntu.

Tá certo! :slight_smile:

Talvez a lição que a gente possa tirar disso tudo seja ter um tipo de instalação via linha de comando infalível que não comprometa o funcionamento do sistema de quem instala.

Mas, pressinto que este tipo de solução seja: 1) Impossível 2) Ou algo que engesse o tipo de desenvolvimento que o UspGameDev é capaz de fazer para Linux :wink:

Pessoal,

Hoje revisitei o “http://sauerbraten.org/” e lembrei deste post.

Eles resolveram a instalação com um “shell script (application/x-shellscript)”

Será que esta solução não seria um intermediário interessante entre algo mais tectônico como as distribuições já compiladas de Blender para Linux e o estilo do UspGameDev? (<—Pensando especificamente na UGDK e no Hórus Eye aqui).

Ou será que é melhor centrar os esforços em dar um mega suporte a quem está tentanto compilar os programas do zero, como é o caso do próprio Blender também? (http://graphicall.org/).
Se bem que eu acho esta outra opção foca ainda mais nos usuários avançados mesmo… :wink:

Ou deixar tudo para lá e decidir que a Desktop do Linux é um experimento falido mesmo? (Falido mas honrado, ao contrário do Eike. Lembrem-se antes de me bater: eu sou da arquitetura e estou escrevendo isso de um Ubuntu).

Baixei o jogo para ver como eles fazem, e vierem uns binários pré-compilados que funcionaram sozinhos mesmo. O script que tem só ajuda a escolher o binário certo pra rodar (32-bits vs 64-bits), pelo que entendi.

Que bizarro!

Cliquei em todos os binários e tentei executar via terminal antes de usar o shell script e nenhum deles funcionou…! :?

Enfim…

Deve ser algo específico do meu S.O. :I

Ah, o script deve setar umas variáveis de ambiente pros binários funcionarem, fora que o readme diz que não pode rodar os binários direto na pasta deles. Aqui também não funciona rodar direto.