A importância da música e efeitos sonoros nos jogos digitais

Faz algum tempo que não posto aqui, estou bem enrolado e empolgado com o desenvolvimento do meu TCC, um jogo de aventura e puzzles em 2D feito com XNA. Em breve irei postar algo sobre o início do desenvolvimento do meu projeto e do que estou utilizando.

korg-ds10-2

Hoje vou postar aqui um trabalho que fiz na pós, na matéria de Música para jogos digitais. Foi uma matéria bem interessante pelas análises que o professor conseguia fazer de músicas e efeitos sonoros usados em jogos, e a partir disso tivemos que escrever um pequeno artigo sobre a importância da música e efeitos sonoros nos jogos digitais. Este é o texto que escrevi:

gomba_music_redQuando o Atari foi lançado seus jogos não possuíam música, devido à limitação técnica do hardware. Porém eram utilizados efeitos sonoros muito simples que, embora fossem apenas “bips” emitidos pelo vídeo game, completavam o jogo e a experiência do jogador.

Com a evolução dos vídeo games e computadores, a música começou a ser empregada para “preencher” o ambiente. Aos poucos, tornou-se um elemento fundamental para um jogo, além dos efeitos sonoros e visuais. Hoje são itens essenciais em jogos, sendo que muitos jogadores que antes prestavam atenção apenas em belos gráficos, agora também reparam na melodia e nos sons que de um jogo.

Sem dúvidas a música é tão importante nos jogos quando em filmes e animações, mas por quê? Basta tentarmos jogar algum jogo digital com o som desligado: em muitos casos o jogo perde a graça. Existem jogos, ainda, que amarram a música ao enredo do jogo, de modo que as mudanças na narrativa do jogo são demonstradas pela música, como músicas agitadas indicando perigo, por exemplo. Braid, um jogo de aventura em plataforma, utiliza a música para informar ao jogador se há perigo ou não em uma fase, e inclusive brinca com os efeitos sonoros quando o jogador volta no tempo e desfaz uma ação.

Neste caso, a melodia conduz o jogador e o convida a uma imersão no mundo do jogo. A alteração do ritmo da música durante uma fase transmite ao jogador sensações sobre o que está por vir. Para que todos estes recursos musicais funcionem deve haver uma grande harmonia entre as músicas e os efeitos sonoros, pois sem esta combinação de elementos todo o trabalho do músico será em vão, e a trilha sonora será apenas mais um enfeite no jogo.

Jogos como Resident Evil, um clássico de suspense e terror, usa muito a trilha sonora para ambientar o jogador e capturar sua atenção, tornando o jogo mais tenso em determinadas partes, inclusive utilizando a ausência de música e deixando apenas a respiração do jogador e os barulhos dos passos do personagem. Tudo isso ajuda no clima do jogo, aumentando a imersão do jogador no enredo, e fazendo-o sentir-se realmente dentro da história contada, além de aumentar o número de sustos, também.

O ambiente, neste caso, é construído por sons e ruídos que são imprescindíveis para que o jogo transmita a sensação que os criadores pensaram. A exploração destes níveis de sons na trilha do jogo conseguiu criar este ambiente que combina perfeitamente com a arte do jogo e transmite ao jogador um sensação de imersão em uma realidade diferente: o mundo onde se passa o jogo.

Alguns jogos são uma mistura de música com jogabilidade, como as séries Guitar Hero e Rock Band, onde o jogador tem sua imersão “tocando” músicas conhecidas com uma jogabilidade que tenta ser semelhante a tocar uma guitarra, baixo ou bateria. Este tipo de jogo sem música não faz sentido, devido à importância da música na sua narrativa, e ambienta o jogador de modo que ele se sente tocando em um show de rock, vibrando realmente após cada trecho complicado que ele conseguiu executar em seu instrumento música interativo.

Ao contrário do que alguns pensam, hoje o objetivo da música e dos efeitos sonoros não é “enfeitar” um jogo, é muito mais do que isso. Estes elementos devem ser utilizados em conjunto com a arte e a narrativa do jogo para proporcionar uma experiência mais rica para o jogador e aumentar a sua imersão com o mundo criado, criando ambientes a partir de sons, ruídos, ritmo, melodia e harmonia. Os exemplos de jogos citados confirmam esta importância da banda sonora em um jogo digital, sendo que a música tornou-se uma parte fundamental na obra de arte que é um jogo bem elaborado, divertido e com imersão.

Muitos jogos executam esta união de música, arte e narrativa de maneira praticamente perfeita, e ganham diversos prêmios que valorizam o jogo como uma obra de arte. Em 2009, jogos como Batman: Arkham Asylum e Uncharted 2 foram os principais vencedores destes prêmios dados pela indústria de jogos e entretenimento, devido ao grande investimento em música e efeitos sonoros idéias para suas respectivas narrativas.

Após o término da parte de programação do meu TCC irei compor e gravar a trilha sonora da minha demo. Esta matéria serviu para eu conhecer mais profundamente o que uma música ou efeito sonoro podem fazer na ambientação de um jogo, sem isso o jogo pode perder sua identidade e diversão.  

início do meu projeto de jogo para TCC

Este ano irei terminar a minha pós-graduação em Games: Produção e Programação no SENAC, e tenho que fazer o meu Trabalho de Conclusão de Curso (TCC), quer será uma versão demo de um jogo. O projeto do TCC começou ano passado, quando fiz um Game Design Document (GDD) sobre uma idéia de jogo que tive, porém descartei esta idéia e este ano comecei a trabalhar em outra mais simples.

Embora eu não tenha finalizado o novo GDD, defini algumas coisas importantes para o início do meu projeto: o tipo de jogo que pretendo fazer, qual público-alvo desejo atingir e em qual plataforma irei focar. A idéia inicial era fazer um jogo em 3D, porém após pensar muito, decidi fazer um jogo de plataforma 2D para PC, com elementos de aventura e puzzles, focado no público de jogadores hardcore, porém também atendendo aos jogadores casuais (como jogos de plataforma geralmente fazem). Porém, para chegar nesta definição eu precisei passar por alguns meses pesquisando tecnologias.

Em outro post irei comentar mais sobre o processo de criação de um GDD,  além de detalhar mais o que estou fazendo. Neste post irei focar a primeira etapa que um desenvolvedor tem que definir, após ter conhecimento da idéia inicial do jogo: que tecnologia utilizar para programar o jogo. Abaixo estão algumas tecnologias que pensei em utilizar, porém por algum motivo desisti, até chegar à que realmente irei utilizar para o meu projeto de TCC:

  • Unity: Uma poderosa Game Engine que tornou-se gratuita no final do ano passado, possibilitando que desenvolvedores independentes tivessem acesso a uma ferramenta de desenvolvimento de jogos profissionais. Em meu post sobre a Unity fica bem claro que é uma excelente Game Engine, inclusive quando escrevi aquele post estava pensando em utilizá-la no meu TCC, porém desisti. O motivo: a Unity é incrível, porém para fazer um bom jogo nela eu iria precisar de um modelador 3D desde o início do projeto, e eu estou fazendo o projeto sozinho e não sou modelador.
  • C++/SDL/OpenGL: Após desistir de uma Game Engine, parti para uma das opções mais voltadas para programação, decidi tentar a combinação da linguagem de programação C++ com SDL, que eu aprendi na pós, e OpenGL para os gráficos 3D. Esta combinação possui vantagens, como a possibilidade de compilar para Windows e Linux. C++ é uma das linguagens mais utilizadas para programação de jogos, e OpenGL é muito utilizado em programação de jogos para consoles. Eu havia escolhido estas tecnologias por que eu iria aprender muito do que eu preciso para desenvolver jogos profissionais, porém desisti por um simples motivo: no momento eu não tenho muito tempo disponível para aprender a trabalhar com OpenGL, e eu não quero fazer algo mal feito.
  • C++/DirectX: Aprender OpenGL era complicado e iria exigir muito tempo, então resolvi tentar utilizar C++ com DirectX, pois assim eu ainda estaria aprendendo mais sobre C++, além de eu já ter feito algumas coisas com DirectX na pós-graduação. Comecei a planejar o desenvolvimento de pesquisar as coisas seriam necessárias para o desenvolvimento de um game em 3D. Utilizando DirectX eu ficaria preso ao desenvolvimento para PC, porém não considerei este um problema, já que é um mercado bem amplo. Porém, comecei a ficar um pouco preocupado ao pensar em um simples detalhe: e os modelos 3D? Comecei a pesquisar alguns sites que possuem modelos gratuitos e pagos, eu até estava disposto a comprar modelos não muito caros, porém acabei desistindo de vez de fazer um jogo 3D, pois embora eu estivesse com uma tecnologia que eu conheço um pouco melhor, eu voltei ao problema que me fez desistir da Unity: pode ser que eu termine a programação do jogo, mas não tenha modelos 3D legais para utilizar.
  • XNA: Desde o início eu pensei: se eu ficar desesperado, largo tudo e faço com XNA, pois tenho 2 jogos feitos com XNA em meu portfólio, além de participar de um projeto com XNA na Octopus Team. Depois de pensar muito sobre o meu jogo, sobre a verdadeira razão pela qual eu quero fazê-lo, eu decidi optar por algo que eu conheço bem e é simples de utilizar, para poder focar em fazer um jogo bom, ao invés de gastar muito tempo aprendendo uma tecnologia. Eu poderia até conseguir fazer algo com as tecnologias anteriores, e iria aprender coisas novas, porém não acho que o jogo iria ficar bom. Este motivo também me fez optar por utilizar gráficos 2D e fazer um jogo de plataforma, pois desenhos mais simples eu consigo fazer ou encontrar alguém para fazer.

Todo este processo de decisão de qual tecnologia eu iria adotar para o meu projeto custou caro: cerca de 3 meses de pesquisa e nenhum desenvolvimento. Embora eu tenha perdido todo este tempo, sendo que se eu tivesse pensado em utilizar XNA desde o início hoje eu já estaria bem adiantado no desenvolvimento, isto serviu para aprender diversas coisas em relação ao que priorizar em um projeto.

No início eu queria fazer um jogo para meu portfólio, por isso escolhi tecnologias que eu não conheço e acho importantes para eu aprender, porém agora estou com outra visão: não quero apenas mais um trabalho no meu portfólio, eu quero criar um produto que tenha chances reais de ser publicado e comercializado, e que talvez isto seja o início para eu abrir uma empresa.

Embora eu tenha escolhido uma tecnologia simples, e um modelo de jogo simples, vou focar no que realmente importa: divertir e entreter os jogadores com um jogo muito bom! Portanto, neste projeto o Game Design vai ser muito importante. Devido a esta importância eu ainda não finalizei muitas definições, pois quero fazer o melhor que puder. O que começou como uma idéia para um simples projeto de TCC, hoje se tornou o prelúdio de um sonho.

feliz aniversário carol – the game

Mês passado eu li esta notícia do G1 Games sobre um casal alemão que decidiu fazer um jogo como convite de casamento, onde o objetivo é fazer a noiva salvar o noivo de um gorila (bem estilo Super Mario Bros.). Semana passada foi aniversário da minha namorada Carol e, pensando no que o casal alemão fez, eu decidi fazer um cartão de Feliz Aniversário para ela em forma de um jogo para computador.

Feliz Aniversário Carol - The Game -

Tela de abertura

O jogo foi feito em 2 semanas, programei apenas de noite quando não tinha aulas na pós-graduação, e terminei na madrugada do aniversário dela. Decidi desenvolver utilizando XNA, que eu tenho mais facilidade para desenvolver jogos e também é muito fácil fazer jogos de plataforma em 2D, como o que eu fiz. Os sprites dos personagens (eu e ela) e as animações foram copiadas dos avatares Buddy Poke dos nossos perfis no Orkut, e o resto do cenário são imagens que encontrei na internet. Assim, foquei na programação e na mensagem que eu queria transmitir.

Feliz Aniversário Carol - The Game - Gameplay

Gameplay

O objetivo do jogo Feliz Aniversário Carol – The Game é atravessar o cenário, pulando pelas plataformas, coletar as letras que formam a palavra PARABENS, e me encontrar no final da fase. É um jogo bem curto e simples, pois não tive muito tempo para desenvolver (comecei uma semana antes do aniversário dela) e também não queria fazer algo longo, já que o objetivo principal era desejar um Feliz Aniversário para ela de uma maneira diferente.

Feliz Aniversário Carol - The Game - Tela do final

Tela do final

Apesar do jogo ser simples, eu utilizei uma técnica para criar o Level Design que li em um livro de programação de jogos em java que eu tenho. A técnica é simples: a construção do cenário 2D está armazenada em um arquivo .TXT, que é lido pelo jogo e transformado no cenário que jogador vê, através da tradução de caracteres presentes no arquivo em sprites. Por exemplo, o meu arquivo .TXT possui os seguintes parâmetros reconhecidos pelo jogo:

  • Número “0″: Lugares no cenário onde não possuem sprites e não existe colisão;
  • Número “1″: Traduzido no jogo como sprites com imagem de gramado com colisão;
  • Número “2″: Traduzido no jogo como sprites com imagem de tijolo com colisão;
  • Número “3″: Traduzido no jogo como um sprite com o meu avatar, onde a colisão reinicia o jogo se o jogador não formou a palavra PARABENS. Se colidir com este sprite e a palavra PARABES estiver formada, é exibido o final do jogo;
  • Letras “P”, “A”, “R”, “B”, “E”, “N” e “S”: Traduzido no jogo como sprites que representam esta letra, e o jogador deve coletar todas na ordem para ver o final do jogo.
Feliz Aniversário Carol - The Game - Arquivo com Level Design

Arquivo com Level Design

A vantagem de se utilizar esta técnica: qualquer um pode alterar o Level Design do jogo a qualquer momento, sem precisar compilar novamente o projeto, é bem simples e fácil de usar para testar a jogabilidade e complexidade de um jogo, mudando rapidamente o cenário para corrigir erros de game design ou melhorar a experiência do jogador.

A desvantagem de se utilizar esta técnica: dependendo do tamanho do level criado em um arquivo .TXT, o jogo pode ficar muito lento. O carregamento dos dados do arquivo e a transformação em um array de sprites não é a parte mais demorada, o problema real é verificar colisão e movimentar TODOS os sprites a cada loop. Neste jogo, por exemplo, o level design que eu montei contém 1841 sprites que são movimentados e tem a sua colisão verificada a cada loop do jogo. Assim, esta técnica fica inviável em jogos com level muito grande.

A desvantagem pode parecer maior do que a vantagem de se utilizar esta técnica em jogos de plataforma 2D, mas em outros tipos de jogos pode ser bem útil e não pesar tanto, como em puzzles ou jogos de estratégia onde os cenários são menores. Ainda sim, é uma técnica interessante para brincar e estudar, por ser simples de programar e mostrar resultados rapidamente.

Neste link está o executável e o instalador deste jogo. Na raiz do jogo está o arquivo LevelDesign.TXT, que pode ser editado para mudar o cenário de qualquer maneira, lembrando que quanto maior o cenário, mais lento poderá ficar o jogo. Todo o meu trabalhou valeu muito a pena, pois ela adorou este presente diferente. Ah, a trilha sonora é a música Envelheço na Cidade, da banda IRA!, que ficou perfeita no jogo!

Panorama theme by Themocracy