Como Criar um Jogo para Android em Tempo Recorde

Tempo de leitura: 12 minutos

Olá Game Developer, tudo bem com você?

Se prepara porque hoje tem novidade!

Desenvolver um jogo totalmente do zero para Android é muito mais fácil do que você imagina! A chave para o desenvolvimento bem-sucedido no Android, ou qualquer tipo de desenvolvimento, é saber exatamente o que você deseja alcançar e encontrar as ferramentas e habilidades necessárias para atingir o resultado esperado.

Quando se trata de desenvolver jogos, a melhor ferramenta na minha opinião é o Unity. Sim, você pode fazer um jogo no Android Studio, mas, a menos que tenha experiência com Java e o SDK do Android, será uma luta bem complicada. Você precisará entender o que as classes fazem. Você precisará usar visualizações personalizadas. Você dependerá de algumas bibliotecas adicionais e por aí vai.

Por outro lado, o Unity faz a maior parte do trabalho para você. Ela é uma Engine Game, o que significa que toda a física e muitos outros recursos que você pode querer usar já estão resolvidos.

É multiplataforma e foi projetado para ser muito amigável para iniciantes, amadores e desenvolvedores indie.

O Unity é uma ferramenta altamente profissional que alimenta a grande maioria dos títulos mais vendidos na Play Store.

Gostou? Então fica comigo neste artigo que hoje nós vamos te mostrar como criar um jogo para Android da melhor maneira possível.

O que iremos aprender hoje?

// Adicionando sprites e física

// Seu primeiro script

// Entrada de jogador básica

// Encontrando seu pé

Adicionando sprites e física

Primeiramente inicie o Unity. Óbvio né?!

Agora crie um novo projeto e certifique-se de escolher ‘2D’. Ao entrar, você será recebido com algumas janelas diferentes. Como não temos para explicar neste artigo, siga minhas instruções e para não ter problemas.

A primeira coisa que você deseja fazer é criar um sprite para ser seu personagem. A maneira mais fácil de fazer isso é desenhar um quadrado. Se você quiser ser ainda mais rápido, basta pegar o sprite que quiser de algum lugar.

Squarey

Salve este sprite e, em seguida, basta arrastar e soltar na sua cena, colocando-o na maior janela. Você irá perceber que ele também aparece à esquerda na hierarquia.

Agora queremos criar algumas plataformas. Mais uma vez, vamos nos contentar no quadrado simples e podemos redimensionar com a mão livre para criar paredes, plataformas e o que tiver de criar.

plataforma

Solte outro quadrado da mesma maneira que você acabou de fazer.

Já temos algo que se parece com um ‘game’. Clique em play e você verá uma cena estática por enquanto.

Podemos mudar isso clicando no sprite do jogador e olhando para a direita da janela chamada ‘inspetor’. É aqui que alteramos as propriedades dos nossos GameObjects.

Escolha ‘Adicionar componente’ e depois escolha ‘Physics 2D> RigidBody2D’. Você acabou de adicionar física ao seu jogador! Seria incrivelmente difícil para nós fazermos sozinhos sem perceber a utilidade do Unity.

Adicionar-Rigidbody-2D

Também queremos corrigir nossa orientação para evitar que o personagem gire e gire livremente. Encontre ‘restrições’ no inspetor com o jogador selecionado e marque a caixa para congelar a rotação Z. Agora clique em ‘play’ novamente e você deve encontrar o seu jogador que cai do céu para o seu destino infinito.

Reserve um momento para refletir sobre o quão fácil isso foi: simplesmente aplicando esse script chamado ‘RigidBody2D’, temos uma física totalmente funcional. Se aplicássemos o mesmo script em uma forma redonda, ele também rolaria e até saltaria.

Para impedir que nosso personagem caia no chão, você precisará adicionar um colisor. Este é basicamente o contorno sólido de uma forma. Para aplicar isso, escolha seu player, clique em ‘Add Component’ e desta vez selecione ‘Physics 2D> BoxCollider2D’.

Faça exatamente a mesma coisa com a plataforma, clique em play e seu personagem deve cair no chão sólido. Fácil!

Mais uma coisa: para garantir que a câmera siga o nosso player, esteja ele caindo ou se movendo, queremos arrastar o objeto da câmera que está em cena (criado quando você iniciou o novo projeto) em cima do player.

Agora na hierarquia (a lista de GameObjects à esquerda) você arrasta a câmera para que ela fique recuada sob o player. A câmera agora é um ‘filho’ do Player GameObject, o que significa que, quando o jogador se move, o mesmo acontece com a câmera.

Seu primeiro script

Nós vamos criar um corredor infinito básico e isso significa que nosso personagem deve se mover pela tela até encontrar um obstáculo. Para isso, precisamos de um script.

Então, clique com o botão direito na pasta Assets na parte inferior e crie uma nova pasta chamada ‘Scripts’. Agora clique com o botão direito novamente e escolha ‘Criar> Script C #‘. Chame de ‘PlayerControls’.

Visual-Studio-Code

Na maioria das vezes, os scripts que criamos definirão comportamentos específicos para nossos GameObjects.

Agora clique duas vezes no seu novo script e ele será aberto no Visual Studio se você configurar tudo corretamente.

Já existe algum código aqui, que é ‘código da placa da caldeira’. Isso significa que é o código que você precisará usar em quase todos os scripts, portanto está pronto para você economizar tempo. Agora vamos adicionar um novo objeto com esta linha acima do void Start ():

public Rigidbody2D rb;

Em seguida, coloque esta próxima linha de código dentro do método Start () para encontrar o corpo rígido.

Isso basicamente irá dizer ao Unity para localizar a física anexada ao GameObject à qual esse script será associado (nosso jogador, é claro). Start () é um método que é executado assim que um novo objeto ou script é criado. Localize o objeto de física:

rb = GetComponent < Rigidbody2D > ();

Adicione isso dentro de Update ():

rb.velocity = new Vector2 ( 3 , rb.velocity.y);

Update () atualiza repetidamente e, portanto, qualquer código aqui será executado repetidamente até o objeto ser destruído. Tudo isso diz que queremos que nosso corpo rígido tenha um novo vetor com a mesma velocidade no eixo y (rb.velocity.y), mas com a velocidade de ‘3’ no eixo horizontal. À medida que você progride, provavelmente usará ‘FixedUpdate ()’ no futuro.

Salve isso e volte para o Unity. Clique no personagem do jogador e, em seguida, no inspetor, selecione Adicionar componente> Scripts e, em seguida, seu novo script. Clique em play e boom! Seu personagem agora deve se mover em direção à borda da borda como um lemming.

Nota: Se isso parecer confuso, assista ao vídeo para ver tudo sendo feito – isso ajudará!

E-book Desenvolvimento de Games
Baixe Gratuitamente o Guia Completo para se Tornar um Desenvolvedor de Games

Tenha em mãos este livro digital, para você aprender tudo que precisa para iniciar no fantástico mundo de desenvolvimento de games!

Entrada de jogador básica

Se quisermos adicionar um recurso de salto, podemos fazer isso de maneira muito simples com apenas um bit adicional de código:

if (Input.GetMouseButtonDown ( 0 )) { 
         rb.velocity = new Vector2 (rb.velocity.x, 5 ); 
         }

Isso ocorre dentro do método Update e diz que ‘se o jogador clicar’, adicione velocidade no eixo y (com o valor 5). Quando usamos if, tudo o que se segue dentro dos colchetes é usado como uma espécie de teste verdadeiro ou falso. Se a lógica dentro dos referidos colchetes for verdadeira, o código nos seguintes colchetes será executado. Nesse caso, se o jogador clicar no mouse, a velocidade será adicionada.

O Android lê o clique esquerdo do mouse tocando em qualquer lugar da tela! Então agora seu jogo possui controles básicos de toque.

Encontrando seu pé

Basicamente, isso é suficiente para criar um clone do Flappy Birds. Jogue alguns obstáculos e aprenda a destruir o jogador quando ele tocá-lo. Adicione uma pontuação em cima disso.

Se você entender isso, nenhum desafio será grande demais no futuro.

Mas temos um pouco mais de tempo para que possamos ser mais ambiciosos e criar um jogo infinito do tipo corredor. A única coisa errada com o que temos no momento é que dar um pulo ao pular mesmo quando o jogador não estiver tocando o chão, para que ele possa voar.

Corrigir isso fica um pouco mais complexo, mas é tão difícil quanto o Unity. Se você entender isso, nenhum desafio será grande demais no futuro.

Adicione o seguinte código ao seu script acima do método Update ():

public Transform groundCheck;
public Transform startPosition;
public float groundCheckRadius;
public LayerMask whatIsGround;
private bool onGround;

Adicione esta linha ao método Update acima da instrução if:

onGround = Physics2D.OverlapCircle (groundCheck.position, groundCheckRadius, whatIsGround);

Por fim, altere a seguinte linha para incluir && onGround:

if (Input.GetMouseButtonDown ( 0 ) && onGround) {

Tudo deve ficar assim:

public  class  PlayerControls : MonoBehaviour 
 { public Rigidbody2D rb;
     public Transform groundCheck;
     public Transform startPosition;
     public float groundCheckRadius;
     public LayerMask whatIsGround;
     private bool onGround; void Start () { 
     rb = GetComponent <Rigidbody2D> (); 
     } void Update () { 
         rb.velocity = new Vector2 ( 3 , rb.velocity.y);
       

  
      
         onGround = Physics2D.OverlapCircle (groundCheck.position, groundCheckRadius, whatIsGround);        if (Input.GetMouseButtonDown ( 0 ) && onGround) { 
                 rb.velocity = new Vector2 (rb.velocity.x, 5 ); 
                 } 
    } 
}
      

O que estamos fazendo aqui é criando uma nova transformação – uma posição no espaço – depois definimos seu raio e perguntamos se ela está sobrepondo uma camada chamada ground. Estamos alterando o valor do booleano (que pode ser verdadeiro ou falso), dependendo se é esse o caso ou não.

Portanto, onGround será verdadeiro se a transformação chamada groundCheck estiver sobrepondo o chão da camada.

Se você clicar em salvar e voltar para o Unity, deverá ver agora que tem mais opções disponíveis no seu inspetor ao selecionar o jogador. Essas variáveis ​​públicas podem ser vistas no próprio Unity e isso significa que podemos defini-las como quisermos.

Public-Variables

Clique com o botão direito do mouse na hierarquia à esquerda para criar um novo objeto vazio e arraste-o para que fique logo abaixo do player na janela Cena onde você deseja detectar o piso.

Renomeie o objeto ‘Check Ground’ e torne-o filho do jogador, exatamente como você fez com a câmera. Agora deve seguir o jogador, verificando o chão por baixo.

Selecione o player novamente e, no inspetor, arraste o novo objeto Verificar terreno para o espaço onde diz ‘groundCheck’. A ‘transformação’ (posição) agora será igual à posição do novo objeto. Enquanto estiver aqui, digite 0,1, onde diz raio.

Ground-Layer-Mask

Finalmente, precisamos definir nossa camada “básica”. Para fazer isso, selecione o terreno que você criou anteriormente e, em seguida, no canto superior direito do inspetor, localize onde diz ‘Camada: padrão’. Clique nesta caixa suspensa e escolha ‘Adicionar camada’.

Agora clique em voltar e, desta vez, selecione ‘ground’ como a camada da sua plataforma (repita isso para qualquer outra plataforma em que você esteja flutuando). Finalmente, onde diz ‘O que é terreno’ no seu aparelho, selecione também a camada de solo.

Agora você está dizendo ao script do jogador para verificar se o pequeno ponto na tela está sobrepondo algo que corresponda a essa camada. Graças a essa linha que adicionamos anteriormente, o personagem agora só salta quando for o caso.

Com isso, se você pressionar o play, poderá desfrutar de um jogo bastante básico, exigindo que você clique para pular no momento certo. Se você configurar seu Unity corretamente com o SDK do Android, poderá criar e executar isso e jogar no seu smartphone tocando na tela para pular.

Como criar um Jogo Para Android em nosso Treinamento?

conclusao como criar um jogo para android

Com toda certeza, tem muito mais elementos a acrescentar para fazer um jogo completo. O jogador deve ter a capacidade de morrer e reaparecer. Também queremos adicionar níveis extras e muito mais.

Meu objetivo aqui foi mostrar a você o quão rápido você pode desenvolver jogos básicos em pouco tempo. Seguindo estas instruções você deve ter conseguido construir seu corredor infinito rapidamente, deixando o Unity lidar com coisas mais complexas, como a física.

Se você sabe o que deseja criar, não precisa ser um programador sênior para fazer um jogo decente!

Eu desenvolvi um treinamento completo pensado justamente para quem deseje transformar suas ideias em jogos mas não sabe por onde começar.

Então próximo passo para você, é colocar a mão na massa comigo em projetos de jogos reais, pois além de muitos anos no mercado de desenvolvimento de games, sou professor com vasta experiência para te conduzir nesta jornada e tirar todas as suas dúvidas.

E não sou eu que digo, são os mais de 14.000 alunos capacitados por mim na Danki Code, por isso sei bem do que eu estou falando. Clique abaixo para conhecer tudo que você aprenderá em nosso treinamento.