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!

7 Responses to “feliz aniversário carol – the game”

  1. Juliana disse:

    É Bruno… que presente NERD hahaha. a cara de vcs dois.
    bjs

  2. cicanci disse:

    Hahahaha
    Espera pra ver a continuação!! rs

  3. rodrigo disse:

    Muito legal o jogo… Agora gostaria de saber, se tem como liberar o codigo usado nesse jogo… é que estou procurando na internet sobre Sidescroller e Parallax Scrolling no XNA so que não encontro nada sobre isso, se possivel poderia disponibilizar o codigo desse jogo ou alguns links/tutorials sobre esse assunto.
    Muito obrigado pela atenção o/

  4. cicanci disse:

    Olá Rodrigo!
    Eu fiz este jogo baseado neste tutorial: http://www.xnadevelopment.com/tutorials/scrollinga2dbackground/ScrollingA2DBackground.shtml
    A única diferença entre o meu jogo e o tutorial é que eu monto o cenário a partir de um arquivo TXT, o que eu não recomendo pq fica muito lento!
    Espero ter ajudado, qualquer dúvida é só postar!
    Até mais!

  5. rodrigo disse:

    Vlw pela dica e tipo..não ajudou muito não X__X …e desculpe a demora em responder.. mas esse site eu até fiz alguns dos tutoriais, so que não o resultado não é bom…
    Procurei na net sobre como fazer um platform igual ao seu onde pega item, com scrolling 2D, com sprite animado, personagem pulando e com mudança de tela… so que eu eu encontro so um tipo de codigo e tento juntar eles, so que sempre da erro =( …Começei a pouco tempo com XNA =/ ..
    Gostaria de saber se tem como você enviar para o meu email o arquivo projeto desse jogo…
    Muito obrigado ela atenção (novamente)
    Até mais! o/

  6. cicanci disse:

    Olá Rodrigo!
    Se vc começou a pouco tempo com XNA, é melhor vc nem ver o meu código, pois está bem ruim para entender o que foi feito, já que fiz correndo a programação. Não seria bom vc iniciar seu aprendizado de XNA com um exemplo pouco didático.
    Tenta estudar por tutoriais mesmo ou por livros, existe até um livro em português sobre XNA: http://www.brasport.com.br/index.php?dispatch=products.view&product_id=610
    Depois que vc entender como funciona o XNA, vai ficar bem fácil de pensar como fazer alguma coisa ou como juntar pedaços de código e fazer funcionar.
    Se vc quiser, me fala os erros que estão ocorrendo e eu tento te ajudar a resolver, assim vc vai aprender mais!
    Até mais!

  7. Likinha disse:

    Axeii muito lindo. E muito romantico. EE PARÁBENS CAROLL. RSRSRSRS

Leave a Reply

Panorama theme by Themocracy