<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>deV( )id Games &#187; SumoCheckers</title>
	<atom:link href="http://devoidgames.com/blog/category/sumocheckers/feed/" rel="self" type="application/rss+xml" />
	<link>http://devoidgames.com/blog</link>
	<description>because we&#039;re tired of no return;</description>
	<lastBuildDate>Fri, 13 Apr 2012 03:44:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Antes tarde Duke Nukem: Nosso Projeto Final</title>
		<link>http://devoidgames.com/blog/2012/04/13/antes-tarde-duke-nukem-nosso-projeto-final/</link>
		<comments>http://devoidgames.com/blog/2012/04/13/antes-tarde-duke-nukem-nosso-projeto-final/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 03:44:34 +0000</pubDate>
		<dc:creator>Yanko</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[deVoid Brew]]></category>
		<category><![CDATA[Fundamentos]]></category>
		<category><![CDATA[SumoCheckers]]></category>
		<category><![CDATA[academia]]></category>
		<category><![CDATA[Arquivos de nome gigante]]></category>
		<category><![CDATA[artigos acadêmicos]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[Dystopia]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Monografia]]></category>
		<category><![CDATA[Projeto Final]]></category>
		<category><![CDATA[Trabalho de Conclusão de Curso]]></category>

		<guid isPermaLink="false">http://devoidgames.com/blog/?p=466</guid>
		<description><![CDATA[&#160; Assim como os trabalhos que eu já pus por aqui, nós decidimos colocar nosso Projeto Final de curso (ou TCC, para quem é de TCC) disponível para vocês baixarem/lerem/citarem/verem screenshots antigos do SumoCheckers. E assim como várias outras coisas, esquecemos de postar! Como acabamos de lembrar, você agora pode baixá-lo aqui, com um nome [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">&nbsp;</p>
<div class="wp-caption aligncenter" style="width: 328px"><img class=" " src="http://4.bp.blogspot.com/-FwzXE5t-wj8/T3Dg1_Ib2gI/AAAAAAAAALA/u-QvqMH34tw/s1600/meh.ro4359.jpg" alt="Paramos de fazer trocadilhos com &quot;devoid&quot;, mas jamais pararemos com trocadilhos!" width="318" height="274" /><p class="wp-caption-text">Paramos de fazer trocadilhos com &quot;devoid&quot;, mas jamais pararemos com trocadilhos!</p></div>
<p>Assim como <a href="http://devoidgames.com/blog/2010/07/02/trabalhos-de-faculdade-se-nao-pode-vence-los-junte-se-a-eles/" target="_blank">os trabalhos que eu já pus por aqui</a>, nós decidimos colocar nosso Projeto Final de curso (ou TCC, para quem é de TCC) disponível para vocês baixarem/lerem/citarem/verem screenshots antigos do SumoCheckers. E assim como várias outras coisas, esquecemos de postar!</p>
<p>Como acabamos de lembrar, você agora pode baixá-lo aqui, com um nome de arquivo gigantesco para compensar o nome pequeno do trabalho em si:</p>
<p>Download: <a href="http://devoidgames.com/artigos/DystopiaESumocheckers-ProjetoFinal-BrunoBottino_YankoOliveira-CCompUFRJ2011.pdf" target="_blank">Dystopia e Sumocheckers</a></p>
<p>O foco é na implementação e na relação entre game design e limitações técnicas &#8211; então talvez sirva pra quem não é de computação também. No mais, é sempre bom ter artigos em português pra citar (nós sofremos com isso na época!)</p>
<p>Quaisquer dúvidas e comentários, falem <a href="http://twitter.com/yankooliveira" target="_blank">comigo</a> ou com o <a href="http://twitter.com/brunotinnus" target="_blank">Tinnus</a> no twitter, ou comentem aqui mesmo no post!</p>
]]></content:encoded>
			<wfw:commentRss>http://devoidgames.com/blog/2012/04/13/antes-tarde-duke-nukem-nosso-projeto-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brincando com Unity</title>
		<link>http://devoidgames.com/blog/2011/04/04/brincando-com-unity/</link>
		<comments>http://devoidgames.com/blog/2011/04/04/brincando-com-unity/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 02:52:56 +0000</pubDate>
		<dc:creator>Devoid</dc:creator>
				<category><![CDATA[Previews]]></category>
		<category><![CDATA[SumoCheckers]]></category>
		<category><![CDATA[IT'S THAT EASY!]]></category>
		<category><![CDATA[Malabarismo]]></category>
		<category><![CDATA[Sumotori]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity3d]]></category>

		<guid isPermaLink="false">http://devoidgames.com/blog/?p=337</guid>
		<description><![CDATA[O Tinnus hoje ficou se divertindo com os Sumotoris e com Unity3d. Depois de meter a mão na massa e tentar criar sua próprias engines/frameworks/toolsets, você aprende a dar valor a coisas como isso: &#8220;Hmm! Preciso só fazer um raycast e ver se acertou alguma coisa. Caso acerte, aplicar uma força no treco. Ah! E [...]]]></description>
			<content:encoded><![CDATA[<p>O Tinnus hoje ficou se divertindo com os Sumotoris e com Unity3d. Depois de meter a mão na massa e tentar criar sua próprias engines/frameworks/toolsets, você aprende a dar valor a coisas como isso:</p>
<p>&#8220;Hmm! Preciso só fazer um raycast e ver se acertou alguma coisa. Caso acerte, aplicar uma força no treco. Ah! E vou precisar de ragdolls!&#8221;</p>
<p>e alguns minutos depois:</p>
<pre class="brush: php">function FixedUpdate () {
  if(Input.GetMouseButton(0)) {
    var ray: Ray = camera.ScreenPointToRay(Input.mousePosition);
    var hit: RaycastHit;

    if(Physics.Raycast(ray, hit)) {
      if(hit.rigidbody != null) {
        hit.rigidbody.AddExplosionForce(10000, hit.point, 1);
      }
    }
  }
}
</pre>
<p>Divirtam-se clicando na imagem:</p>
<p><a href="http://devoidgames.com/games/sumoTest/"><a href="http://devoidgames.com/games/sumoTest/"><img class="aligncenter size-full wp-image-347" title="sumophysics" src="http://devoidgames.com/blog/wp-content/uploads/2011/04/sumophysics.jpg" alt="" width="426" height="335" /></a></a></p>
<p>Clicar em coisas faz com que elas voem, e &#8220;R&#8221; reinicia a simulação.</p>
<p>Caso você não tenha, terá que instalar o plug-in do Unity Web Player para brincar. Mas é uma instalação muito rápida e tranquila, e vale muito a pena porque cada vez mais webgames são feitos em Unity&#8211;inclusive nossos <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Meta-jogo sugerido: quantas embaixadinhas você consegue fazer com um mesmo gordinho? <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://devoidgames.com/blog/2011/04/04/brincando-com-unity/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A odisséia dos Normal Maps</title>
		<link>http://devoidgames.com/blog/2010/09/03/a-odisseia-dos-normal-maps/</link>
		<comments>http://devoidgames.com/blog/2010/09/03/a-odisseia-dos-normal-maps/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 23:18:13 +0000</pubDate>
		<dc:creator>Tinnus</dc:creator>
				<category><![CDATA[Previews]]></category>
		<category><![CDATA[SumoCheckers]]></category>
		<category><![CDATA[Antes e Depois]]></category>
		<category><![CDATA[Normal Mapping]]></category>
		<category><![CDATA[Odisséias]]></category>
		<category><![CDATA[Sumo Checkers]]></category>

		<guid isPermaLink="false">http://devoidgames.com/blog/?p=240</guid>
		<description><![CDATA[Pré-leitura pra quem não sabe o que são normal maps e como eles são usados em jogos: http://en.wikipedia.org/wiki/Normal_mapping Resumo pra quem tem preguiça de ler: é uma técnica onde se tenta aplicar iluminação em um objeto de poucos polígonos como se ele fosse mais detalhado do que realmente é. Na prática, isso significa que tudo [...]]]></description>
			<content:encoded><![CDATA[<p>Pré-leitura pra quem não sabe o que são normal maps e como eles são usados em jogos: <a href="http://en.wikipedia.org/wiki/Normal_mapping" target="_blank">http://en.wikipedia.org/wiki/Normal_mapping</a></p>
<p>Resumo pra quem tem preguiça de ler: é uma técnica onde se tenta aplicar iluminação em um objeto de poucos polígonos como se ele fosse mais detalhado do que realmente é. Na prática, isso significa que tudo fica mais bonito <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Pois bem. Sempre quisemos colocar isso em ação nos nossos Sumokas, mas sempre havia coisas mais importantes a se fazer (tipo menus e condições de vitória, essas coisas inúteis). Porém, com a recente (res)subimissão do jogo ao SBGames, chegamos a uma situação um pouco mais folgada que nos dá liberdade de trabalhar um pouco no que der vontade <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Então, ontem à noite me deu vontade de colocar essa joça de normal mapping pra funcionar. Na verdade o material artístico necessário (a textura com o normal map do modelo baseado numa versão hi-poly) já existia e havia sido testado fora do jogo, então era &#8220;só&#8221; questão de ajeitar materiais e shaders para utilizar isso. O que, como sempre, não se mostrou uma tarefa muito trivial. Segue abaixo a sequência de resultados conseguidos até a meia-noite:</p>
<div id="attachment_252" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumowhiters.jpg"><img class="size-medium wp-image-252" title="sumowhiters" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumowhiters-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">Primeira tentativa. Deu tudo errado, e entrou o material padrão.</p></div>
<div id="attachment_250" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumoblackers.jpg"><img class="size-medium wp-image-250" title="sumoblackers" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumoblackers-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">Agora o material entra! Mas o shader tá errado, e fica tudo preto.</p></div>
<div id="attachment_247" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumomudders1.jpg"><img class="size-medium wp-image-247" title="sumomudders" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumomudders1-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">OK, estamos chegando a algum lugar! Mas seria bom que todos os membros funcionassem...</p></div>
<div id="attachment_244" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumoplastics.jpg"><img class="size-medium wp-image-244" title="sumoplastics" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumoplastics-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">E este seria um ótimo resultado, se a idéia fosse uma luta entre bonecos de borracha.</p></div>
<div id="attachment_242" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumomappers.jpg"><img class="size-medium wp-image-242" title="sumomappers" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumomappers-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">Finalmente, o shader funcionou e os Sumokas parecem pessoas normais o/</p></div>
<p>O maior problema, na verdade, foi que pra começar, foi difícil achar um shader que fizesse o que a gente queria. Ou tinha coisa demais (e ia afetar a performance desnecessariamente) ou tinha de menos. Bom, como eu sou cabeça-dura, peguei um que tinha coisa de menos e fui adicionando funcionalidade aos poucos, enquanto aprendia a usar shaders com OGRE. O último screenshot mostra como a coisa estava até ontem.</p>
<p>O trabalho de hoje consistiu em adicionar ao shader um detalhe que havia sido esquecido: levar em consideração a cor definida pro objeto no material (por isso os Sumokas parecem mais claros do que deveriam). Mas, ainda assim, havia problemas: o shader só funcionava com Direct3D e 16 bits <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<div id="attachment_251" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumoghosters.jpg"><img class="size-medium wp-image-251" title="sumoghosters" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumoghosters-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">Era isso que acontecia se você tentasse rodar com OpenGL.</p></div>
<p>Enfim resolvi tomar vergonha na cara, usei um shader prontinho pra OGRE (que o Yanko havia achado) e agora tá tudo funcionando muito bem <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Segue o resultado final (observação: as sombras projetadas foram desligadas para evidenciar as diferenças no material):</p>
<p style="text-align: left;">
<div id="attachment_248" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumocompare1.jpg"><img class="size-medium wp-image-248" title="sumocompare1" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumocompare1-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">Vermelhos com normal mapping, azuis sem.</p></div>
<div id="attachment_249" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumocompare2.jpg"><img class="size-medium wp-image-249 " title="sumocompare2" src="http://devoidgames.com/blog/wp-content/uploads/2010/09/sumocompare2-300x231.jpg" alt="" width="300" height="231" /></a><p class="wp-caption-text">Observe em especial a diferença nos ombros, e nas gorduras localizadas nas costas <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p></div>
<p>E assim termina mais uma odisséia deV( )id e mais um detalhe incrementando o SumoCheckers. Pode parecer que a diferença foi pequena, mas são estes detalhes que fazem o jogo se tornar cada vez melhor <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://devoidgames.com/blog/2010/09/03/a-odisseia-dos-normal-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O inferno são os outros: uma aventura na Terra do Pinguim</title>
		<link>http://devoidgames.com/blog/2010/08/21/o-inferno-sao-os-outros-uma-aventura-na-terra-do-pinguim/</link>
		<comments>http://devoidgames.com/blog/2010/08/21/o-inferno-sao-os-outros-uma-aventura-na-terra-do-pinguim/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 22:32:30 +0000</pubDate>
		<dc:creator>Yanko</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Aventuras Multi-Plataforma]]></category>
		<category><![CDATA[SumoCheckers]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[10.04]]></category>
		<category><![CDATA[CMAKE]]></category>
		<category><![CDATA[Code::Blocks]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Dystopia]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[IrrKlang]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Lucid Lynx]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[RakNet]]></category>
		<category><![CDATA[Sumo Checkers]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[WxWidgets]]></category>

		<guid isPermaLink="false">http://devoidgames.com/blog/?p=228</guid>
		<description><![CDATA[Nós não somos desenvolvedores Linux por padrão. No entanto, sempre tivemos bem forte a idéia de que é importante se desenvolver pensando o máximo possível em ser independente de plataforma &#8211; ou seja, sempre que vamos escolher um pacote para plugar na Dystopia, nosso framework in-house, nos esforçamos o máximo pra não ficarmos tentados por [...]]]></description>
			<content:encoded><![CDATA[<p>Nós não somos desenvolvedores Linux por padrão. No entanto, sempre tivemos bem forte a idéia de que é importante se desenvolver pensando o máximo possível em ser independente de plataforma &#8211; ou seja, sempre que vamos escolher um pacote para plugar na Dystopia, nosso framework in-house, nos esforçamos o máximo pra não ficarmos tentados por features mágicas se elas estiverem atreladas a um SO específico. Grande parte disso também vem da inspiração no post dos caras da <a href="http://www.wolfire.com/" target="_blank">Wolfire Games</a> que faz a pergunta <a href="http://blog.wolfire.com/2008/12/why-you-should-support-mac-os-x-and-linux/" target="_blank">&#8220;por que rodar em MacOS e Linux?&#8221;</a> &#8211; e é um must read pra qualquer desenvolvedor.</p>
<p>Nós já tínhamos a idéia de fazer um porte do alpha do SumoCheckers pra Linux, mas por falta de tempo, outras coisas a serem feitas e espaço em HD pra eu instalar uma distro, isso estava com prioridade baixa. Até que o <a href="http://diegodukao.net/" target="_blank">Diego Dukão</a>, gente boa, me perguntou se o nosso jogo era multiplataforma. Eu respondi&#8230; bom, a verdade: ele era. Mas em teoria. Como tinha (finalmente) comprado um HD novo e já estava protelando pra escolher distro há algum tempo, decidi instalar um <a href="http://www.ubuntu.com/" target="_blank">Ubuntu 10.04</a> mesmo, que seria a opção mais rápida de ficar up-and-running &#8211; e provar o conceito.</p>
<p>Este post é pra ajudar qualquer um que venha a ter os mesmos problemas que eu tive com as ferramentas que a gente usou. Então quem tiver interesse em fazer uma viagem pra Taerra Pinguinis, vamonos! Pra quem não tiver interesse, lá no final tem fotos do SumoCheckers atual, e aqui tem uma foto de um pinguim bonitinho:</p>
<div class="wp-caption aligncenter" style="width: 362px"><img class=" " src="http://i129.photobucket.com/albums/p210/luckyq/cute-baby-penguins.jpg" alt="Cuti cuti" width="352" height="470" /><p class="wp-caption-text">Cuti cuti</p></div>
<p><strong>Primeiro Problema: Code::Blocks</strong></p>
<p>Ok, começamos bem. Nossa IDE de escolha é o <a href="http://www.codeblocks.org/" target="_blank">Code::Blocks</a>, e eu obviamente imaginei que a única coisa que eu ia precisar fazer seria abrir o projeto e remover os defines relacionados a código WIN32. Boy oh boy, was i wrong.</p>
<p>O Code::Blocks usa o <a href="http://www.wxwidgets.org/" target="_blank">WxWidgets</a> e, por eu ter escolhido a versão recém-saída do forno do Ubuntu, por algum motivo místico a versão que vem nele é incompatível com a versão que o Code::Blocks usa. Primeira decisão errada: depois de bater cabeça um bocado de tempo, falei &#8220;bom, já estávamos querendo tentar o QtCreator mesmo&#8230; vamos ver no que dá&#8221;. No fim das contas, não valeu nem um pouco a pena tentar recriar o projeto numa IDE que você nunca viu na vida com um deadline de 2 dias, e eu acabei voltando atrás e procurando a solução do problema. Pra todos aqueles que tentaram usar o C::B no Lucid Lynx e se depararam com essa creca, <a href="http://forums.codeblocks.org/index.php/topic,12662.msg86468.html#msg86468 " target="_blank">basta seguir as instruções desse link e alternar as versões sendo usadas</a>, que o bicho roda.</p>
<p>Fuck yé, ID-É!</p>
<p><strong>Segundo problema: a dependência esquecida</strong></p>
<p>O Dystopia tem uma interface de redes que atualmente é operada pela <a href="http://www.jenkinssoftware.com/" target="_blank">RakNet</a>, que é tão boa que é basicamente &#8220;se você precisa de alguma coisa de redes pro seu jogo e já não tem no que quer que você esteja usando, use a RakNet&#8221;. A versão de testes do SumoCheckers original era completamente dependente de rede, mas nós decidimos adiar essa implementação por enquanto pra versão 3d, então atualmente os dois jogadores são controlados por teclado. O código de redes está lá, mas não está sendo usado. Mesmo assim, o framework ainda precisa da dependência (a RakNet) pra compilar.</p>
<p>Pra quem usa a RakNet, sabe que o Rakkar faz updates constantemente. E talvez já tenha se perguntado onde diabos ficam as versões antigas pra baixar. A resposta é mais simples do que parece: está tudo no diretório raiz do link de download da versão atual &#8211; assim, qualquer um que, como nós, não troque de versão dela a cada semana mas tenha perdido o zip original da versão que usa, <a href="http://www.jenkinssoftware.com/raknet/downloads/" target="_blank">pode achar as versões mais antigas aqui</a>.</p>
<p>Um bump in the road pra quem não tá acostumado é o <a href="http://www.cmake.org/" target="_blank">CMAKE</a>. Ele é excelente depois que se aprende a usar, mas até pegar o jeito, é chatinho. Felizmente, existe o CMAKE-GUI, que pode ser pego com um <em>apt-get, </em>que facilita BASTANTE o processo. Como eu queria apenas ter algo rodando rápido, gerei o mínimo possível para resolver o problema da dependência, ou seja, se bobear, para uma versão final usando de fato a RakNet, precise rever o .SO.</p>
<p><strong>INTERMISSION: .SO&#8217;s</strong></p>
<p>Pra quem nunca programou em Linux, talvez não saiba: .SO&#8217;s são &#8220;shared objects&#8221;, que são basicamente as .dll&#8217;s dos sistemas *nix. <a href="http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html" target="_blank">Aqui tem um pouco mais de informações a respeito</a>. Eu ainda preciso estudar um bocado pra saber como juntar tudo num pacote bonito e instalável, mas diacho, isso é só uma prova de conceito. Moving on!</p>
<p><strong>Terceiro Problema: mais dependências, nomes de arquivo e diretórios</strong></p>
<p>Depois de compilar a RakNet, foi a vez da Ogre3d. Para não ter que esperar o download, peguei o source que já tinha baixado no Windows pra usar. Funcionou, mas a árvore de diretórios não era a mesma, ou seja, tive que mover alguns diretórios e arquivos pra lá e pra cá até deixar tudo certo. A conexão estava lenta nesse dia, então acabou sendo mais rápido fazer isso do que esperar <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><a href="http://www.ogre3d.org/forums/viewtopic.php?f=1&amp;t=56799" target="_blank">Pra facilitar, aqui vai um guia completo de como instalar do source</a>, que foi o que eu segui.</p>
<p>A <a href="http://www.ambiera.com/irrklang/" target="_blank">IrrKlang</a>, que estamos usando para o som, foi a única bondosa dependência que já vinha pré-compilada. Não tive que fazer nada, apenas avisar pro linker usá-la. Abençoados sejam!</p>
<p>Quando finalmente abri o projeto do SumoCheckers no Code::Blocks, acabou que ele teve alguns problemas na localização de arquivos também. Isso aparentemente aconteceu, pelo menos em parte, por problemas de nome de diretórios e arquivos &#8211; lembrando sempre: o Linux é case-sensitive, o Windows não. Sendo assim, resolvi esvaziar o projeto e re-adicionar todos os arquivos de fonte. Depois de bater cabeça um tempo com um arquivo que simplesmente não precisava estar no projeto (e por isso dava erros de compilação), pronto, tudo certo!</p>
<p><strong>Aos finalmentes: HIT COMPILE!</strong></p>
<p>E finalmente temos&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. um erro. No caso, apenas *UM* erro, literalmente, e era num define: o Tinnus colocou o Sleep() pra Win32 mas não colocou pra Linux, então colocou um #error lá pra indicar que a gente deveria pegar pra consertar depois. Temporariamente usei o sleep(), mas essa função recebe <em>segundos</em>, ao invés de <em>mili</em>ssegundos, como o Sleep() do windows. O correto seria usar o <strong>usleep()</strong>, que recebe <em>micro</em>segundos (mnemônico: u é µ) e multiplicar por 1000 pra ficar equivalente.</p>
<p>&#8220;<em>Finalmente! Compilou! I am Root!</em>&#8221;  etc. Até ver que o mouse não funcionava.</p>
<div class="wp-caption aligncenter" style="width: 415px"><img class=" " title="Root" src="http://www.umassvegetable.org/images/soils_crops_pest_mgt/disease/pepper_root_knot.jpg" alt="Ainda não, mas quase lá." width="405" height="343" /><p class="wp-caption-text">Ainda não, mas quase lá.</p></div>
<p>Mas era um problema bobo: estávamos passando &#8220;mouse_win32&#8243; pra função que controlava o mouse e, bom, no Linux não deveria ser isso. Por sorte, <a href="https://www.ogre3d.org/forums/viewtopic.php?f=2&amp;t=33739&amp;start=0" target="_blank">a interwebz provê a resposta facilmente</a>: pra quem usa <a href="https://www.ogre3d.org/forums/viewtopic.php?f=2&amp;t=33739&amp;start=0" target="_blank">OIS</a> para controlar input, provavelmente faz um</p>
<pre class="brush: c++">
pl.insert(std::make_pair(std::string(&quot;w32_mouse&quot;), std::string(&quot;DISCL_FOREGROUND&quot;)));
pl.insert(std::make_pair(std::string(&quot;w32_mouse&quot;), std::string(&quot;DISCL_NONEXCLUSIVE&quot;)));
</pre>
<p>no Windows. No Linux, isso deve ser um</p>
<pre class="brush: c++">

pl.insert(std::make_pair(std::string(&quot;x11_mouse_grab&quot;), std::string(&quot;true&quot;)));
pl.insert(std::make_pair(std::string(&quot;x11_mouse_hide&quot;), std::string(&quot;false&quot;)));
</pre>
<p><strong>Resultado do experimento</strong></p>
<p>Oficialmente o SumoCheckers é um projeto cross-platform =)</p>
<p>Precisamos apenas de 3 linhas de código adicional pra que ele rodasse em Linux: o sleep(), que já estava previsto, e as coisas de input da OIS que não previmos, realmente, mas pelo menos era bem óbvio dados os parâmetros que a gente passava. Impressionantemente, foram 2 dias fuçando direto, só nos problemas de dependência e IDE, gastando menos de 15 minutos pra resolver os do nosso código. Com isso, acho que fica bem entendido o título do post. Fazendo as coisas direitinho, o único problema que você vai ter é na sua falta de prática em outro ambiente de desenvolvimento mas, seguindo os padrões da linguagem e usando apenas bibliotecas crossplatform, você só vai precisar escrever seu código uma vez &#8211; o resto é só setup de ambiente. Próxima aventura: MacOS, depois que alguém me doar um MacBook! <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Ironicamente, dias depois descobri que a versão de Windows roda perfeitamente bem no Wine. Mas hey, isso não vem ao caso, vamos a alguns screenshots do estado atual do SumoCheckers, com a nova dama e uma boniteza a mais no cenário:</p>
<div id="attachment_232" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/08/SumoCheckers_linux1.png"><img class="size-medium wp-image-232" title="SumoCheckers_linux1" src="http://devoidgames.com/blog/wp-content/uploads/2010/08/SumoCheckers_linux1-300x233.png" alt="" width="300" height="233" /></a><p class="wp-caption-text">Gramas</p></div>
<div id="attachment_233" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/08/SumoCheckers_linux3.png"><img class="size-medium wp-image-233" title="SumoCheckers_linux3" src="http://devoidgames.com/blog/wp-content/uploads/2010/08/SumoCheckers_linux3-300x233.png" alt="" width="300" height="233" /></a><p class="wp-caption-text">Damas</p></div>
<p>É isso! Espero que acabe ajudando alguém querendo entrar na tuxlândia.</p>
<p><strong>PS: </strong>Estamos precisando de um nome pro evento de gamedev que estamos montando pro ano que vem! Mandem sugestões pelos comentários ou pro <a href="http://twitter.com/devoidgames" target="_blank">@devoidgames</a>!</p>
<p><strong>PS2:</strong> o plugin de WordPress que faz os códigos identadinhos é o <a href="http://wordpress.org/extend/plugins/syntaxhighlighter-plus/" target="_blank">Syntax Highlighter Plus</a>.</p>
<p><strong>PS3:</strong> quem disse <a href="http://pt.wikipedia.org/wiki/Jean-Paul_Sartre#O_outro" target="_blank">&#8220;o inferno são os outros&#8221; foi o Sartre</a>, vale a pena ler pra entender por completo o título do post =)</p>
<p><strong>PS4:</strong> está sendo projetado com ajuda dos desenvolvedores (<a href="http://www.industrygamers.com/news/sony-developers-assisting-with-ps4-design/" target="_blank">HAH</a>!)</p>
]]></content:encoded>
			<wfw:commentRss>http://devoidgames.com/blog/2010/08/21/o-inferno-sao-os-outros-uma-aventura-na-terra-do-pinguim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SumoCheckers: Pós-Crunch SBGames 2010</title>
		<link>http://devoidgames.com/blog/2010/07/26/sumocheckers-pos-crunch-sbgames-2010/</link>
		<comments>http://devoidgames.com/blog/2010/07/26/sumocheckers-pos-crunch-sbgames-2010/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 15:48:46 +0000</pubDate>
		<dc:creator>Yanko</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[SumoCheckers]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Crunch]]></category>
		<category><![CDATA[Festival de Jogos Independentes]]></category>
		<category><![CDATA[Público]]></category>
		<category><![CDATA[SBGames]]></category>
		<category><![CDATA[Vídeo]]></category>

		<guid isPermaLink="false">http://devoidgames.com/blog/?p=216</guid>
		<description><![CDATA[Holas! Pra quem notou o silêncio no @devoidgames, deve ter pensado que a) Era fim de período b) Tinha um deadline curtíssimo pra enviar algo pro SBGames 2010 c) Alguém ficou semi-morto A new challenger appeared: d) todas as anteriores! Mesmo assim, eu e o Tinnus passamos pelo nosso primeiro mega-crunch. Foi tenso, e é [...]]]></description>
			<content:encoded><![CDATA[<p>Holas!</p>
<p>Pra quem notou o silêncio no <a href="http://twitter.com/devoidgames" target="_blank">@devoidgames</a>, deve ter pensado que</p>
<p>a) Era fim de período</p>
<p>b) Tinha um deadline curtíssimo pra enviar algo pro SBGames 2010</p>
<p>c) Alguém ficou semi-morto</p>
<p>A new challenger appeared: d) todas as anteriores! Mesmo assim, eu e o Tinnus passamos pelo nosso primeiro mega-crunch. Foi tenso, e é algo que todo desenvolvedor vai passar eventualmente. Coisas feitas na correria, tudo &#8220;bom o suficiente&#8221; mas &#8220;poderia ser melhor&#8221;, trilha sonora feita em meia hora (literalmente)&#8230; mas cá estamos!</p>
<p>And we&#8217;re proud to present: o primeiro preview público do SumoCheckers em sua forma 3D!</p>
<div id="attachment_217" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/07/SumoCheckers1.png"><img class="size-medium wp-image-217" title="SumoCheckers1" src="http://devoidgames.com/blog/wp-content/uploads/2010/07/SumoCheckers1-300x225.png" alt="" width="300" height="225" /></a><p class="wp-caption-text">Um menu com Z cagado que pra mim ficou muito mais estiloso que a versão final!</p></div>
<div id="attachment_219" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/07/SumoCheckers21.png"><img class="size-medium wp-image-219" title="SumoCheckers2" src="http://devoidgames.com/blog/wp-content/uploads/2010/07/SumoCheckers21-300x225.png" alt="O tabuleiro (já um pouco bagunçado)" width="300" height="225" /></a><p class="wp-caption-text">O tabuleiro (já um pouco bagunçado)</p></div>
<div id="attachment_220" class="wp-caption aligncenter" style="width: 310px"><a href="http://devoidgames.com/blog/wp-content/uploads/2010/07/SumoCheckers3.png"><img class="size-medium wp-image-220" title="SumoCheckers3" src="http://devoidgames.com/blog/wp-content/uploads/2010/07/SumoCheckers3-300x225.png" alt="Eles não estão dançando." width="300" height="225" /></a><p class="wp-caption-text">Eles não estão dançando.</p></div>
<p>Coisas a se notar: os gráficos são uma iteração dos anteriores, mas ainda são meio que placeholders. As músicas foram feitas em literalmente 20 minutos. O Tinnus programa realmente muito rápido. E coisa final a se aprender: NUNCA, repito, NUNCA você vai mandar algo que não esteja pronto antes de 23:50 num deadline às 00h. Sempre tem algo pra consertar, polir, adicionar e, principalmente, desesperar!</p>
<p>Sugestão pro pessoal do SBGames: mandem um e-mail de confirmação pra quem enviar o jogo! E MPEG1 não é um bom método de compressão mais, youtube/vimeo tão aí pra isso <img src='http://devoidgames.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Sugestão pro pessoal da deV( )id: quaisquer que vocês tenham, mandem!</p>
<p>Without further ado: o vídeo de gameplay, feat. barulhinhos do meu gTalk!</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/jjXnBWIjKsg&#038;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/jjXnBWIjKsg&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Esperamos vossos comentários, a voz do povo é a voz de Deus!</p>
]]></content:encoded>
			<wfw:commentRss>http://devoidgames.com/blog/2010/07/26/sumocheckers-pos-crunch-sbgames-2010/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

