deV( )id Games | because we're tired of no return;

CAT | Post-mortem

“… na escuridão, levantou seu candelabro. Os pequenos flocos de poeira flutuavam, alguns sendo capturados pelas enormes teias que ali se encontravam, abandonadas até pelas próprias aranhas – o retrato de um local há muito não visitado. O que não suspeitava é que, à sua espreita, havia um…”

Post novo no blog!!!!!111one

Como alguns de vocês já sabem, acabamos de lançar o nosso último newsgame/jogo de crítica/sátira lúdica/etc., o arrEcad!, que pode ser jogado até por quem nem tem FEICE! Como todo jogo de crítica que se preze, tem muito mais coisa do que é mostrado explicitamente e, como nós não somos tão artistas assim, tem que ter um post CliffsNotes a respeito. Obviamente, aproveitando pra incluir um pouco de postmortem de desenvolvimento, apesar de que o ciclo de vida do jogo ainda não está bem finalizado (já que a qualquer momento o ECAD pode fazer caca e voltar a ser polêmica 😀 )

A motivação

Quem não estava por aí debaixo de uma pedra, viu que as internetes se revoltaram pela recente cobrança indevida do ECAD em cima de blogs que embedavam vídeos do YouTube. Pra qualquer pessoa que já tenha tido envolvimento direto com produção cultural nesta terra nostra, o ECAD já é figurinha carimbada com rage faces há muito tempo mas, dessa vez, eles pegaram numa ferida que já era meio dolorida: vídeos do YouTube. Muita gente já sabia que o Google tinha um acordo com o ECAD sobre os vídeos de lá e, quando eles resolveram criar dinheiro do ar cobrando duas vezes (do Google, que hospedava, e do dono do blog, que publicava), a ação caiu na boca da Internet. E a Internet nunca perdoa.

You don't mess with the Zohan!

You don't mess with the Zohan!... or the Internet!

E aí todo mundo passou a saber quem era o ECAD e que ele era mau. Obviamente, com o poder de todo seu legalese, a organização dobrou o espaço-tempo invocando o art. 5º inciso II da Lei de Direitos Autorais 9.610/98 para justificar as cobranças. Até que o Google desdobrou, o que obviamente acabou com a palhaçada, pelo menos temporariamente. O que não impediu a gente de fazer uma sátira a respeito!

Eu, por já ter organizado eventos musicais, e o Tinnus, por ser ator de teatro, já nos deparamos com essa besta (entendam como quiserem) várias vezes – então agora era o momento perfeito pra dizer algo a respeito.

O gameplay

Como gameplay é o forte dos jogos como mídia, sempre tentamos amarrar o gameplay ao máximo na crítica. Por isso………. pensamos num reskin de um projeto em pausa. Você não achou que a frase fosse terminar assim, né?

Temos um projeto, atualmente na geladeira, que fizemos para o contest da Unity Flash. Não saiu nada no contest, mas temos um projeto legal pra trabalhar em cima em paralelo ao Sum… ahem, nosso atual projeto (sem spoilers! post a respeito em breve!). Como a polêmica já estava dando notícias que ia sair da cabeça do povo, precisávamos de um ciclo muito rápido de desenvolvimento. E o melhor jeito de ter isso era basicamente modificando esse projeto já existente.

“Espera… então vocês ignoraram completamente essa coisa de amarrar a crítica no gameplay?”

Na verdade não! Pensa só: o ECAD é um grande porrete que, protegido por lei, pode cobrar de qualquer um, seja um show independente ou até noivos em seu casamento. Ok, isso é um exagero, POR LEI, eles não podem. Mas sempre ajuda ter gente do governo apoiando, certo? 😉

E claro, só mostramos a primeira parte, que era bater nos “little guys” como um impávido colosso de clava forte, jorrando dinheiro e juntando num local obscuro porque… bom, porque a gente não sabe se acredita muito no que eles dizem que fazem com o dinheiro que arrecadam.

Mas temos alguns palpites.

Mas temos alguns palpites.

A música

Depois de muito exercitar o músculo criativo nesses últimos anos, a idéia inteira pro jogo veio como um flash, uma grande descarga de resposta à pergunta: “como fazer o reskin de um jogo completamente alheio de um jeito que ele vire uma boa crítica?”. O processo inteiro demorou basicamente um passeio de metrô.

A música, obviamente, tinha que ser uma parte importante disso. Lembrei do Pachelbel Rant, que é um sketch de humor muito engraçado que mostra que a harmonia mais kibada de todos os tempos é a da Canon in D, do Pachelbel. Ela está presente da música clássica ao punk, do country ao pop. E aí bateu a idéia: e se cada personagem tivesse agregado com um arranjo em cima dessa mesma harmonia, e eles fossem dando fade in e out quando aparecessem/sumissem?

O que é legal aqui é que, por dar uma porrECADa nas manifestações culturais, você interrompe uma parte da música; se você (o ECAD) for bem sucedido, a manifestação da música nunca vai conseguir ser completa. Como no Corrida Presidencial, a pergunta é: será que é bom você ganhar pelas regras do jogo e interromper o processo da música “emergir” dali, ou perder – que é um resultado ruim pra você, mas melhor para o todo? A decisão é sempre sua.

 

Artsy, huh?

Artsy, huh?

 

Content

Como todo reskin, a maior parte da problemática era o conteúdo. Felizmente, nós há algum tempo temos o PowerDummy(TM). PowerDummy(TM) é um bonequinho mal feito, com poucos polígonos, um UVMap distorcido, riggado de maneira marromenos… MAS:  ele está pronto pra qualquer trabalho. Justamente por ser simples e, principalmente, já estar pronto, ele facilitou bastante o ciclo de desenvolvimento. Por isso, a dica daqui é: sempre tenham um bonequinho facilmente alterável à mão (e garantam que ele só vai ser visto de longe)!

 

Gêmeos!

Plataforma

Precisávamos de algo que fosse divulgado facilmente e, como já estávamos de olho no Facebook, pareceu a oportunidade perfeita pra testar a API. Além disso, o Heroku começou a hostear apps di gratis (com caveats, claro, como limite de um dyno web nas contas free). E como já estávamos com alguma experiência no desespero, ahem, na feature de export pra Flash da Unity, resolvemos testar a penetração e o custo/benefício contra o Web Player.

O processo de desenvolvimento com Flash tem vários probleminhas, obviamente, por ser beta – por exemplo, você não deveria serializar booleans, a não ser que ache pontos de exclamação atraentes – mas, felizmente, já tínhamos visto de quase tudo fazendo o projeto do contest, então não deu tanto trabalho assim, já que sabíamos o que evitar, e que o codebase era bem parecido.

A pergunta é: foi melhor ter publicado em Flash? Não sabemos, mas não foi tão bom quanto gostaríamos. Primeiro porque o .SWF tem um overhead considerável de tamanho (e isso faz as pessoas esperarem mais pra jogar). Segundo porque, obviamente, a performance é muito melhor no plugin da Unity. Isso tudo agregado a possíveis problemas de versão do Flash Player na máquina do jogador e… bom, o final da história é que acabamos colocando depois uma versão Web Player no ar também. Unity Flash é promissor, mas ainda não é bem uma plataforma estável o suficiente para publicação.

E quem diabos era aquela senhora?

Pra quem chegou a ~17k pontos, provavelmente notou a visita inusitada de uma nobre senhora, acompanhada de um familiar “TOASTY!” (sim, meu mundo também caiu quando era moleque e descobri que o Dan Forden dizia “Toasty!” e “Frosty!” e não “whoopie!”). Quem é ela?

 

Toasty!

Uma personagem meio obscura, quase um easter egg, que só aparece de tempos em tempos, que você nem sabe se tem relação direta com a coisa toda ou não (ou que pelo menos, se ela for perguntada, com certeza vai negar!). Como o diabo está nos detalhes, tirem a ferrugem dos seus conhecimentos de história e de geografia, e deixem o L que falta por nossa conta.

Conclusões

Como mencionado ali em cima, o ciclo de vida do projeto ainda não está bem fechado ainda, então parte das conclusões deve vir num post post post post posterior. No entanto, como entidade crítica (que era o intuito maior), acho que foi um sucesso. Dissemos o que queríamos dizer, de maneira até bem sutil em alguns aspectos – afinal, a boa arte está nas entrelinhas – e, no fim das contas, saiu mais divertido que o Corrida Presidencial (o que não era muito difícil)!

E sobre a frequência de posts no blog, ainda não sabemos como vai ser mas, por enquanto, fiquem de olho no FEICE, honrem-nos com vossos likes e RTs, comentem  por aí.

Em Suma, Checkem em breve! Over and out!

· · · · · · · · · · · ·

Bom, demorou um pouco mais do que eu esperava a princípio–graças, em parte, à adaptação para celular–mas aqui está, para quem quiser saber detalhes nus e crus de como é desenvolver um one-button-two-days-game 🙂

Ah! Espere! O jogo agora tem uma versão que roda em Androids que suportam Flash! Veja no Kongregate Mobile! E aqui está um QRcode bonito para você que não quer copiar um link gigante pro celular: Scroll Loc MobileOk, agora que você perdeu mais 10 minutos da sua vida se divertindo com Scroll Lock (não esqueça de dar estrelas pro jogo!) podemos voltar à nossa programação normal.

 

O que deu certo

1) O conceito. Tudo bem que essa aqui é um pouco de roubo, porque eu simplesmente acordei no domingo com o jogo pronto na minha cabeça. Agora acredito quando lembro da J.K.Rowling falando que isso aconteceu com todo o universo de Harry Potter em uma viagem de trem! Mas enfim, é claro que não surgiu do nada. Tudo começou alguns dias antes, quando o Denilson twittou a respeito do / ESCAPE \, um one-button game que só usava a tecla Esc do teclado, em um trocadilho onde você controlava uma criatura que tinha que fugir de uma torre vertical com espinhos nas paredes e um laser mortal que subia a torre logo atrás de você.

Achei o jogo bem divertido (apesar de não conseguir ganhar a badge difícil =/ ), e fui olhar os comentários a respeito. Um deles era bastante interessante…

“Next game: Scroll Lock Please? I have to use this useless thing.”

Minha mente de desenvolvedor, obviamente, ligou na hora, e pensou em como criar um jogo em que o gameplay central consistisse em um trocadilho com a tecla Scroll Lock (e fosse controlável somente por ela). Não demorou muito para pensar que a idéia seria que o pressionamento da tecla “travasse” a “rolagem” de alguma coisa.

Tá, mas e aí?

Bom, não sei. Digo, não sabia. Então isso foi ficando meio de lado ao longo da semana. Até que acordei no domingo com a idéia de um boneco palito em uma esteira da morte com pistões que o ameaçavam. Mais do que a idéia, me veio de súbito a imagem do jogo completo, com toda a direção de arte (que foi algo que também deu certo, veja mais pra frente), o que foi muito bom para manter ao longo do desenvolvimento uma visão clara de como eu queria que o jogo ficasse.

 

2) O desafio. Junto com a visão de como o jogo ficaria, veio a realização de que ele seria razoavelmente simples de fazer. Talvez simples o suficiente para que eu fizesse sozinho (que era algo que eu queria e sabia que precisava: fazer um jogo sozinho do começo ao fim). Talvez simples o suficiente para ser feito em um ou dois dias.

No fim das contas, eu estabeleci um desafio, quase como um Ludum Dare pessoal: fazer um jogo sozinho em dois dias, com o protótipo de gameplay funcional na noite do primeiro dia.

Para garantir que nada atrapalharia a experiência, eu não comentei a respeito do projeto com ninguém (nem com o Yanko!) exceto o Denilson, porque ele foi a origem da idéia original, tem um bom senso crítico a respeito de jogos, e eu queria ter alguém para ajudar a opinar (como jogador) a respeito de alguns detalhes do gameplay.

No final das contas, não acho que manter contato e mostrar o trabalho em progresso para uma pessoa em especial tenha atrapalhado o objetivo ou ajudado o jogo a ficar pronto em dois dias (corrompendo assim o desafio), dado que não me fez ter MENOS trabalho em momento algum. Apenas serviu para ajudar o jogo a ficar mais divertido, e foi uma ótima experiência em playtesting contínuo 🙂

E enfim, o desafio foi atendido. O gameplay estava totalmente pronto na primeira noite, e o dia seguinte consistiu basicamente de polimento e adição de detalhes como a API do Kongregate e o botão do Twitter.

 

3) A direção de arte. Ok, convenhamos: como artista gráfico, eu sou um ótimo programador. Talvez até conseguisse aprender a ser um artista meia-boca se corresse atrás de material para isso e aprendesse a usar um Photoshop da vida, mas o fato é que nunca o fiz.

Eu queria fazer um jogo sozinho em dois dias,  e a única ferramenta gráfica que eu sabia usar era o Paint do Windows. E, como ele não serve pra muita coisa além disso, a definição da direção de arte se criou na minha frente: o jogo haveria de ser feito em Pixel Art.

Não por acaso, este é o único estilo de arte que eu realmente estudei (informalmente) por algum tempo, analisando sprites de vários jogos antigos e como a colocação cuidadosa de cores e pontos pode fazer nosso cérebro inferir mais informação do que a imagem realmente contém, da forma que o artista quer. Acredito que essa pequena experiência tenha ajudado os gráficos do jogo a irem do “QUE BOSTA LOL PARECE UM RAGECOMIC FEITO NO PAINT POR UM 12YR OLD” para “ei, esse pistão é bem maneiro”.

 

4) A linguagem/biblioteca. O jogo foi feito em Flash (ActionScript 3.0) e, para quem não sabe, usando a biblioteca Flixel e a IDE FlashDevelop. Não por acaso, este é o mesmo ambiente que foi usado pelo Yanko pra fazer o Corrida Presidencial, em cujo desenvolvimento eu também não me envolvi diretamente, então não tinha aprendido nada a respeito dele.

Então me vi deparado com uma escolha: aprender AS3+Flixel e fazer o jogo no que parecia ser um framework bem adequado para o conceito do jogo (afinal o próprio Canabalt foi feito com ela!) ou fazer em Unity, que eu já conhecia, mas seria matar uma formiga com um canhão de íons.

Acabei decidindo, no final, pela Flixel, mesmo tendo em mente que tudo teria que estar pronto em no máximo 2 dias. Hey, era um desafio! Se era pra ser desafiador E uma experiência em aprendizado condensado, melhor aproveitar que já estava na chuva e aprender uma linguagem e framework novos.

Esta escolha se mostrou extremamente certeira, porque a Flixel é realmente muito simples de aprender e usar, e AS3 é bastante parecido com as linguagens com as quais estamos acostumados (C/C++, Java e Javascript). Além disso, todas as ferramentas necessárias são gratuitas independentemente de quaisquer fatores–coisa que a Unity, por exemplo, não é–e inclusive para publicação em várias plataformas: em especial Android (que já tem uma versão web otimizada para ele) e iOS, que estão nos planos para um futuro próximo 😉

Considerando que com Unity a publicação para mobile custaria $1500 pela Unity Pro e mais $1500 para cada plataforma… é, financeiramente foi uma ótima escolha!

Ilustração artística da relação entre os custos de publicação com Flixel e Unity. Sim, foi feita no Paint.

 

5) A data de lançamento. Não sei bem explicar essa, então vai ser rápida. Mas foi simplesmente muito bom lançar o jogo numa terça-feira! Não sei se porque todo mundo tava entediado com o trabalho e queria um motivo pra passar o tempo jogando algo novo na véspera do feriado, mas a popularidade do jogo aumentou bem rápido, dentro e fora dos nossos círculos sociais.

 

Bom, como eu disse lá em cima, o desenvolvimento do jogo no fim das contas foi um sucesso, então não acho que nenhuma decisão tenha sido, em si, errada e não me arrependo de nenhuma delas. Mas vou comentar um pouco sobre algumas decisões que causaram pequenos problemas, por motivos na maioria das vezes fora do meu controle.

 

O que deu errado

1) A linguagem/biblioteca. Pois é, irônico repetir um ponto que era muito forte na lista do que deu certo. Mas a maior fonte de problemas durante o desenvolvimento foi a Flixel. Explico: ela é realmente boa, tem exatamente a complexidade necessária, e uma API simples e direto ao ponto.

O problema é que essa API muda o tempo todo.

Observe que a API da Flixel é totalmente instável, e a cada versão classes novas são adicionadas, métodos são modificados, e o pior–muitos métodos e classes simplesmente são removidos (sim, REMOVIDOS, não só deprecados), sem nenhuma observação na documentação.

A consequência óbvia disso é que A Internet não sabe mexer com Flixel: metade dos recursos que se encontra (além da documentação oficial) sabe mexer apenas com a versão passada da biblioteca. Mesmo no próprio fórum da Flixel havia muita informação conflitante, e eu cheguei a achar que estava ficando louco por não encontrar na minha distribuição uma classe que o mundo parecia concordar que existia (para constar, era a FlxKong, para acessar a API do Kongregate).

 

2) A integração com a API do Kongregate. Uma das coisas que eu queria desde o momento zero era publicar o jogo no Kongregate, e integrar com a API de stats de lá. Mais pra ser fácil de gerenciar o jogo, já que eles já têm uma plataforma pronta, e porque eles também te dão uns trocados em propaganda, o que nunca é demais 🙂 Além disso, seu jogo tem que implementar a API de stats para ter chance de ganhar badges um dia, o que faz com que ele seja muito mais jogado.

Bom, isso causou dois problemas graves: um durante o desenvolvimento, e um no dia do lançamento, com o jogo já publicado.

O primeiro foi a grande dificuldade para descobrir como usar a API do Kong com Flixel. Os exemplos na documentação para desenvolvedor do Kong supõem que você está usando Flash direto, e a Flixel encapsula a maioria das coisas, inclusive algumas que eu teria que acessar. Enquanto isso, teoricamente existia uma classe na Flixel, a FlxKong, que faria a comunicação, mas aparentemente essa classe foi descontinuada. Acabei encontrando um snippet de código pronto para fazer essa comunicação–mas isso demorou umas boas horas.

O segundo problema foi que o backend de stats do Kongregate aparentemente estava meio instável no dia em que o jogo foi lançado (pelo que eu pude testar em outros jogos), então muita gente sofreu atrasos grandes para ter suas pontuações computadas, e muitas simplesmente foram perdidas. Tudo voltou ao normal no dia seguinte, sem mudar nada no meu código, então suponho que o problema nada tinha a ver comigo. Ainda assim, isso chateou algumas pessoas, e imagino que posa ter influenciado negativamente no rating do jogo.

 

3) O botão do Twitter. Não, sério. Eu perdi umas quatro horas só pra fazer esse maldito botão funcionar direito. Sempre em algum momento alguém parecia estar corrompendo a URL da requisição pro Twitter–ou eu mesmo, ou o Flash, ou o Kong, ou o navegador, ou o próprio Twitter–e o twit chegava lá corrompido, com partes da URL no texto e todo tipo de bizarrice.

No fim das contas a página do jogo no Kong já tinha um botão de Twitter, então eu acho que essa poderia ser uma dor de cabeça evitável–mesmo se quisesse ter um botão mais visível, acho que eu poderia usar magias de JavaScript pra simular um clique no botão da página–mas eu queria que o Score da pessoa aparecesse no Twitter junto. Acabei sendo cabeça-dura com isso naquele espírito inicial de aprendizado, mas foi bem desagradável no fim das contas!

 

Enfim, acho que é isso. Poderia continuar falando mais sobre pequenos acertos e pequenos problemas, mas aí ninguém leria esse post (que já está gigante!). Se alguém tiver alguma dúvida ou curiosidade sobre qualquer parte do desenvolvimento que eu não comentei a respeito aqui, fique à vontade para deixar um comentário ou me mandar uma mensagem no GTalk/GMail/Facebook/Twitter 🙂

· · · ·

Não, não morremos, nem desistimos dessa coisa engraçada de fazer joguinhos. Estamos sumidos justamente pelo contrário!

Quem não quiser saber nada sobre UX, blind tests, a importância de tutoriais e de saber pesar protótipos, mas quer saber sobre por onde nós andamos e novidades sobre o GameCraft, é só pular tudo isso aqui e ir pro final do post! Mas eu realmente recomendo não ignorar esses pontos, porque é justamente ignorá-los que nos leva a esse post. Se você quiser ver só a parte especificamente sobre isso e ignorar os resultados da pesquisa sobre o Corrida Presidencial, é só pular para o item “Moral da história”. Se você quiser garantir a segurança do Cristal Azulado e enfrentar o hobgoblin, pule para a página 119.

 

Ahem.

Corrida Presidencial de novo?

Mais ou menos, é! Sabendo que o SBGames 2011 adiou a data para envio de jogos indie, e eu já tendo um tempo livre (porque agora sou BACHAREL amigues, w00t!), resolvi dar uma ajeitada no CP e mandá-lo como Art-Game pro festival. Pulando a discussão sobre o “estilo art-game”, acho que ele se classificaria melhor como isso do que como um jogo “normal”. Por que? Porque ele é um péssimo jogo, mas talvez seja uma boa crítica, como já visto no meu post original a respeito dele.

Mas por que voltar no assunto se já foi provado que o gameplay é falho? Porque eu aprendi um bocado com isso, e porque eu tenho dados pra citar!

Pesquisas de opinião

Como desde o início eu já desconfiava do fail do gameplay, queria saber se as pessoas aturariam o jogo pela mensagem. E pra isso, fiz um pequeno poll, disponibilizado na própria página do jogo. Não que eu tenha tido centenas de respostas, mas pelo menos, dá pra se ter uma idéia de algumas coisas.

A pesquisa tinha poucas perguntas, era direta, não identificada e nenhuma resposta era obrigatória. Na minha experiência, se você quer user input, o usuário está te fazendo um favor, então faça o possível para não encher o saco dele e garantir que ele não vá bater o olho e decidir que a ajuda que você está pedindo não é mais importante que a preguiça que ele sente ao olhar pro seu questionário.

Vamos aos dados:

1- Você achou o jogo divertido?


  • 28% Sim, bastante! Joguei mais de uma vez e jogaria de novo!
  • 36% Sim, mas não jogaria de novo. As vezes que eu joguei já foram o suficiente.
  • 20% Joguei algumas vezes, mas não achei nada demais.
  • 8% Experimentei o gameplay mas não tive vontade de jogar mais de uma vez.
  • 4% Não gostei nem um pouco.

Primeira coisa que me impressionou: mais de 50% das respostas foram positivas, e menos de 15% negativas. Como as pessoas não precisavam se identificar, isso diminuía bastante a chance de alguém dar um pity score positivo.

2- Você recomendaria o jogo para outras pessoas?

  • 16% Sim! Já inclusive usei o botão de compartilhar via twitter/facebook!
  • 40% Achei a idéia legal, se lembrar de alguém que talvez goste vou falar a respeito.
  • 32% Acho que vale pela crítica, mas não pelo jogo em si.
  • 8% Não achei bom o suficiente pra isso.

O que é interessante desse gráfico: muita gente pegou a noção de que a crítica era mais importante que o jogo em si. Em retrocesso, dá pra ver que as respostas possíveis acabam sendo meio ambíguas em relação à pergunta, mas por um lado isso é bom: se o cara deixou de marcar a última opção pra marcar a que dizia que o jogo valia a pena pela crítica e não pelo jogo em si, você vê que é possível passar a mensagem mesmo o jogador não achando a coisa mais legal do mundo jogar. E isso é um WIN, dado o intuito.

3- Quais os fatores que mais lhe agradaram?


  • 81% A temática. Me identifiquei com a crítica e quis ver até onde ela ia.
  • 81% O humor. Gostei da abordagem dada ao jogo e aos personagens.
  • 19% O gameplay em si, achei ele interessante/desafiador.
  • 33% Os achievements. Me incentivaram a jogar mais de uma vez.
  • 29% A opção de trocar pontos por perfis e vidas extras
  • 14% A música
  • 14% Os gráficos

Gostaria de agradecer profundamente a todas as 3 pessoas que gostaram dos gráficos e das músicas, eu juro que me esforcei! Ok, pra ser 100% sincero, poderia ter me esforçado mais nas músicas, elas irritam até a mim depois da milésima vez tocando e, acreditem, quem fez os playtests (eu) foi quem mais sofreu com a falta de temas diferentes nela.

Mas mais uma vez vemos que o fator principal, que era a crítica, foi passado.  E as opções 4 e 5 me provaram que, de fato, meta-jogo pode complementar o gameplay. Teve gente inclusive que tentou pegar todos os achievements, mesmo um deles sendo  praticamente impossível (foi sem querer!), chegando a comprar 81 (!!!) vidas. Whoa!

4- O que fez o jogo ser pior pra você?


  • 22% Os gráficos
  • 22% A música
  • 48% O próprio gameplay
  • 4% O humor
  • 52% Dificuldade em “pegar o jeito”
  • 30% Os menus
  • 9% Bugs
  • 9% Outros

Aqui um dado interessante: só uma pessoa falou mal do humor, coincidentemente sendo a mesma pessoa que não gostou nem um pouco. Não sei se é mau-humor, alguém dando todas as respostas negativas de propósito, uma relação de causa e efeito… ou se era um candidato à presidência!

De qualquer maneira, respostas esperadas aqui também: o maior problema do jogo era o próprio gameplay. Mais sobre isso daqui a pouco.

6- Outros: justificativa

Quem marcou “outros” na resposta anterior poderia especificar por extenso. Alguns inputs importantes: os menus eram odiosos. Uma hora era mouse, outra hora teclado… isso incomodava. Não tinha motivo real para ser uma mistura semi-aleatória dos dois. Diria até que o motivo principal é ser um saco trabalhar com botões no Flixel e eu só ter percebido isso mais pro final da criação do jogo! Algum tarado (Deus o abençoe) de fato tentou alcançar todos os achievements, inclusive o que você tinha que alcançar 490 milhões de votos, e notou que era impossível porque você perdia pontos demais quando batia após um determinado score.

7- O que você mais gostaria que fosse adicionado ao jogo?


  • 8% Poder twittar meus achievements e pontuações
  • 20% Gráficos melhores
  • 36% Maior variedade de perguntas
  • 20% Uma versão mobile!

Mais gente do que eu esperava quis uma versão mobile! E apesar de algumas pessoas terem jogado de novo pelos achievements, nem tantas ligariam para poder twittá-los. Dá pra ver que a maioria das pessoas passou um tempo considerável com o jogo porque optaram por maior variedade de perguntas (ou isso ou tem algo de errado com meu rand()!)

No fim as pessoas tinham espaço para fazer quaisquer comentários. Um comentou algo no-brainer, mas que por passar tanto tempo olhando pro jogo nunca me ocorreu: “Na lojinha, deveria listar o nome de cada grupo abaixo da imagem, sem precisar clicar” – verdade! O outro deu uma idéia legal, que aumentaria a cara de crítica do jogo: “Se as perguntas forem relacionadas de discursos da mídia, seria legal colocar as fontes, como revistas e jornais nos quais o candidato se mostrou pro ou contra detemrinado assunto!“. E o último era do Tinnus, dizendo “Oi, eu sou o Tinnus. Leve isso em conta“. Eu levei amigue, obrigado!

Moral da história: por que valeu a pena fazer o Corrida Presidencial

Ponto importante 1: eu pus em prática, pela primeira vez, aquela coisa de abandonar um protótipo porque o gameplay dele simplesmente não dá certo. Eu senti isso e o público me respondeu do jeito que eu esperava, ou seja, é um bom sanity check do seu faro pra gamedesign.

Ponto importante 2: o quão importante é ver pessoas jogando o seu jogo. Como eu morei no meu quarto durante todo o desenvolvimento do CP e nunca vi ninguém jogando, não via o quão excruciante era, pra um jogador desavisado, pegar o jogo sem uma ajuda. E eu, pra evitar isso fiz o que? Coloquei um botão “Instruções” antes do “Novo Jogo” e escrevi por extenso “leia as instruções primeiro!”. E será que adiantou?

Pfshshhh hahahahaha!

Pfshshhh hahahahaha!

Obviamente que não. A enorme maioria das pessoas que vão cair de pára-quedas num jogo não vão se dar ao trabalho de ler instruções. Uma faceta importantíssima desse erro é a seguinte: se é pra ser um jogo de crítica, e você quer que a crítica atinja o máximo possível de pessoas, ele tem que ser fácil pra qualquer um jogar. E isso, com certeza ele não era, especialmente sem ler as instruções.

E mesmo que elas lessem, as instruções eram uma porcaria.

Ponto importante 3: a importância de boas instruções. Só no dia que eu VI alguém jogando o jogo e se perdendo completamente em como fazer as coisas que eu entendi o quanto ele estava lacking. E foi por isso que eu só re-enviei pro SBGames com algumas alterações: agora, no início do jogo, independente de quantas vezes você já jogou, sempre aparece um box dizendo as teclas e o que elas fazem. E, quando é pra responder uma pergunta, tem um “RESPONDA!” piscando na tela. Isso foi posto de um jeito que (teoricamente) não incomoda o cara que já sabe jogar, mas ajuda o cara que não leu as instruções.

E sobre as instruções serem uma porcaria? Bom, dessa vez eu fiz um tutorial decente, onde as pessoas são guiadas a pegar o timing da resposta. Assim, eu acho, o processo vai ficar menos frustrante. No mais, alterei os menus para serem só pelo teclado, adicionei mais perguntas e consertei o bug dos achievements (que agora são twittáveis), graças às sugestões dadas.

Tinha um artigo EXCELENTE sobre a importância de tutoriais em jogos, que apareceu no @devoidgames há um bom tempo atrás, mas eu simplesmente… perdi. Então aqui tem uma análise bem interessante sobre a importância deles em social games, no Gamasutra!

Mas e o gameplay?

A moral original ainda vale: You can’t polish a turd! O gameplay está exatamente do mesmo jeito por um simples motivo: ele não tem conserto! Então é melhor me contentar com a crítica estar (aparentemente) funcionando, e focar meus esforços em outros projetos.

Não funciona.

Não funciona.

Ufa!

Finalmentes: por onde andamos (Pt. N)

Primeiramente, ontopic: você pode conferir a nova versão do Corrida Presidencial AQUI!

Sobre o GameCraft: aparentemente foi um sucesso! Deu muito trabalho, mas as pessoas gostaram, which is awesome. E tem muita gente perguntando se vai ter outro ano que vem, which is double the awesome!

E aparentemente, o Brasil Game Show convidou (ou pelo menos sondou) alguns dos palestrantes que a gente chamou pra conferência deles, o que indica que eu selecionei bem quem chamar!

Uma das coisas que andamos fazendo: editando os vídeos do evento! Em breve vamos disponibilizar tudo no ar, gratuitamente, para quem estiver interessado. Isso não deve demorar muito, já que o site já está pronto, falta só meu computador colaborar e parar de me dar BSODs no meio de renders que duram 5 horas ¬¬

Stay tuned to @devoidgames e @gamecraftrio!

· · · · ·

Ressuscitando um trocadilho infame, esse post é pra explicar o que diabos é o Corrida Presidencial. Se você ainda não jogou, clique no link anterior e vá jogar! É melhor ler a respeito só depois de ter visto!

Quando entrei de férias do último período – infelizmente, último as in “o anterior“, e não o “derradeiro“; ao contrário da calúnia que o Tinnus contou no último post, eu infelizmente só me formo no meio do ano, apesar de já começar o mestrado junto com ele esse semestre, sendo a minha futura tese motivo de vários posts que vão vir,  se tudo der certo – resolvi que devia aproveitar o tempo pra aprender o máximo possível sobre plataformas que nunca tinha programado. As minhas metas: Unity3d (que, apesar do Brasil Game Jam, não tive tanto contato direto com ela), Android e Flash.

Como toda boa promessa de ano novo, as coisas não foram bem como eu planejava. Mas nesse caso, não foi só por desleixo, mas sim porque estava enrolado tentando arrumar um financiamento pra deV( )id tomar mais formas… formais (que em breve talvez vire post aqui também). Além disso, teve o projeto final, que terminamos em tempo record e assim que defendermos devemos liberar o texto por aqui. Adicione aí o GameRama e… bom, as famigeradas promoções de fim de ano do Steam (engoli Lara Croft & The Guardian of Light e Mafia II e recomendo fortemente os dois!).

Enfim, um belo dia, resolvi parar de procastinar. Baixei o Flixel e o FlashDevelop, segui as primeiras instruções do FlashGameDojo e BAM, estava tudo pronto pra começar. E eu já tinha uma idéia do que fazer.

As eleições

Um belo dia de 2010, em plenas eleições presidenciais, estava no laboratório conversando com o Tinnus, o prof. Adriano (nosso orientador) e os amigues do time do Brasil Game Jam.  O meu comentário recorrente durante todas as eleições foi que, apesar de isso ser normal em qualquer eleição desde sempre, as mudanças radicais de opinião dos candidatos ia além dos limites de qualquer tipo de vergonha na cara. Independentemente das preferências políticas de cada um, acho que isso deveria ter sido bem notado e, pra minha surpresa, não foi tanto. “Política é assim!” – mas não deveria, na minha opinião.

Os candidatos “favoritos” advogaram contra e a favor de tudo. O problema é que faziam isso ao mesmo tempo, nos mesmos assuntos, dependendo de a quem estivessem falando. São números, é marketing e, infelizmente, o público alvo deles é uma nação inteira com toda a sua variedade, e não um nicho específico com quem se pode exacerbar um ponto de vista. E aí, quando os números mudam, talvez a postura tenha que mudar também.

Uma mudança de postura, pra mim, não é nada mais que natural, afinal de contas, é um meio para um fim; ninguém é eleito sem agradar ninguém e política nunca foi sobre o melhor para todos – se fosse o melhor para todos, sem exceção, não precisaria de política. O que me incomodou era que a mudança de postura era mais profunda, era uma mudança (aparente) de opinião. E mesmo não sendo a mãe do Paulinho, isso me deixou bem impressionado, porque nunca tinha sido tão cara de pau.

O Jogo

Como muita gente sabe, eu sou fan de Canabalt. O Adam Atomic causou uma pequena revolução em jogos de flash porque, depois dele, a quantidade de one button games que apareceu (e alguns deles eram realmente excelentes!) foi impressionante, a coisa ganhou

15 minutos depois...

15 minutos depois...

ahem – mais atenção.  E mais genial ainda foi o pequeno twist numa versão alternativa do jogo, que te ensinava a digitar sem olhar, porque se você não apertasse a tecla certa na hora certa… morte certa! Durante a tal discussão acima, eu me lembrei disso e disse

Seria legal fazer um jogo tipo Canabalt, mas em vez de ser um cara num prédio, ele é um candidato à presidência. Aí aparece uma pergunta e,  dependendo de quem aparecer, ele tem que responder de um jeito ou de outro, senão cai no buraco!” risos risos.

Mas pera aí. Realmente. Era isso. Era assim que eu me sentia em relação às eleições! Eu deveria fazer esse jogo! E eu fiz.

No Corrida Presidencial, você é um candidato à presidência de um país fictício. Você corre numa pista e tem que pular obstáculos mas, para pular, você precisa responder corretamente a sua opinião sobre uma questão. “Espera aí, responder corretamente minha opinião? Se é minha opinião não tem o que errar ou acertar!” – não se você é um candidato a presidência! Sua resposta só é certa se te render mais votos, logo, você tem que responder de acordo com os eleitores que estão te vendo naquela hora.

O timing

Nossa, muito legal, mas por que você não lançou isso na época das eleições, pra ser mais contextualizado?

Por três motivos

  1. Eu tinha coisa pra caceta pra fazer. Avaliação e Desempenho é uma das matérias mais cabeludas do universo, e o tempo que sobrava pra qualquer coisa era bem pequeno;
  2. Eu acho meio [insira palavra negativa aqui] se aproveitar de uma situação polêmica qualquer pra fazer um jogo meia boca pra cair na boca do povo. É tipo roubar cuecas, você caiu na boca do povo, parabéns… e agora? Houve casos de gente que foi contratada pra fazer jogos com foco em política pelos candidatos e, obviamente, esses não caem nem de perto nessa classificação – era gente sendo paga por um serviço, e viver de gamedev no Brasil não é nada fácil, então pelo contrário, fico feliz que tenham conseguido essa oportunidade. Inclusive, tem jogos “oportunistas” desses que até dão resultado, mas normalmente, são só tosqueiras.
  3. Brasileiro tem a memória curta. Eu lembro disso tudo porque me marcou de maneira negativa, e porque germinou essa idéia na minha cabeça. Se não tivesse sido por isso, provavelmente teria esquecido como a maioria das pessoas esqueceu. E talvez lançar isso agora ajude não só a lembrar, mas também que pessoas considerem com mais calma e de cabeça fria o que não consideraram nas eleições que (isso provavelmente todo mundo lembra) viraram briga de torcida de futebol. My daddy beats your daddy!

O 1 foi o causador, o 2 o justificador e o 3 foi uma das coisas que eu percebi com o processo.

Mas o seu jogo também é meia boca!

Aí é que entra uma das outras descobertas associadas. Sim, ele pode ser. Mas eu precisava fazer o jogo. Tem uma expressão que muita gente usa, especialmente em relação a música/arte em geral que é “i just had to get it out of my system“. Às vezes você tem uma idéia e a ânsia de simplesmente fazer aquilo é justificativa o suficiente pra fazer. E é aí que eu percebi que jogos podem sim, ser arte. Arte é isso, é algo que você precisa fazer, você precisa ver pronto, algo que te incomoda de ter na cabeça e não materializar. Por outro lado, isso não quer dizer nem um pouco que eu concorde com baboseiras artsy fartsy que rolam por aí: jogos têm que ser divertidos, ponto. Se não é divertido, ou é um jogo ruim, ou não é um jogo. Mas não tem problema nenhum em não ser um jogo! Só não fique falando que o futuro da maturidade do meio deve ser um tipo esquisito de interactive fiction, exclusivamente. You dick!

Ao mesmo tempo, cada vez mais eu vejo que não tem problema ser um jogo ruim, se for pra passar uma determinada experiência, e aquilo seja o que o público sendo atingido gosta. Por isso, não anuncie outra coisa. Seja honesto com o seu público. Se o seu jogo é não tão legal, mas tem uma boa idéia por trás, faça como eu: fale! Entao aí está: o Corrida Presidencial não é tão legal, mas ele passa uma mensagem que eu gostaria de passar. Nas eleições passadas, muita gente escreveu em blogs, muita gente xingou muito no twitter… e eu? Eu fiz um jogo. E de quebra aprendi a mexer numa plataforma completamente nova pra mim. Tem desvantagens? Acho que não.

Não seja tão duro consigo mesmo, amigue!

Não seja tão duro consigo mesmo, amigue! Você tem seus talentos!

Decisões

Apesar de tudo, queria que o jogo não fizesse apologia a favor ou contra nenhum candidato. Por isso, ele se passa num país completamente desconhecido, cujas cores da bandeira não são definidas, os monumentos são fictícios e onde os cadidatos que você pode escolher são completamente imaginários: João Guerra e Vilma Nassif. Qualquer semelhança é puramente coincidência.

Tem um candidato no jogo, no entanto, que tem muitas referências literais; e eu não vou dizer quem é, senão dá spoiler. Mas se você destravar ele, ganha um achievement! E esse candidato era o único dos três que não merecia estar ali, por um motivo básico: ele nunca travestiu suas opiniões pra ganhar votos. Então a presença dele é mais uma homenagem que qualquer outra coisa. E a vantagem é que você tem N-eas vidas com ele, o que te dá a chance de jogar como você jogaria na vida real: mentir pra ganhar mais votos ou fazer uma longa corrida mantendo as suas opiniões verdadeiras do início até o fim, mesmo que isso signifique ganhar menos votos. Obviamente quem só for jogar 5 minutinhos e falar “heh, que bosta” não vai ter saco de ler até aqui, mas hey, had to get it out of my system!

Finito!

Como eu fiz tudo sozinho (obviamente com ajuda de opiniões e playtests de todos que tão lá nos créditos e outros, mais o Eddy Seabra que me deu umas boas dicas pra deixar a landing page do jogo mais bonitinha), o tempo que eu investi foi um bocado maior que o que se investe num jogo de fim de semana. Sempre se deve tentar fazer o melhor possível dentro do tempo que você tem; o mais difícil é pesar essas duas coisas. Eu cheguei num ponto em que o jogo estava bom-o-suficiente porque 1) já tinha tudo que eu queria passar; 2) era mais divertido do que eu esperava que ficasse e 3) tava na hora de largar o osso e partir pro próximo projeto. Então é isso, embora longe de perfeito, tentei deixar fechadinho e polido dentro do deadline que eu me impus mas, obviamente, ficarei feliz com qualquer sugestão ou bug report que vocês possam colocar aqui nos comentários! Então como sempre, agradeço a todos que jogaram e que leram até aqui. Espero que o jogo e o post sirvam pra pensar uns 5 minutinhos sobre qualquer um dos assuntos, e que tenham sido pelo menos levemente divertidos!

Pra quem quiser, seria de grande ajuda responderem a 4 perguntinhas a respeito do jogo! Nenhuma delas é obrigatória e você não precisa se identificar/dar e-mail nem nada! Basta clicar aqui!

Assim que der, vou fazer alguns posts aqui no blog sobre como usar o Flixel – teve muita coisa boba que eu demorei um bocado pra pegar, então acho que pode ajudar alguém! Pensei até em divulgar o fonte também, mas boy oh boy, depois da semana final em modo XGH, ele virou uma macarronada só que ia atrapalhar mais que ajudar – e a sensação de colocar o código aqui seria a mesma de postar uma foto nu na internet. Sim, nu, na internet. Agora que você está desinteressado no source, fique de olho no twitter pros posts sobre Flash!

Nu. Na internet. Sim.

Nu. Na internet. Sim.

Off I go!

· · · · · · ·

Feb/11

26

Gamerama 2011

Mortos? Não. Desaparecidos? Um pouco. Parados? Nunca!

A verdade é que estamos sempre preparando algo por debaixo dos panos. Bom, pelo menos desde o fim do período! A boa notícia é que o nosso “sumiço de fim de período” vai terminar porque, bem, a graduação terminou, mas a má notícia é que isso envolve ocupar as férias terminando sua monografia de Projeto Final em vez de fazer joguinhos. Por outro lado, o tal Projeto Final é um framework para jogos e um protótipo de um jogo 3D velho conhecido de todos nós, o que torna a coisa toda bem mais agradável!

Ops, eu falei que ficamos apenas escrevendo uma monografia em vez de fazer joguinhos? OK, é mentira. O Yanko estava fazendo joguinhos durante boa parte do tempo em que deveria estar escrevendo, e tal projeto secreto será divulgado ainda durante este final de semana se a meteorologia contribuir a nosso favor. Fiquem ligados!

Mas em especial, além disso, durante a semana passada aconteceu no prédio da Fundação Getúlio Vargas (FGV), em Botafogo, Rio de Janeiro, mais uma edição do Gamerama! Como não podemos perder uma oportunidade de acordar cedo e pegar duas horas de engarrafamento para fazer joguinhos e novos contatos, obviamente nós da deV()id estávamos lá presentes, firmes e fortes. Como nosso amigo Guilherme Xavier fez o grande favor de descrever extensivamente a estrutura do evento ao longo dos quatro dias (terça a sexta) no blog oficial, vou dedicar este post a contar com maiores detalhes a nossa experiência pessoal e as regras dos jogos (loucos) que desenvolvemos.

O que, você ainda não clicou no link para o blog oficial para conhecer o evento? Tudo bem, vai lá, eu espero. Enquanto isso, veja esta foto que tiramos no fim do último dia (e eu kibei do blog oficial, então você poderá encontrá-la lá também):

Equipe final do Gamerama Workshock: Tabuleiro Botafogo

Pros realmente preguiçosos: foi um evento de 4 dias, de terça a sexta-feira. Os três primeiros dias foram divididos em duas partes: uma de teoria, com uma palestra sobre Game Design proferida pelo Guilherme, e outra de prática, onde a turma era dividida em grupos e cada grupo deveria desenvolver o design de um jogo: analógico nos dois primeiros dias, e eletrônico no terceiro. O último dia foi inteiramente dedicado à finalização da implementação do protótipo do jogo eletrônico (que na prática foi iniciada ao longo do resto do terceiro dia, em casa mesmo).

Nosso grupo inicial era formado por mim (Tinnus), Yanko e o Dudu, um designer e ilustrador muito gente boa que contribuiu enormemente nas discussões de design e principalmente na confecção da arte final do jogo eletrônico. Recomendo fortemente que todos conheçam seu trabalho visitando o Arte Cinco Produções Artísticas.

Ah, e você não pode entrar na FGV com qualquer peça de roupa que mostre as pernas. A não ser que seja uma mulher. Não que eu reclame de mulheres poderem mostrar as pernas, mas acho que um calor de 40 graus no Rio de Janeiro deveria ser suficiente para deixarem homens mostrarem as canelas também =P

Pois bem, no primeiro dia deveríamos desenvolver um jogo que utilizasse apenas dados comuns, com um número de cada entre 1 e 6 (ou um D6, se você for do tipo maníaco por RPG). Além disso, todos os jogos tinham um tema e algumas restrições conceituais que deveriam ser seguidas, e não poderiam depender exclusivamente de sorte. Obviamente eu não lembro quais eram as restrições do primeiro dia, mas o que conseguimos depois de uma hora gastando massa cinzenta foi um jogo chamado “Termo-Pôker (com dados)”. Sim, soa estranho, e era mesmo, mas não reclame, o jogo só poderia usar dados! Resumindo bastante, a mecânica consistia em ter um dado que funciona como “termostato”, mostrando a temperatura atual da “sala”. Sendo um jogo para dois jogadores, um jogador quer esfriá-la e o outro, esquentá-la. Para isso, eles revezavam dois papéis, onde um jogava um segundo dado enquanto o outro posicionava um terceiro dado de certa maneira, oculto do primeiro jogador, que poderia então optar por jogar seu dado novamente ou não. O resultado da rodada dependia da soma dos dois valores, o que introduzia um fator de “blefe” ao jogo. Acabou não sendo lá muito divertido, mas é incrível o que descobrimos ser possível conseguir com um conjunto tão restrito de interfaces a serem trabalhadas.

Nossas ferramentas: dados coloridos (com faces opcionalmente cobertas por fita amarela para ajudar a visualizá-los de um jeito diferente)

O segundo dia exigiu o desenvolvimento de um jogo de cartas. Fácil, certo? Exceto que, além de ainda existirem restrições conceituais, cada grupo só poderia utilizar um certo subconjunto do baralho (uma outra discussão é se isso foi feito porque o Guilherme só tinha dois baralhos, mas deixa pra lá). Bom, nós só tínhamos à nossa disposição as figuras de um baralho, ou seja, 4 valetes, 4 damas, 4 reis e 2 coringas. E o tema do jogo era “música”. Resultado: cada jogador (até 3) começa com 3 cartas na mão. O restante é um monte de compra. O objetivo é ter um valete, uma dama e um rei da mesma cor na mão. Para isso, em cada rodada um jogador pode comprar uma carta do monte e jogar outra de volta para ele, ou pegar (às cegas) uma carta da mão de outro jogador e permitir que ele faça o mesmo para manter a quantidade de cartas em amas as mãos. Os coringas, neste caso, só atrapalham.

“Mas onde está a música?”, eu ouço você perguntar. Pois então, a música está em que, no começo do jogo e após cada jogada, o jogador deverá cantar sua prediominância. A predominância é definida como a carta que mais aparece na mão do jogador (ou, caso ele tenha três figuras diferentes que não sejam da mesma cor, a carta de cor diferente). Como, naturalmente, reis são barítonos, valetes são tenores, e damas são sopranos, a definição de “cantar” nesse contexto é pronunciar uma nota “mí” no tom correspondente a cada tipo de carta: respectivamente, baixo, médio e agudo. Os coringas neste momento podem ser considerados como qualquer carta, possibilitando a manipulação da predominância divulgada. Além disso, quando tiver uma mão vencedora, o jogador deverá abaixar suas cartas para a mesa, cantando “Ó-PERÁ!”, se suas cartas forem pretas, ou “FÍ-GARO!”, se forem vermelhas.

Uma regra que foi desenvolvida para jogos mais emocionantes, e pouco recomendada para aqueles que possues restrições médicas contra fortes emoções, é a “morte súbita”: se entre o momento que um jogador começou a cantar a palavra da vitória e o momento em que suas cartas tocam a mesa, outro jogador o acertar (sim, fisicamente!) com uma carta de coringa, o jogador não mais é vencedor; ele é obrigado a pegar o coringa para sua mão, e o jogador que arremesou o coringa toma uma carta da mão do ex-vencedor para sua própria. Acabou que esta regra se tornou a mais divertida, gerando toda uma mecânica de blefe no final da partida.

Três jogadores experientes de "Ó-PERÁ!". O uniforme oficial para se jogar é camisa branca e calça jeans. Como foi um jogo desenvolvido na FGV, você não pode jogar de bermuda.

Por último, mas não menos importante: o jogo eletrônico! Kibando a descrição do nosso jogo do blog oficial…

Darwincraft: percorra as cavernas misteriosas em um carrinho de mineração, evoluindo e involuindo  mineradores, cujo trabalho em conjunto é a forma de avançar. Um jogo de ritmo, transporte e evolução.”

E o tema era gangorra. Em detalhes: você (sozinho ou com a ajuda de um amigo) controla um carrinho de mineração, daqueles que mexe uma alavanca-gangorra pra andar no trilho, populado inicialmente por dois macaquinhos simpáticos. Pontos são ganhos caminhando para frente, em uma mina aparentemente infinita. Porém, macacos se cansam rápido e gastam um pouco de energia a cada vez que movem o carrinho; para resolver este problema, eles devem pegar as bananas que caem do teto regularmente. Além disso, ocasionalmente apareceriam algumas caixas no caminho, que o jogador poderia escolher pegar, ou não, e colocar no seu carrinho-reboque. Uma caixa faz com que seus pontos aumentem mais rapidamente e que seus macaquinhos evoluam! Primeiro para homens das cavernas, e depois para homens modernos. Porém, homens evoluídos destruíram o meio ambiente (apesar de ainda gostarem de banana), fazendo com que caiam menos bananas quanto mais evoluído você está; por isso a qualquer momento o jogador pode optar por involuir seus personagens, com uma penalidade no total de pontos atual. Se sua energia termina e você fica estagnado no meio do percurso, você perde.

Para este projeto nosso grupo aumentou de 3 para 5 pessoas. Ainda assim, eu era o único programador. Como eu tenho um sistema de prioridades meio descalibrado, passei quase a quinta-feira inteira desenvolvendo o código que faria a pista infinita aleatória funcionar, e boa parte do resto do gameplay teve que ser adicionado no dia seguinte. Para piorar, eu não consegui ir no dia da definição das regras, então cheguei lá na sexta ainda sem saber de alguns detalhes. O lado da arte também não tinha andado muito na véspera, o que deixou o resto do grupo ocupado cuidando disso. Resultado: graças em parte aos gráficos-padrão do Game Maker, as bananas viraram bolhas de corações, as caixas viraram bolhas de energia (que passaram também a cair do teto), e a idéia do carrinho-reboque foi pro espaço. Mas hey, a mecânica do jogo funciona (e o efeito da evolução/involução ficou até bem legal)!

DarwinCraft: porque tudo que tem "Craft" no nome dá certo.

Para quem quiser jogar: link aqui. Desculpem o tamanho (17MB), mas é o que acontece quando você não pode usar o comando “rotate sprite” (que só tem no Game Maker Pro) e manda ele gerar 36 rotações de todas as sprites na mão =P

Controles: A e Z movem o personagem da esquerda para cima e para baixo, respectivamente, e as setas direcionais para cima e para baixo fazem o equivalente com o da direita. Para que um impulso seja dado de fato no carrinho, é preciso que ambos os personagens se movam ao mesmo tempo de acordo com a posição atual da gangorra.

Finalizando, conclusões gerais sobre o evento: é realmente muito interessante e abre sua cabeça pra um monte de coisas principalmente na área de Game Design. Além disso, treina artistas e programadores não só a trabalharem rápido, mas também a aprenderem a se comunicar e colaborar com eficiência em prol de um objetivo comum a curtíssimo prazo. Vale muito a pena para quem gosta disso, seja designer, artista, ou programador, e é sempre muito legal conheer gente nova (ou reencontrar amigos antigos).

Outras conclusões paralelas: a promoção de duas pizzas pelo preço de uma na terça-feira do Domino’s realmente vale a pena, e é REALMENTE impossível estacionar em botafogo durante a semana pela manhã.

· · · ·

Sit in the Mountain!

Sit in the Mountain!

Post-muito-mortem do Brasil Game Jam. O post infelizmente vai ser mais corrido do que eu gostaria pelo fogo cruzado de fim de período (e porque eu gastei todo o tempo que eu tinha editando os vídeos). Isso, obviamente, não quer dizer que vai ser curto, porque eu vou intercalar o texto com os nossos vlogs ;D

Introdução:

Pra quem não sabe, o Brasil Game Show sediou uma Game Jam, onde 10 times de universitários de todo o Brasil tinham que criar um jogo em 40 horas, com um tema sorteado na hora, usando a Unity3d. Na mesma hora fui inscrever um time da deV( )id, mas, infelizmente, o Tinnus não pode ir. Assim, agreguei duas pessoas oficialmente para o evento: Felipe “Mascote” Pedrosa e Renato “Lond” Cerqueira, dois caras que estudam com a gente e também têm essa idéia maluca de *cof*tentar tirar leite de pedra*cof**ahem* trabalhar com games.

À esquerda, o Lond, e à direita, Mascote

À esquerda, Lond, e à direita, Mascote

Chegamos ao Sulamérica (onde aconteceria a feira e a jam) bem adiantados, pra evitar problemas, e carregando mais bagagem do que muita gente que veio de fora do estado. Bagagem as in “tralha” e não as in “experiência com Unity” já que, na real, somando as horas do time com a ferramenta antes da Jam, chegamos a um total de… 9 horas, ou coisa do tipo.  Isso indica a primeira coisa óbvia: fomos lá para participar, e não para ganhar – o que deixa a coisa toda bem mais fácil, mas não menos estressante.

Largamos nossas tralhas e fomos assistir o keynote do evento. Antes de qualquer coisa, quero parabenizar o pessoal do BGS por ter organizado uma Jam. Esse tipo de evento é MUITO importante, especialmente pra esquentar o cenário nacional, já que os caras que participam desse tipo de coisa hoje são aqueles que vão trabalhar/montar empresas no futuro. Networking é a chave!

Without further ado, nosso primeiro vlog:

DISCLAIMER:

Eu ia colocar bleeps e bloops de GameBoy por cima de todos os palavrões e termos xulos que nós acabamos deixando escapar. Infelizmente, eu não tive tempo pra isso. Infelizmente também, nós tivemos uma postura Jorge Amado/WikiLeaks ao gravar os vídeos. Em duas línguas. Resumindo: esses vídeos são visualmente SFW, mas é melhor você assistir de fones.  =$

No vídeo: um overview do canto que a gente (teoricamente) iria dormir e nossos primeiros comentários sobre o tema.

O tema:

Dez frases de dez pensadores, para 10 times, no ano de 2010. Tão profético que deu 10, coelho. No caso, Paulo Coelho.

“Quem almeja montes não se detém por pedras no caminho.”

Fun trivia: procurando pelo google, não achei essa frase e, a que eu achei que diz a mesma coisa, é de Josué Martí, que  foi mártir da independência cubana. A frase dele é a seguinte:

“Quem vai em busca dos montes não se detém a recolher as pedras do caminho.”

Existem várias opções: ou a gente anotou a frase errado (bem possível), ou alguém recebeu um ppt da avó com o autor errado (depois de uma piada sacana do tio de autoria do Veríssimo). Ou talvez o Paulo Coelho tenha reescrito a frase… enfim, vamos supor que é dele pra manter o ten, ten, ten.

Brainstorming e a estrutura do time:

Primeiro ponto certo: definimos, no dia anterior, como seria a estrutura do time. Isso é bom porque todas as partes têm que ter um responsável, e nem sempre votações dão certo, especialmente em timeframes tão pequenos. Não é uma posição de VANTAGEM, e sim de RESPONSABILIDADE: se alguma decisão que você toma dá errado e prejudica o projeto, é responsabilidade sua. Assim, como o Lond tinha maior experiência em Unity (todas aquelas 7 ou 8 horas que ele usou durante a semana) e em C# (todos aqueles 2 ou 3 anos que trabalhou com isso), obviamente ficou de Lead Coder. Eu acabei ficando de Lead Game Designer – e já digo desde já que, naquele espaço de 40 horas, poderia ter desempenhado melhor o meu papel. Mais sobre isso mais pra frente.

Ok crianças, sabe que horas são? Hora de… MONTAGE!

Temos alguns out-takes dessa parte, onde tentamos esquentar água com um rabo-quente no banheiro do lugar para café e Cup Noodles. Fun trivia: cup noodles tem 60% do sódio que você vai consumir em um dia. Fun trivia 2: se você ligar uma resistência de 110v em uma tomada de 220v, preste atenção pro cabo não fritar.

O jogo:

Vou confessar: nós fomos com uma idéia “backup” pra lá: se tudo der errado, ou se o tema for propício, faríamos um platformer que já tínhamos pensado anteriormente, e tinha sido a coisa com a qual tínhamos praticado. Acabou que fomos um dos poucos times que NÃO fizeram um platformer. Não vou contar qual a idéia baked que tínhamos porque guess what: planejamos executá-la futuramente também.

Tínhamos definido um horário para acabar o brainstorming: 22h, no máximo. Segundo ponto certo: contamos com atrasos no cronograma, o que obviamente aconteceu. O brainstorm foi GRANDE, muitas idéias jogadas, e é engraçado, vendo agora os vídeos, como é o processo de criação. O que eu achei mais legal: o jogo foi meio catártico, dado a situação. Acabamos fazendo um jogo de exploração, mais “introspectivo”, só injetando um pouco de ação no final – o que talvez eu classifique como “primeira coisa errada”.

Estávamos lá pela experiência e não pelos prêmios, o que eu acho que foi uma vantagem e uma desvantagem: por um lado, nos deixamos levar por idéias mais subjetivas que, sem muito trabalho, seriam difíceis de transparecer pra qualquer jogador. Por outro lado, as idéias eram muito legais e, por isso, temos um projeto pendente hoje em dia, que é terminar o jogo direito 😉

A nossa grande sacada foi como abordar a frase-tema com uma dicotomia: como fazer um jogo que mostrasse que a frase está correta E errada ao mesmo tempo? Tudo na vida tem seus dois lados. O gameplay que nós planejamos consegue isso, na minha opinião: as pedras no caminho estão lá pra serem aproveitadas e, ao mesmo tempo, são coisas a serem deixadas de lado. Então, pelo menos no que planejamos, conseguimos de-void o jogo de um significado mais profundo =)

Let the Game-Making begin!

Quase 5 da matina, já estávamos BEM cansados, mas estávamos otimistas. A parte técnica, envolvendo a perspectiva que a gente queria – o mundo é uma grande esfera, mas a câmera fica perto o suficiente para que pareça um horizonte quase… horizontal. Achamos que seria a mais difícil, mas coding wizardry fez funcionar. O grande problema: não tínhamos internet. E toda a coisa de “bom, tudo bem, a gente não sabe mexer direito na Unity, mas é só catar coisas na internetz pra aprender” foi por água abaixo. Ou suor abaixo, já que o ar-condicionado também tinha dado problema 8(

Apesar de adiantados na implementação técnica, o gameplay ainda não existia, o que pelo nosso cronograma era um atraso BEM grande.

Depois da soneca: day 2

Originalmente pensamos em dormir todos ao mesmo tempo, mas acabamos optando por dormir cada um um pouco, separadamente, não deixando o desenvolvimento parado em nenhum momento (só nos de brain-freeze e falta de internet).  Pelo inglês enrolado e pela troca de palavras, o sleep deprivation começou a atacar – coisa que só piorou ao longo dos dias.

Nessa hora, eu já tinha conhecido algumas pessoas e batido papo, aprendido coisas, e notado uma das coisas mais engraçadas: a postura dos times era dividida em 3 categorias. Tinha os que estavam lá pra participar, os que estavam lá pra participar e ganhar, e os que estavam lá pra ganhar. Teve gente que fez social, bateu papo etc. em vários graus, mas teve gente também que não saiu um segundo da frente do computador, não falou com ninguém e, segundo relatos, tava inclusive preocupado com roubo de idéias. Imagino que esses tenham sido os que menos aproveitaram – ou pelo menos os que aproveitaram menos do que podiam.

Por outro lado, muita gente se ajudou, muita gente me ensinou coisas, e a solidariedade se instaurou principalmente na hora da comida, já que o povo estava todo preso lá. Isso foi a parte mais legal pra mim! (não comer, mas a interação positiva que o pessoal teve. Comer eu ainda tava comendo cup noodles.

HMMM Cup Noodles

HMMM Cup Noodles

As pequenas coisas da vida

Nunca pensou como um banho poderia ser a melhor coisa da sua vida? Tente ficar numa sala com 28 outros machos, trabalhando, sem dormir, com a mesma roupa, por quase 20 horas.

So many notes, and so little time

Falta de internet pra consultar, falta de sono, falta de experiência com a ferramenta. Tudo isso pesa, especialmente se você não fez uma coisa MUITO importante: deixou o mundo lá fora. Quando você se propõe a fazer algo do tipo, você tem que se focar literalmente só naquilo. A sua vida vai rodar durante 40 horas naquela game jam, naquele projeto, então nada mais pode puxar seu processamento. Eu, infelizmente, dei o mole de deixar estresses de fora me pegarem e tomarem minha atenção e tranquilidade – isso só atrapalhou.

Them sleepy goggles

Felizmente, dormir pouco aparentemente deixa a gente meio bebum, então em algumas horas, o humor geral melhorou – especialmente porque tínhamos feito um bom progresso!

Vou aproveitar pra pedir desculpas pra todo mundo em volta, que teve que aturar nossa insanidade, cantando em conjunto, completando as frases um dos outros e fazendo coisas esquisitas. Pelo menos o time estava bem entrosado!

Sobre o GameGambi, isso é algo importante: é uma game jam, você está lá pra fazer o seu jogo FUNCIONAR, não importa o quão podreira esteja o código. Algumas decisões feitas no “ok, vamos fazer ASSIM, porque assim funciona imediatamente” te poupam muito tempo. E no fim das contas, isso se espalha pra gamedev em geral: obviamente, não me refiro a gambiarras programacionais, mas o conceito de que a coisa têm de “feel right“, não necessariamente “be right“.

Gamedev lá da terrinha

Sobre o sotaque: não me perguntem. Essa parte não tem muita coisa importante a se tirar, a não ser que é importante dormir no dia a dia, senão você fica daquele jeito que eu fiquei.

Reta Final

Nessa hora, eu estava colocando sons e música no jogo. Hoje me pergunto se talvez eu não tivesse dado mais atenção à implementação (já que o Mascote tinha apagado), coisa que eu fiz só no final pra dar uma “lustrada” no jogo – que funcionou bem aliás, mas ainda assim foi pouco.

Pra quem tá se perguntando pra que diabos serviu aquele barulho esquisito:

Sit in the Mountain – Puzzle Music

Nessa hora, o sleep deprivation era menos engraçado e mais desespero. Já não conseguíamos mais pensar direito, faltava muita coisa pra ajustar, e é a hora em que se faz “o que dá” na direção de “o que deveria”. Era algo que esperávamos, mas ainda não tínhamos sentido na pele, o que é bem diferente. Essa é uma parte especialmente importante de tentar se controlar o stress, senão ele vai ser descarregado em outras pessoas do time, o que nunca é bom em nenhuma situação.

Mortem

Nada mostra melhor a última uma/meia hora de evento como a música do Sonic sem ar embaixo d’água. Sério.

O jogo, no fim das contas, não ficou como a gente queria (óbvio). No entanto, ele continha os pontos-chave que gostaríamos de passar. Infelizmente, na correria, não tivemos como testar o jogo e, aparentemente, aquilo que funcionava perfeitamente (em matéria de passar de uma parte pra outra) dentro do editor da Unity, depois de compilado foi pro espaço, então o jogo ficou meio que… sem ter fim. Outra coisa besta que esquecemos e, impressionantemente, faz toda a diferença, foi o score final – afinal de contas, temos que premiar o jogador. Uma parte que era essencial ao gameplay foi a parte dos puzzles, que foi algo que não conseguimos pensar direito – e quando percebemos que o plano original não era tão bom, tivemos pouco tempo pra consertar. Mea maxima culpa, deveríamos ter atrasado a fase de brainstorm inicial e ter definido BEM como seriam os puzzles, pra não ter que repensá-los no meio da correria.

No fim das contas, temos um projeto que queremos bastante completar e fazer direito – e já começamos a planejar direitinho.

Post-Mortem

Ufa! Vamos lá.

O que deu certo:

  • Montar a equipe e definir papéis desde o início: alguém tinha que ser responsável por cada coisa importante, e essa pessoa dava a palavra final. Definimos que, caso chegássemos a um impasse com essa pessoa, teríamos 10-15min pra convencê-la do contrário. Não precisamos usar isso e, na minha opinião, o time se respeitou bem e trabalhou em conjunto o tempo todo, mesmo em situações de discordância;
  • Não fomos pra competir, e sim pra participar. Isso nos deu mais liberdade e mais tranquilidade e, especialmente, nos possibilitou interagir mais com o pessoal ao invés de ficar engolindo as máquinas 24/2;
  • Fizemos um jogo que pode ser expandido agora. O conceito foi bom e é algo que gostaríamos de fazer em qualquer âmbito.

O que deu errado:

  • Por ser um jogo subjetivo, era muito difícil polir o suficiente pra tê-lo pronto em 40 horas. Queríamos não ser explícitos em nenhum momento, mas isso não fica bom a não ser que haja MUITAS iterações em cima, coisa que a gente não teve como fazer. Pra nos adequar melhor aos tempos de avaliação (5 minutos para cada avaliador), tivemos que cortar certas partes e simplificar outras, o que fez o jogo cair num limbo esquisito;
  • Eu mexi pouco com a implementação. Alguém tinha que fazer os assets e tudo mais, mas talvez eu devesse ter diminuído o tempo que eu gastei nisso e trabalhado mais na parte técnica. Um pequeno tweak que eu fiz fez uma diferença grande no feel do jogo, ou seja, talvez se tivesse trabalhando mais nisso e menos em conteúdo, teríamos uma maior polidez;
  • “Ok, vemos isso depois” – aconteceu muitas vezes. Eventualmente, é necessário, mas às vezes pode ser um desastre. Uma peça-chave que foi tratada um pouco assim por todos nós foi a parte do puzzle, mas era minha responsabilidade colocar um pouco de “disciplina” na coisa e falar “ok, isso não pode ser deixado pra depois”;
  • “Precisamos fazer isso agora!” – por não termos internet nem experiência, às vezes gastamos muito tempo fazendo determinadas coisas que não faziam tanta diferença assim – tempo que poderia ter sobrado no final para polir.

Ufa!

Como faltam 5 minutos pra minha aula e eu já falei demais, fecho o post-mortem por aqui. O jogo, assim que der, vai ser colocado pra download no blog. Vamos usar tempo nas férias pra construí-lo como gostaríamos e, depois, vem pra cá também, obviamente.

No fim, agradeço a todos que participaram, sem citar nomes, não porque eu iria esquecer de alguém, mas porque eu não aprendi o nome de quase ninguém! De quebra, parabéns pro pessoal da Anhembi-Morumbi que levou o prêmio principal.

É noise!

É noise!

O grande aprendizado foi o seguinte: quando se tem várias pessoas trabalhando para o mesmo fim, mesmo que elas estejam competindo, elas vão entrar em menos conflitos do que pessoas não-competindo, mas com fins diferentes. Vida louca, mano! Happiness is the road! Sit in the mountain! Quem almeja mon…. bom, vocês entenderam.

Abrax!

[edit]

PS: o Lond colocou o post-mortem dele no ar também! Vale a pena conferir.

· · · · ·

Theme Design by devolux.nh2.me