Skip to content

[Tutorial] Criando snake com love2D – parte 1

by em 21/08/2013

Bem vindo à mais um level!

Dificuldade: 2             Estrelas por completar: 3

Outras partes do tutorial:

O melhor jeito de se acostumar a criar jogos é criando jogos. Parece uma frase boba mas a maioria das pessoas tem problemas para começar, para continuar e para terminar um jogo.

O melhor jeito de aprender a fazer jogos é criando os seus.

Nessa série de tutoriais vamos re-criar o clássico snake utilizando a game engine Love2D e uma linguagem que compila para Lua chamada Moonscript (para quem conhece Coffescript é uma versão do mesmo para Lua).

Antes de começarmos a programar vamos rapidamente passar por alguns pontos importantes, faremos isso porque no momento em que você decidir criar um jogo não vai poder simplesmente sair fazendo (até pode mas isso provavelmente resultará em uma série de problemas), o que recomendamos é que faça um planejamento antes de começar, um pequeno documento de game design deve ajudar bastante.

  • Qual o jogo em si? (Game Design)
    • Um pouco sobre o snake
    • Exemplos de melhorias
  • Quais assets precisamos?
    • Imagens
    • Telas do jogo
    • Sons e música
  • Ambiente de desenvolvimento
    • Softwares necessários
    • Linguagens

Game Design – O clássico Snake

O objetivo era manter-se vivo pelo maior tempo possível e para marcar pontos você pegava um item que fazia o personagem ganhar um quadrado extra em seu corpo.

A velocidade do personagem aumenta com o tamanho dele, então fica mais difícil controlar com o tempo, além disso se o jogador acertar o próprio corpo ou outro objeto, que não um item, ele perde.

Em alguns Snakes, existem inimigos, paredes, itens diferentes e o jogador pode ou não conseguir ir de uma ponta da tela à outra (world wrap, figura abaixo)

Algumas melhorias ou mudanças possiveis de se fazer no jogo:

  • Adicionar limite de tempo
  • Aplicar um contexto diferente ao jogo. Um exemplo é o jogo Nimble Quest
  • Colocar paredes móveis
  • Deixar o jogador se mover em qualquer direção
  • Itens que afetam o cenário
  • Fases a serem completadas ao invés de um jogo infinito
  • Insira suas idéias aqui….

Quais os assets necessários

Considerando a implementação básica do jogo teremos:

  • Um quadrado ou outro componente qualquer que represente 1 unidade do corpo do jogador
  • Um terreno
  • Um item que aumenta o tamanho do jogador
  • Tela de início
  • Tela de highscore
  • Tela de fim de jogo (pode ser a mesma da highscore)
  • Som para item sendo pego
  • Música de fundo no jogo
  • Música de fundo fora do jogo (pode ser a mesma de cima, mas precisa ser agradável de qualquer forma)
  • Fontes para os textos
  • Animações para os assets “físicos”

Lembrando que todos os assets acima podem ser feitos de forma simples por um programador, caso você não seja artista.

Ambiente de desenvolvimento

Muitos provavelmente ficaram se perguntando o motivo da combinação escolhida: Love2D + Moonscript.

Porque Love2D?

A escolha foi um pouco pessoal e um pouco movida a teste.  Queria desenvolver novamente um jogo desktop cross platform e usar uma engine que necessessite de um pouco mais de mão na massa (código) e o Love2D foi a eleita da vez.

Porque Moonscript?

Lua é uma linguagem maravilhosa, mas é bastante crua no sentido de que tudo que você precisar além do que ela disponibiliza precisa ser criado ou encontrado por ai na internet, isso inclui os conceitos de orientação à objetos. Ela não é uma linguagem orientada à objetos e no mundo dos jogos a experiência me ensinou que OOP faz diferença.

Tendo esse pensamento foi que escolhi a linguagem Moonscript (baseada em Coffescript) para dar uma nova vida ao Lua, ela adiciona uma séria de facilidades inclusive orientação à objetos.

IDE….

Ah a eterna batalha da escolha de uma ferramenta que ajude-nos a criar nossos amados jogos. Como não temos um Unity, Visual Studio, XCode, Torque, etc da vida para o Lua+Love2D vamos usar SublimeTex2 (você pode usar o Notepad++ se preferir).

Existe um pacote para o Sublime com syntax highlight instale-o usando package control.

Próximos passos

Antes de começar a desenvolver e tendo um game design em mãos separe artes e sons que quiser usar para teste e monte o ambiente que mais lhe agradar para desenvolver, lembre-se da combinação que estaremos usando nas próximas partes.

Além disso recomendo dar uma olhada no Hello World do Love2D presente na wiki do site e na documentação do  Moonscript.

Parte 1 finalizada!

From → Design, Programação

3 Comentários
  1. Joseph Deyvid permalink

    Interresante,muito esclarecedor muito bem feito talvez poderia me fazer uma coisinha pra min?,não tem o tutorial escolhendo uma game engine eu acho que você abandonou por isso gostaria de pergunta,irei deixa uma resposta poderia me ajuda?,e tambem löve não parece ser uma boa game engine mais e você o profissional então deve estar certo.Boa sorte!!!.

    • Joseph,

      Vamos por partes, temos um tutorial sobre escolha de game engines na parte de programação. Ele com certeza vai envelhecer no que diz respeito a novas engines que forem surgindo. Mas o blog, nossa página no facebook e o twitter são abertos à discussões para que possamos ajudar uns aos outros conforme novas ferramentas surgirem. Tem alguma dúvida sobre engines?

      Sobre love2d, como disse é tem o quesito escolha pessoal no meio, eu particularmente gosto bastante de Lua e queria trabalhar a parte de código. Mas provavelmente é mais “fácil” fazer o jogo utilizando Stencyl, Construct2 ou Citrus. Com relação à ser uma boa game engine, isso depende muito do uso e do jogo de cada um.

      Fica como promessa ao terminarmos o tutorial de Love2D fazermos outro jogo com uma outra engine, pode inclusive sugerir ambos.

      Abraço.

Trackbacks & Pingbacks

  1. Fazendo jogos com love2d e Lua | Meu blog pessoal

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: