tag:blogger.com,1999:blog-20670799428346588282024-02-20T11:33:51.979-08:00Desenvolvimento de Jogos Casuais 2013.2 SMDPortfólio de trabalhos produzidos para a disciplina de Desenvolvimento de Jogos Casuais - 2013.2, do curso Sistemas e Mídias Digitais - UFC, ministrada pelo Prof. Melo JúniorJoão Marcelohttp://www.blogger.com/profile/08934918346859515907noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-2067079942834658828.post-23310190758155318572013-11-06T06:52:00.000-08:002013-11-06T06:56:22.748-08:00Refazendo o KinectUm dos componentes mais caros do projeto do IPREDE é o Kinect, usado como controle do jogo. Uma alternativa barata a esta solução são as webcams: com um algoritmo de detecção de movimento, conseguimos identificar o jogador na imagem, obtendo a mesma funcionalidade que teríamos no controle da Microsoft.<br />
<br />
O algoritmo funciona da seguinte forma:<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong>1.</strong> Antes do jogo, fixa-se a câmera e obtém-se uma foto do ambiente</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8lr4bURvOEAs_qF6S224jI9h6DinLpkBzM7U6ttnq3MUtUrwbqTPGML3ftVFQTABTb-MEJTX6NAA1XJrt6IvaX9ECBesz37fdWIMpFfJ0O6T10Y68fjFBaXM4HahtturEA79t7Q8CMfg/s1600/Foto+1+-+Cenario+puro.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8lr4bURvOEAs_qF6S224jI9h6DinLpkBzM7U6ttnq3MUtUrwbqTPGML3ftVFQTABTb-MEJTX6NAA1XJrt6IvaX9ECBesz37fdWIMpFfJ0O6T10Y68fjFBaXM4HahtturEA79t7Q8CMfg/s320/Foto+1+-+Cenario+puro.JPG" width="320" /></a></div>
<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong>2.</strong> Durante o jogo, o jogador aparecerá na imagem</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoXIOScbdVIvLOtKhk-KXFj8018Gq5_7cCkReXmHraZqGIaeAsK3uj1DKcYw4w1NMm1r9NvfGZRTbC7teE5gTJ4tCKKRlM2oOgzffb0SCwz6G1v_uYKr0pggVeQxJkRu-y85M4Wlp_0v4/s1600/Foto+2+-+Rapaz+bonito.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoXIOScbdVIvLOtKhk-KXFj8018Gq5_7cCkReXmHraZqGIaeAsK3uj1DKcYw4w1NMm1r9NvfGZRTbC7teE5gTJ4tCKKRlM2oOgzffb0SCwz6G1v_uYKr0pggVeQxJkRu-y85M4Wlp_0v4/s320/Foto+2+-+Rapaz+bonito.JPG" width="320" /></a></div>
<br />
<br />
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;"><strong>3.</strong> Em todo quadro (frame), faz-se uma subtração da imagem do jogador com a imagem original do ambiente</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjED72FL8-YqlovNDTO3BRwnHTQcQojcQEfjYNLftvhyrleYAa0Fn2SmXRvF167hvfXLq_zxsKNPWl9vtm8XZbct5NSVXr0nGU_0TOtqHsoT5HKl_Wq3f1ZqR99tHwJx3cJVS7P7SkX-hY/s1600/Foto+3+-+Davi+corte.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjED72FL8-YqlovNDTO3BRwnHTQcQojcQEfjYNLftvhyrleYAa0Fn2SmXRvF167hvfXLq_zxsKNPWl9vtm8XZbct5NSVXr0nGU_0TOtqHsoT5HKl_Wq3f1ZqR99tHwJx3cJVS7P7SkX-hY/s320/Foto+3+-+Davi+corte.jpg" width="320" /></a></div>
<br />
<br />
<span style="font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;"><strong>4.</strong> Nota-se que a imagem final contém ruído. Na verdade, o algoritmo considerará apenas os pixels da imagem, não as cores. Ou seja, a imagem final, para o computador, será esta:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh86uIMmtsO8xSafJ4Idzs-ibUOE0u7js8zZbwoG2em2-0epQXam1SjaHRnoUgolc_s-GIzpeuUbg7EyK9YD_ViHflvrAw3FRXWZoYlCUuIDQX-qHONhD9knaa0IjtYVOvdg2MaFY6K3cc/s1600/Foto+4+-+Davi+corte+vermelho.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh86uIMmtsO8xSafJ4Idzs-ibUOE0u7js8zZbwoG2em2-0epQXam1SjaHRnoUgolc_s-GIzpeuUbg7EyK9YD_ViHflvrAw3FRXWZoYlCUuIDQX-qHONhD9knaa0IjtYVOvdg2MaFY6K3cc/s320/Foto+4+-+Davi+corte+vermelho.jpg" width="320" /></a></div>
<br />
<br />
<span style="font-size: x-small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: small;"><strong>5.</strong> Em seguida, faz-se a média da posição dos pixels, resultando em um ponto que indica a altura do jogador.</span> Através deste ponto, saberemos quando o jogador pulou.</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl0m4e__snt5GioYo2Abu_9ZYjPL6xg60n4LJq8ivF6VMFsGXIEVyiJBh0gDI0sbapl-ky7ImiI70e2MLwHU2eL_15xMAwcWh3-KZBDrIfp3gNrf2uj4Lk-V_nhecjKlmw2YtKBTH12jY/s1600/Foto+5+-+Ponto.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl0m4e__snt5GioYo2Abu_9ZYjPL6xg60n4LJq8ivF6VMFsGXIEVyiJBh0gDI0sbapl-ky7ImiI70e2MLwHU2eL_15xMAwcWh3-KZBDrIfp3gNrf2uj4Lk-V_nhecjKlmw2YtKBTH12jY/s320/Foto+5+-+Ponto.png" width="320" /></a></div>
<span style="color: red;"></span>João Marcelohttp://www.blogger.com/profile/08934918346859515907noreply@blogger.com0tag:blogger.com,1999:blog-2067079942834658828.post-54267984857003087692013-11-06T06:07:00.000-08:002013-11-06T06:07:10.117-08:00O jogo do IPREDEJoão Marcelohttp://www.blogger.com/profile/08934918346859515907noreply@blogger.com0tag:blogger.com,1999:blog-2067079942834658828.post-49624624076705711592013-11-05T20:07:00.000-08:002013-11-05T20:07:28.043-08:00Um novo públicoNosso exercício era pensar um novo público para a nosso projeto.<br />
<br />
Nosso novo público são pessoas (crianças) acima do peso e para o novo jogo resolvemos preservar a mecânica e mudar apenas a temática.<br />
<br />
O jogo consiste em controlar um personagem que inicialmente possui IMC (índice de massa corpórea) ideal e tem que pegar itens que balanceie o IMC dele. Ex: Se eu pego uma lasanha meu IMC vai aumentar e quando maior o IMC menos tempo o personagem vai conseguir correr, porém se eu pegar apenas coisas que diminuam o IMC (alface, salada) o personagem não terá forças para correr. Ou seja, será necessário fazer bem o balanceamento dos alimentos que irão ser pegues. Além disso teria uma variável de fome do personagem que iria ser suprida através dos alimentos (itens) do cenário. O desafio do jogo consiste que terminar a fase em um tempo pré-estipulado, sendo assim terá que ser feito um balanciamento preciso.<br />
<br />
Desta forma poderiamos modificar a temática do jogo, porém iriamos aproveitar todos os elementos de mecânica.Davi Cabralhttp://www.blogger.com/profile/17811543752133405947noreply@blogger.com0tag:blogger.com,1999:blog-2067079942834658828.post-77146251463582426282013-10-18T13:43:00.002-07:002013-10-18T13:44:45.322-07:00Projeto de parceria com o IPREDE<span style="font-family: inherit;">Entramos em uma nova etapa da disciplina. O próximo projeto será desenvolvido para o Instituto da Primeira Infância (IPREDE), uma ONG cearense de apoio e desenvolvimento à crianças de 0 a 6 anos. A missão do IPREDE é:</span><br />
<span style="font-family: inherit;"><br /></span>
<span id="docs-internal-guid-26c55bb8-cd39-e153-8464-a5bccba7006d"><span style="font-family: inherit;"><span style="vertical-align: baseline; white-space: pre-wrap;">"</span><span style="font-style: italic; vertical-align: baseline; white-space: pre-wrap;">Assegurar à criança e ao adolescente o respeito e a dignidade, através do desenvolvimento sadio e harmonioso, com ações pautadas em estudos e pesquisas científicas voltadas para a prevenção de distúrbios de nutrição e a excepcionalidade</span><span style="vertical-align: baseline; white-space: pre-wrap;">"</span></span></span><br />
<span style="vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><br /></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://blog.opovo.com.br/imae/files/2013/03/iprede.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://blog.opovo.com.br/imae/files/2013/03/iprede.jpg" /></a></div>
<br />
<span style="font-family: inherit; white-space: pre-wrap;">Nas primeiras reuniões com o IPREDE, a equipe elaborou um briefing para nortear o desenvolvimento do trabalho. Seguem as informações:</span><br />
<span style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><br /></span>
<br />
<ul>
<li><span style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><i style="font-family: inherit; line-height: 1.15;"><b>Qual o problema que a equipe irá resolver, o objetivo do projeto?</b></i></span></li>
<ul>
<li><span style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><i style="font-family: inherit; line-height: 1.15; text-indent: 36pt;">O IPREDE deseja apresentar suas novas atividades para renovar-se diante da sociedade cearense e demonstrar credibilidade aos parceiros.</i></span></li>
</ul>
<li><span style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><i style="font-family: inherit; line-height: 1.15;"><b>Em qual tipo de solução de design o cliente está pensando?</b></i></span></li>
<ul>
<li><span style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><i style="font-family: inherit; line-height: 1.15; text-indent: 36pt;">Jogo publicitário</i></span></li>
</ul>
<li><span style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><i style="font-family: inherit; line-height: 1.15;"><b>Como essa solução será implementada?</b></i></span></li>
<ul>
<li><span style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><i style="font-family: inherit; line-height: 1.15; text-indent: 36pt;">Utilizando ferramentas de desenvolvimento de jogos</i></span></li>
</ul>
<li><i style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><b>Por que o cliente crê que essa solução de design é necessária?</b></i></li>
<ul>
<li><i style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;">O cliente acredita que investir em novas tecnologias irá captar as novas gerações</i></li>
</ul>
<li><i style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><b>Quando o projeto será necessário e por quanto tempo?</b></i></li>
<ul>
<li><i style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;">O cliente pretende utilizar o produto durante o Natal, aproveitando o apelo solidário da época, mas deseja ter continuidade em outras épocas do ano</i></li>
</ul>
<li><i style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;"><b>Onde a solução será usada?</b></i></li>
<ul>
<li><i style="font-family: inherit; line-height: 1.15; white-space: pre-wrap;">Locais públicos, prioritariamente shoppings e praças</i></li>
</ul>
</ul>
João Marcelohttp://www.blogger.com/profile/08934918346859515907noreply@blogger.com0tag:blogger.com,1999:blog-2067079942834658828.post-72597869589422723122013-10-18T13:02:00.001-07:002013-10-18T13:12:27.163-07:00Runner Asteroids com novos comandosA nova interface de controle do jogo foi instalada. Além disso, agora pode-se proteger dos asteróides com um escudo, e o recorde de distância é registrado.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='473' height='266' src='https://www.youtube.com/embed/aEmEZmoY4Mo?feature=player_embedded' frameborder='0'></iframe></div>
<br />
O controle foi prototipado utilizando um acelerômetro que, quando ativado, faz a nave subir. As moedas, que antes não tinham função, agora são aproveitadas para comprar o escudo da nave.João Marcelohttp://www.blogger.com/profile/08934918346859515907noreply@blogger.com0tag:blogger.com,1999:blog-2067079942834658828.post-77195279723575486492013-09-27T14:54:00.000-07:002013-10-01T13:21:52.362-07:00Mesma mecânica, outra interfaceApós o desenvolvimento do jogo <a href="http://jogoscasuaissmd.blogspot.com.br/2013/09/uma-mistura-de-conceitos.html" target="_blank">Runner Asteroids</a>, relembramos interfaces não-convencionais para jogos mecânicos e eletrônicos, como o <i><a href="https://www.youtube.com/watch?v=0tRclMW6YqQ" target="_blank">Pachinko</a> </i>e o <i><a href="https://www.youtube.com/watch?v=RXu24MPhlwY" target="_blank">Dr. Kawashima's Body and Brain Exercises</a></i>.<br />
<br />
A atividade desta aula é repensar o jogo desenvolvido anteriormente, alterando somente a <i>interface do jogador</i>. O Runner Asteroids tem apenas um comando: manter qualquer tecla pressionada para que a nave suba -- e liberar a tecla para que desça. Analogamente, este é o trabalho das manetes de uma aeronave: quando acionadas, o jato é impulsionado; quando reversas, é desacelerado.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://thumbs.dreamstime.com/x/airplane-throttle-8885296.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://thumbs.dreamstime.com/x/airplane-throttle-8885296.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Manetes de aeronave</td></tr>
</tbody></table>
Portanto, apostando na imersão, nossa proposta de nova interface para o Runner Asteroids é uma cabine de aeronave cujo controle é uma única manete que, acionada, faz a nave subir, e, reversa, permite-a descer.<br />
<br />
Apesar de não alterar o jogo, acreditamos que esta mudança acrescenta-lhe valor, pois emerge o jogador em um contexto temático.João Marcelohttp://www.blogger.com/profile/08934918346859515907noreply@blogger.com0tag:blogger.com,1999:blog-2067079942834658828.post-78669416903152609232013-09-24T06:32:00.000-07:002013-10-03T20:03:35.236-07:00Runner Asteroids - uma mistura de conceitosAs primeiras aulas da disciplina são exclusivamente para discussão. Tentamos definir <a href="http://www.nusseagora.blog.br/o-que-e-um-jogo-casual" target="_blank">jogo casual</a>, pesquisamos sua história e exemplificamos com títulos diversos.<br />
<br />
<span data-measureme="1"><span class="null">
O jogo abaixo, produzido após a etapa inicial, envolve misturar a
mecânica de um determinado jogo com o estilo gráfico de outro. A equipe
ficou com a tarefa de implementar um jogo de mecânica runner (<a href="http://www.youtube.com/watch?v=3KENMuzsras">Jetpack Joyride</a> é um exemplo famoso) com o estilo gráfico vetorial (como o
clássico <a href="http://www.youtube.com/watch?v=WYSupJ5r2zo">Asteroids</a> para arcade).</span></span> <br />
<br />
O resultado foi o Runner Asteroids<span data-measureme="1"><span class="null">, disponível logo abaixo (clique sobre o jogo e pressione qualquer tecla para jogar)</span></span>:<br />
<br />
<div style="text-align: center;">
<embed align="middle" allowscriptaccess="always" height="350" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="https://dl.dropboxusercontent.com/u/74760851/runner-asteroids(3).swf" type="application/x-shockwave-flash" width="520"></embed> <br />
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
O jogo faz uma modificação do estilo gráfico vetorial adicionando animações quadro-a-quadro, inexistentes nos títulos originais por limitação da tecnologia.</div>
</div>
Davi Cabralhttp://www.blogger.com/profile/17811543752133405947noreply@blogger.com0