Follow falcon_dark on Twitter
Google

quinta-feira, agosto 04, 2005

A força dos Jogos

É nítido para qualquer um em contato com o mundo da tecnologia que o software livre como um todo avança cada vez mais dentro dos mais diversos nichos de mercado. De fato aonde os produtos do software livre não são líderes (como nos web servers onde o Apache é o principal representante há alguns anos) sempre existe um TOP 5 que mostra bons competidores de código aberto. São poucas as categorias de software, por assim chamar, que não possuem um representante OSS ou livre.

Um nicho que se tornou a vedete da imprensa especializada é o dos navegadores de web. Não raro podemos ver manchetes que dizem estar de volta a guerra dos browsers, termo que refere-se ao período (no final da década de 90) no qual a Microsoft e seu Internet Explorer vareram do mapa o pioneiro Netscape Navigator. A guerra agora estaria de volta pelas mãos da Mozilla Foundation (organização fundada pela própria Netscape para gerir a abertura de código de seus finados produtos o Navigator e o Communicator) e seu start up Firefox.

O panorama que cheira como um filme de terror para a Microsoft (com um ser retornando das tumbas transmutado de um Dinossauro vermelho para uma raposa flamejante) cria-se em um momento delicado para o software proprietário enquando modelo de comercialização de software. Já não bastava o Linux e o OpenOffice.org para atormentar os trabalhadores de Redmond, ainda aparece um programa para causticar a Microsoft no nicho onde ela ainda sentia-se inatacável, os browsers.

Não que não houvesse competidores à altura. O Opera está por aí há algum tempo e quem já usou sabe de sua indiscutível qualidade como software. Então o que mudou? Porque o Firefox e não o Opera estão colocando à prova a liderança do Internet Explorer no mercado de navegadores?

Poderíamos apontar o fato do Opera ser um programa pelo qual você deve pagar, cuja versão "gratuita" traz propagandas que ficam constantemente na parte superior da tela, um recurso não muito popular convenhamos. Mas creio ser mais provável que o Firefox tenha caído nas graças dos internautas por outros motivos. O primeiro deles é que muitos navegantes da "velha escola" (como eu) usaram no passado os navegadores da Netscape e por isso sempre olharam para o IE como um estranho e não acharam no Opera seu verdadeiro "eu cibernético". O segundo seria o fato do Firefox ser um projeto comunitário, aberto, que permite que os usuários influenciem bem mais rapidamente os recursos que estarão disponíveis nas próximas versões. E por último os problemas infinitos com spywares que instalam-se sozinhos no IE quando você navega por sites mal intencionados.

É claro que diante da nova guerra dos navegadores poderíamos esperar uma resposta à altura da Microsoft. E esta com seu marketing competente já alardeia aos quatro ventos que tipo de inovações seu novo navegador (em sua versão 7) trará. Mas após o primeiro beta chegar à público um sentimento de decepção instala-se na mídia especializada. Parece que a reação da Microsoft será menos forte do que o necessário para segurar o sentimento de euforia dos usuários e desenvolvedores do Firefox.

Eu bem que gostaria de instalar o beta do IE7 para testá-lo, mas como não há um beta para Linux (hehe) eu decidi não fazer isso. Entretanto o Bruno Torres em seu blog baixou e testou o primeiro beta so próximo navegador da Microsoft e relatou suas impressões. Como eu já sabia que aconteceria todas as promessas da Microsoft eram falsas, e é exatamente isso que acontecerá quando o Windows Vista (antigo Longhorn) chegar ao mercado ano que vem.

Então como o Windows continua a perder lugar (se não nos computadores mas principalmente nos corações e mentes de muitos usuários) para o GNU/Linux, o IE também parece fadado a continuar a perder cada vez mais mercado para os concorrentes, principalmente o Firefox. Agora que o software livre tem consolidado excelentes competidores em vários nichos do mercado a comunidade deve olhar a frente e começar a pensar no futuro.

O GNU/Linux já é competente o bastante para disputar a corrida cabeça à cabeça com o Windows no desktop doméstico. Não faltam bons programas, grandes empresas dispostas à investir e temos até diversas iniciativas educacionais em prol do GNU/Linux. Mas tenho a sensação particular de que uma categoria que ainda tem poucos representantes de peso é essêncial para o GNU/Linux emplacar de vez por todas no mercado doméstico: os jogos!

Desde que a id Software anunciou a liberação das engines de Quake sob a GPL (engines ou motores, máquinas em português são sistemas de software responsáveis pela mecânica gráfica e funcional de aplicativos completos) foi aberta a oportunidade para que jogos de ponta e livres fossem lançados para GNU/Linux e outras plataformas. Mas além do próprio Quake e versões do Unreal Tournment poucos jogos de peso chegaram à plataforma do pingüim.

Infra estrutura para isso existe, afinal os drivers de vídeo dos desenvolvedores de ponta como nVidia e ATI estão ficando melhores e mais próximos de suas versões para Win. O OpenGL (biblioteca para desenvolvimento de ambientes 3D) recebe constantes avanços e encontra-se muito próximo (em recursos e desempenho) ao DirectX. Boas suites de desenvolvimento para OpenGL em C/C++ e diversas outras linguagens estão aparecendo e muito próximas de seus equivalentes proprietários e mão de obra técnica não falta. O sistema GNU/Linux é muito bem estruturado para suportar jogos de alto nível, afinal um sistema que consegue ser servidor premiun e trabalhar em cluster pode ser adaptado para ser um video game de primeira linha. Então porque nenhum grande fabricante de jogos tentou lançar oficialmente jogos para GNU/Linux em larga escala?

A resposta para essa pergunta pode passar pelo fato de usuários de GNU/Linux (e software livre em geral) não manterem uma cultura de comprar programas em caixinhas, o que não é verdade. Acredito que a resposta esteja nos consoles ou video-games como costumamos chamá-los.

Quando a Microsoft anunciou sua entrada no mundo dos consoles, com seu Xbox para brigar com Playstation e GameCube ela o fez usando o hardware do PC: processador pentium, memórias DDR, HD, etc. O sistema adotado no console foi uma versão muito modificada do próprio windows, com uma API levemente reescrita e suporte extenso ao DirectX que já estava popular nos computadores. Para a segunda geração do Playstation a Sony optou por uma versão de Linux (segundo informações não confirmadas) e desenvolveu (se sobre a OpenGL ou do zero é uma incógnita) uma API gráfica própria totalmente escrita para sua plataforma proprietária.

O resultado dessas escolhas dos fabricantes é que a Microsoft com o Xbox abriu caminho para que as empresas adaptassem seus títulos de PC para o console e vice-versa. Enquanto a Sony confinou os desenvolvedores de jogos para Playstation em uma plataforma proprietária (e segundo alguns textos da internet de desenvolvimento mais complexo) cujo código precisava de muita reformulação para poder ser levado para outras plataformas.

Com a próxima geração de consoles na boca do forno podemos imaginar o panorama futuro para os jogos. A Microsoft irá usar no próximo Xbox processadores PowerPC (da IBM, os mesmos que a Apple abandonará em prol dos processadores Intel, que curioso) mantendo um certo parentesco com o DirectX existente no Windows. A Sony não divulgou informações sobre o Playstation 3 mas o mercado aposta em uma solução baseada nos processadores Cell (desenvolvidos por um consórcio entre a IBM, a Toshiba e a Sony). Acontece que IBM (que curiosamente estaria participando da tecnologia de ambos consoles), Toshiba e Sony já apregoam em seus sites que o Cell será a próxima geração de processadores para PCs domésticos e para eletrônicos de maneira geral, o que transformaria o próximo Playstation (se confirmadas as especulações) no primeiro representante de toda uma nova geração de eletrônicos de massa.

Se a Sony fizer a lição de casa e desenvolver para o PS3 um sistema baseado em Linux e OpenGL estará dando um passo para que as desenvolvedoras de jogos possam criar títulos portáveis para os PCs que usem essas mesmas APIs. Caso todo esse quadro confirme-se um grande passo para a adoção do GNU/Linux em sistemas domésticos estaria sendo dado pois vários títulos feitos para PS3 estariam a um passo de serem levados para o GNU/Linux dos PCs, o que colocaria em pé de igualdade o mercado de jogos das plataformas computacionais domésticas.

É claro o interesse da IBM (e de outras empresas de informática) de popularizar o GNU/Linux como alternativa ao Windows. A participação da IBM no desenvolvimento do PS3 é desconhecida, mas se estiver acontecendo nessa escala pode significar muitos jogos sendo escritos nativamente para as plataformas abertas nos próximos anos. E veríamos ir por terra a última barreira que separa Windows e GNU/Linux no mercado doméstico. Com títulos de peso sendo portados e vendidos para GNU/Linux haverá menos motivos que possam prender os usuários à plataforma proprietária da Microsoft.

Isso pode proporcionar uma oportunidade de ouro para a Sony manter sua hegemonia no mercado de consoles. Poderá ser a primeira vez que uma comunidade desenvolve de maneira aberta um jogo para um console. Poderemos, com a próxima geração de video-games e jogos, ver o software livre não só estabalecendo-se no desktop doméstico mas também cravando bandeira definitiva nos eletrônicos de entretenimento. Vamos torcer!

Follow falcon_dark on Twitter
Google
Comments:
Apesar de ser um adepto do mundo GNU/Linux e torcer para que os jogos entrem de vez, devo presumir que este acontecimento ainda esteja longe de acontecer.

Mesmo que o PS3 da Sony tenha essas caracteristicas citadas para o desenvolvimento de seus jogos, na qual confirmada (que eu lembre) apenas a utilização do processador Cell e de um processador de video da NVidia poderoso faria com que o poder de processamento geral deste console se tornasse (de uma certa forma) ainda díficl de ser alcançado pelos PCs domésticos de hoje.

Na verdade, a barreira encontrada para o desenvolvimento de jogos para o mundo piguim seria, também, o poder de processamento de tais jogos do PS3.

Acredito eu, que uma "solução" a curto prazo para os jogos em GNU/Linux, seria a criação e/ou atualização destes pelos seus próprios adeptos. O que acontece hoje ainda com Quake (Quake World), FreeCiv, entre outros jogos super difundidos e ainda inabaláveis.

Acredito ainda na força do GNU/Linux na industria dos Games como uma área a ser explorada com determinação. Vontade nós do mundo pinguim temos, afinal o Cedega (antigo WineX) não estaria nesta maturidade hoje se não fosse pela demanda dos games!

Até que esta premonição se conclua, é preciso ainda muito trabalho e seriedade como sempre foi tomado dentro dos projetos GPL, e que os seus usuários não se intimidem diante do devenvolvimento de tais games.

Estou fazendo minha parte, jogo e desenvolvo jogos GPL, seria interessante que todos abraçasem a idéia e passassem a utilizar da idéia de jogadores GPL.
 
Olá antonio, obrigado pelo seu post. Gostaria de saber em que tipo de desenvolvimento você está envolvido, apenas por curiosidade.
 
Este comentário foi removido por um administrador do blog.
 
Eu já participei de fóruns de desenvolvimento de jogos e sei muito bem porque não temos muitos jogos bons no mundo Linux, ou jogos que chamem a atenção dos usuários de Windows.

O desenvolvimento de software open source baseia-se na nobre habilidade humana de compartilhar recursos entre si e trabalhar grupo em prol do grupo (isso foi deixado um pouco de lado na nossa sociedade). Utilizando o Firefox como exemplo, o grupo do Firefox é formado por desenvolvedores e usuários, quando um usuário também contribui com código ele está pagando com esse código, quando não é programador mas ajuda a testa o software está contribuindo ajudando melhorá-lo e quando apenas é usuário mas ajuda a divulgar que é o programa é bom, esta também é uma forma de contribuição.

Os programadores do browser, pelo menos no princípio, tinha como objetivo apenas desenvolver um bom browser. Os browser devem seguir certos padrões e no como o Firefox os segue, qualquer coisa além é melhoria, por isso o esquema de desenvolvimento open source neste casos funciona (aplicativos/utilitários).

No caso dos jogos os problema são piores porque nunca se chega em um consenso, porque um jogo deve ter um design e o primeiro problema é que todo mundo quer ser design, e aqui se incluem os programadores, na maioria absoluta dos casos que acompanhei de perto, os programadores não aceitam críticas sobre seu trabalho, quando alguém como dava palpite a resposta padrão era se não gostou programe você ou estou contribuindo, não sou seu empregado. As vezes ele tentava se assemelhar a algum jogo que ele goste, mas nem sempre existe um grande número de jogadores que gostem do mesmo jogo.

Outro problema é a maioria dos programadores de jogos sonham em se transformar nos Shigero Miamoto ou Hideo Kogima do futuro e não gostam de seguir fielmente ou nem procuram desenvolver um design antes do código e seguí-lo fielmente, isso dispersa o desenvolvimento de um jogo e isso sempre é fatal neste tipo de software.

Outra situação é que um software open source não tem prazo de entrega, seu desenvolvimento é contínuo, um jogo deve ter prazo de encerramento, o desenvolvimento não deve ser contínuo. E dou exemplos, Battle for Wesnoth, joguinho de estratégia em turnos, muito legal de jogar, mas está disponível a algum tempo e a equipe continua a melhorá-lo, isso é errado, ele deveria dar por encerrado o desenvolvimento do jogo e já deveriam ter iniciado o desenvolvimento de uma continuação ou de outro jogo que, mesmo que utilizando o mesmo engine, mas seja outro jogo.

Ai as pessoas podem dizer, este jogo é open source seu babaca, re-utilize o código e crie um outro você, tecnicamente afirmação está completamente correta, mas pense comigo, quem já tem experiência e know-how para fazer isso, eu que nem terminei a faculdade ainda e sou um programador muito fraco ou a experiente equipe que desenvolveu o Battle for Wesnoth original?

Quem tem mais chance de aumentar a galeria de jogos bons para Linux?

É por isso que ainda temos poucos jogos bons para Linux.
 
Responde a pergunta do falcomn_dark: O projeto no qual estou trabalhano para desenvolvimento de jogo é pessoal, ou seja, partiu de meu próprio esforço e dedicação. Se tiver interesse em saber mais pode mandar mail para mim carlosufcg@gmail.com.

Em relação ao post do andre: Bem em alguns pontos concordo contigo André, mas em utros nem tanto.

É sabido que em projetos que se desenvolvem através do esforço de um grupo, é sempre comum haver desentendimento entre seus participantes e colaboradores. Para evitar este tipo de coisa que é de essêncial importância uma organização da equipe de trabalho. Separar as tarefas ou responsabilidades é vital para que este tipo de situação seja evitada ao máximo. Não vou me aprofundar muito nisso por que não esta diretamente ligado ao assunto, mas tente dar uma olha em XP (Extreme Programming) dê uma olhada no site de um professor meu, pode ajudar.

http://jacques.dsc.ufcg.edu.br/projetos/common/xp1/xp1.html

Concordo com relação ao prazo de desenvolvimento do software, isso é importante para o complemento de uma agenda de responsabilidades dos envolvidos, forçando a um crescimento gradativo e uniforme do mesmo (é evidente que nem sempre é isso que ocorre, até mesmo em projetos de empresas grandes como a Microsoft ou outro projeto open source), mas isso também se encaixa numa visão de organização do processo de desenvolvimento.

Um parte fundamental para o desenvolvimento de um projeto é a sua elaboração inicial, isso implica em todo o andamento do processo de desenvolvimento, culminando até mesmo no seu abandono total.

Ainda acredito que o desenvolvimento de jogos para o GNU/Linux seja uma área rica e ainda pouco explorada, mesmo para jogos de duração contínua ou ainda para jogos de episódios como a maioria. Vamos torcer para que mais e mais pessoas abracem esta idéia, assim como estam abraçando o Software Livre!
 
Antonio Carlos,

Valeu pela dica do site sobre XP, eu já sabia o que era mas não havia encontrado um site em português tão bacana como esse, vou pesquesar mais o assunto.

Eu concordo com você, o probelama maior está no planejamento inicial, a maioria das pessoas que se arriscam a programar jogo livre acaba desistindo por pecar no planejamento. Todo jogo deveria começar com um documento de Design com umas 30 páginas de especificação e esta deve ser seguida com "rigor", a inclusão eterna de boas idéias deixa o desenvolvimento dos jogos livres intermináveis.

Eu tenho na minha cabeça que no nosso universo livre, os programadores deveria se unir em um único projeto de engine livre mas também criar um RAD Tool (exemplo: http://www.3drad.com/) para este engine, e uma biblioteca de modelos, ou sprites, tudo livre, para assim populariar um engine livre. Porém a licença deve permitir que sejam desenvolvidos jogos proprietários, mas a apenas a arte (design, sons, história), o engine e as ferramentas desenvolvimento devem permanecer livres.

Acho que isso poderia incentivar um crescimentos do número de jogos disponíveis.
 
Postar um comentário



<< Home

This page is powered by Blogger. Isn't yours?