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

Dec/10

6

Post-Mortem: Brasil Game Jam 2010

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.

· · · · ·

4 comments

  • Buss · 06/12/2010 at 11:10 am

    Ficou super legal a edição dos vídeos 🙂

    Só podia ter mais do estilo do segundo vídeo, onde tem a filmagem em FF 32x, mas de vocês trabalhando na parte de implementação do jogo e dos assets, fica a dica pra próxima 😀

  • Lond’s Stuff » Postmortem do Brasil Game Jam · 06/12/2010 at 1:50 pm

    […] Se vocês quiserem ver os vlogs que a gente foi fazendo pelo caminho, o post que o Yanko botou na devoid tá mais completo, veja aqui. […]

  • Gabriel · 06/12/2010 at 3:33 pm

    Po caras, parabéns, ficou muito maneiro o log aí do desenvolvimento =).

  • Bruno · 07/12/2010 at 5:02 am

    Caras, irado! Queria ter participado também, mas provavelmente teria deixado o código de lado pra participar dos rituais pra se manter acordado.

    A primeira vez que usei Unity foi assim também, funciona do jeito que der e vamos em frente, depois conserta. E para uma desvirginização, até que as soluções que arrumaram ficaram interessantes.

    Abs ae!

Leave a Reply

<<

>>

Theme Design by devolux.nh2.me