Desenvolvimento

10 nov, 2011

Desenvolvendo uma versão do Guitar Hero sozinho – e antes da Ubisoft

Publicidade

Desde que joguei Guitar Hero pela primeira vez, há uns bons anos atrás, pensei: Muito legal, mas se tivesse como tocar pra valer com uma guitarra de verdade, seria show!

É claro que não agradaria a muitos dos vidrados por Guitar Hero, mas para aqueles que arriscam alguns acordes e riffs na guitarra, a ideia de unir o play game com o play guitar parecia perfeita.

Busquei em todo canto para ver se existia algo assim, mas apesar de encontrar algumas tímidas iniciativas, não consegui nada que eu pudesse realmente experimentar. Por esse motivo, resolvi partir para uma nova empreitada, construir eu mesmo esse jogo, mas logo descobriria que eu teria um adversário complicado.

De um lado do ring, eu e somente eu, com zilhões de compromissos, sem tempo pra nada, mas como sempre, muito empolgado, tentando construir nas horas vagas um jogo tipo Guitar Hero, porém tocado com guitarras de verdade.

Alguns colegas me ajudaram trocando ideias sobre como o jogo poderia ser mais bem recebido, especialmente considerando quem está principiando no instrumento. No projeto e programação, só dava a minha eu-quipe.

O jogo batizado de Guitarmonics veio sendo desenvolvido a passos de formiga há mais de 4 anos. Já tenho há uns 2 anos um protótipo funcionando, mas não consegui reservar tempo suficiente para finalizar uma lista de pendências e então colocá-lo no ar.

Do outro lado do ring temos a Ubisoft, uma empresa que faturou 1 bilhão no ano fiscal de 2010 e que montou um super time há 5 anos para trabalhar no desenvolvimento de um game seguindo um conceito parecido.

Nesse último dia 18/Out a Ubisoft lançou oficialmente o RockSmith. Ainda não consegui botar a mão em um exemplar, mas pelo que li, o jogo ficou bem legal. Os caras investiram muito pra tentar fazer o jogo atender a diferentes perfis de jogadores, desde o iniciante até o músico avançado, com uma interface gráfica bem bacana.

É engraçado pensar que se eu tivesse mantido o foco de fazer um jogo para eu jogar, sem se preocupar em conquistar o mundo, com certeza ele já estaria pronto e disponível, correndo o risco de fazer algum sucesso. Mas não, temos de “pensar grande”, temos de gastar mais tempo e buscar fazer algo “profissional”.

Na verdade a iniciativa não era pra ser um “negócio sério”, mas só um jogo para eu me divertir com os amigos e, quem sabe, espalhar na rede para outros também se divertirem. De fato minha primeira grande motivação era o desafio de construí-lo.

É claro que não dá pra enfrentar o RockSmith como meus gráficos 2D tosqueira, engine básico para o reconhecimento de acordes, ausência de amplificadores virtuais, e outras coisas mais. Contudo a experiência foi bem positiva.

Há alguns diferenciais no conceito do Guitarmonics que me fazem ainda acreditar nele. A ideia é você poder adicionar músicas que você tenha na sua biblioteca de áudio ao jogo, e utilizando ferramentas de mercado para edição de tablaturas/partituras, configurar as notas (bolinhas) que o Guitarmonics irá importar e apresentar.

Não vai atender quem está começando na música, mas não precisa ser ninja pra se divertir. Também focamos em quem tem guitarra (com seus pedais, amps, etc.). Logo para fugir do problema de latência, o jogo processa o audio para identificar acertos, mas não reproduz esse som. Para ouvir a sua guitarra, é necessário jogar o mesmo sinal para um amp. Com isso nos livramos do atraso inconveniente que o RockSmith tem.

Imaginei um cenário onde uma comunidade de usuários crie e compartilhe várias versões de tablaturas que poderão ser praticadas pelos outros. Obviamente estou assumindo que cada pessoa irá praticar as músicas de seu interesse, já presente em seu reportório pessoal. Não quero incentivar pirataria!

Enfim, se eu estivesse fulltime nisso ou se tivesse uns 3 caras durante uns 2 anos, com certeza poderia fazer algo mais profissional. Mas construir um jogo desses programando nas horas vagas (hehe) é meio complicado.

Confesso que estou louco pra jogar o RockSmith, afinal meu objetivo desde o início era poder comprar um jogo assim, e não propriamente construir um. Por outro lado sinto certa satisfação em ter feito o que fiz no pouco tempo que tive.

Ainda não descarto a possibilidade do Guitarmonics conseguir encontrar o seu espaço. Pensando nisso resolvi abrir seu código-fonte para que eventualmente algum outro maníaco se interesse em cooperar. Sei que não é fácil encontrar alguém disposto a mergulhar nesse código mas, quem sabe.

Pra quem quiser só dar uma olhada, basta baixar os fontes (e o build mais recente) de https://assembla.com/spaces/guitarmonics. O Guitarmonics está sendo desenvolvido em C#, hoje com VisualStudio 2010 e o XNA Game Studio 4. A ideia original era desenvolver para Windows e XBOX 360 simultaneamente, mas para simplificar mantive o foco somente no Windows.

Note que para tocar será necessário um cabo de guitarra com um conector P2 na outra extremidade, para ser ligado na entrada de áudio do computador. Eu gosto de ligar a guitarra em algum DirectBox ativo para fazer o split do sinal e poder jogá-lo no computador e no meu amp com todos os meus efeitos (cabo Y seria uma opção, mas não vai funcionar bem se sua guitarra tiver pickups passivas). Cuidado com essa história de cabos para não fazer besteira aí. Apesar de ser simples, não me responsabilizo!

Procurei desenvolver o game com TDD, dividindo bem as responsabilidades em camadas bem distintas. Acho que consegui uma arquitetura bem bacana. É claro que hoje eu faria muita coisa diferente, mas é sempre assim, né? Isso na verdade é sinal de que estamos progredindo.

Pra quem quiser ir um pouco além, e cooperar de fato, as principais frentes que precisam ser trabalhadas são:

  • Permitir jogar em velocidades mais lentas para facilitar o treino: minha próxima prioridade;
  • Aumentar a base de músicas preparadas e construir ferramentas que facilitem esse trabalho: pretendo ir ao pouco adicionando novas músicas, mas com certeza várias pessoas trabalhando nisso seria show.
  • Melhorar a interface gráfica, especialmente no que diz respeito a mostrar um braço de guitarra: definitivamente não é a minha praia. Alguém se habilita em construir uma nova cara? As coisas estão bem separadas para facilitar isso.

Enfim, fica aí a dica do RockSmith. Se alguém tiver alguma dúvida ou sugestão para o Guitarmonics, é só comentar aqui. Depois pretendo trazer algumas publicações técnicas baseadas nessa experiência, mas por hoje vou ficar por aqui.

Abraços e até o próximo!