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

CAT | deVoid Brew

Então, dando mais uma passada rápida por aqui (lembrem-se: a maior parte da ação deVoidiana aparece no twitter, o blog é mais para falarmos sobre assuntos extensos!), apresento-lhes o mais novo spin-off do Scroll Lock, sendo jogado pelo nosso querido amigo Yanko:

E pra você que não viu no Facebook, também tem o Waterwords, um joguinho relâmpago feito pra um contest da MochiMedia que você pode jogar no Kongregate:

· · · ·

 

Paramos de fazer trocadilhos com "devoid", mas jamais pararemos com trocadilhos!

Paramos de fazer trocadilhos com "devoid", mas jamais pararemos com trocadilhos!

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 de arquivo gigantesco para compensar o nome pequeno do trabalho em si:

Download: Dystopia e Sumocheckers

O foco é na implementação e na relação entre game design e limitações técnicas – 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!)

Quaisquer dúvidas e comentários, falem comigo ou com o Tinnus no twitter, ou comentem aqui mesmo no post!

· · · · · · · · ·

“… 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 🙂

· · · ·

Sep/11

6

Scroll Lock

(Note for non-portuguese speakers: if you just landed here from Kongregate, please note that the blog has been portuguese-only so far. We’re putting the new splash page up in a few days, which has an English version, so check back soon!)

Quem diria que a peça de plástico mais inútil no seu teclado seria a salvadora de bonequinhos de palito numa fábrica infernal? Inspirado no / ESCAPE \ , chega a nova revolução em utilização de teclas abandonadas:

Scroll Lock!

Jogue-o agora no Kongregate e lute pela maior pontuação possível!
(e divulgue também, pra que possamos adicionar badges!)

Fiquem à vontade para comentar a respeito do jogo! E não percam o Post-Mortem dentro de alguns dias!

· · · ·

Theme Design by devolux.nh2.me