Aula Interativa de Programação de Jogos

Introdução

Bem-vindo! Vamos explorar como os jogos são criados e como podemos dar os primeiros passos na programação.

Mercado de Jogos

O mercado de jogos é uma das indústrias mais lucrativas do entretenimento, abrangendo diversas plataformas, como consoles, PCs e dispositivos móveis. Ele está dividido entre grandes produções (AAA) e o mercado independente (indie).

1. Jogos AAA (Triple-A)

Os jogos AAA são grandes produções desenvolvidas por estúdios com orçamentos elevados e equipes grandes. Eles buscam gráficos de última geração, mecânicas refinadas e marketing massivo.

2. Jogos Indie

Os jogos indie são desenvolvidos por pequenas equipes ou até mesmo por uma única pessoa, geralmente com orçamento limitado, mas com grande liberdade criativa. Muitos títulos indie são conhecidos por trazer mecânicas inovadoras ou histórias impactantes.

3. O Mercado de Jogos Mobile

Jogos para dispositivos móveis são um segmento em rápido crescimento, acessíveis a bilhões de pessoas. Eles combinam simplicidade com jogabilidade viciante, utilizando modelos de negócio como compras dentro do app.

4. Modelos de Monetização no Mercado

O mercado de jogos utiliza diferentes modelos de monetização:

5. Oportunidades no Mercado de Jogos

Com o crescimento da indústria, surgem diversas oportunidades em áreas como:

O que é GameMaker Studio 2?

O GameMaker Studio 2 é uma game engine poderosa e acessível, voltada principalmente para o desenvolvimento de jogos 2D. Ele oferece uma interface visual intuitiva combinada com uma linguagem de programação própria chamada GML (GameMaker Language), o que permite criar jogos desde simples até projetos mais complexos.

Recursos e Ferramentas do GameMaker

Por que usar o GameMaker Studio 2?

O GameMaker Studio é amplamente utilizado tanto por iniciantes quanto por desenvolvedores mais experientes, graças à sua facilidade de uso e à flexibilidade que oferece. Além disso, ele foi a engine por trás de vários sucessos indie, como:

O GameMaker Studio 2 oferece suporte para exportar jogos para várias plataformas, incluindo Windows, macOS, Android, iOS e consoles como Nintendo Switch e PlayStation, o que torna possível transformar um projeto pessoal em um produto comercial.

Conceitos Básicos

Antes de começar a desenvolver, é importante entender alguns conceitos essenciais que serão usados durante a criação dos jogos.

1. Sprites

Um sprite é uma imagem (ou sequência de imagens) que representa um objeto ou personagem no jogo. Ele pode ser estático (como uma árvore) ou animado (como um personagem andando). No GameMaker, você pode criar ou importar sprites para dar vida aos objetos visuais do seu jogo.

Exemplo: Um sprite de personagem terá diferentes quadros para representar uma animação de movimento.

2. Objetos

Os objetos são os elementos dinâmicos que interagem no jogo. Cada objeto pode ter um sprite associado e eventos que definem o comportamento dele. Por exemplo, um objeto pode representar o jogador, inimigos, ou itens coletáveis.

Exemplo: Um objeto “jogador” pode ter um sprite de personagem e eventos que controlam seu movimento pelas teclas do teclado.

3. Eventos

Os eventos são ações ou mudanças que ocorrem em resposta a uma interação ou condição. No GameMaker, cada objeto pode ter eventos para reagir a coisas como:

4. Colisões

A colisão é o momento em que dois objetos se encontram e interagem. A verificação de colisões é essencial para implementar mecânicas como combate ou coleta de itens. No GameMaker, as colisões podem ser configuradas para que objetos diferentes tenham reações distintas.

Exemplo: Quando o jogador colide com um inimigo, ele perde pontos de vida; quando colide com um item, ele ganha uma habilidade especial.

5. Rooms

As rooms são os cenários do jogo, onde os objetos são posicionados e as interações ocorrem. Elas podem representar diferentes fases, menus ou áreas exploráveis.

Exemplo: Um jogo de plataforma pode ter uma room para cada nível, com obstáculos e inimigos diferentes.

6. Scripts e Código

Além de configurar eventos usando blocos visuais, você pode usar scripts em GML para personalizar a lógica do jogo. A linguagem GML é similar a JavaScript e permite criar comportamentos mais complexos, como inteligência artificial para inimigos ou sistemas de física avançados.

Tutorial: Criando um Jogo no Estilo Zelda

Este tutorial ensina como criar um jogo básico inspirado em Zelda: A Link to the Past, cobrindo:

1. Criando Sprites

Primeiro, crie dois sprites:

2. Criando Objetos

Agora, crie os objetos:

3. Movimentação do Personagem

No evento Step do oJogador, adicione o seguinte código para movimentação em quatro direções.

    var velocidadeDoMovimento = 4;
    
    if (keyboard_check(vk_left)) {
        x -= velocidadeDoMovimento;
        sprite_index = sJogadorEsquerda;
    } 
    else if (keyboard_check(vk_right)) {
        x += velocidadeDoMovimento;
        sprite_index = sJogadorDireita;
    }
    else if (keyboard_check(vk_up)) {
        y -= velocidadeDoMovimento;
        sprite_index = sJogadorCima;
    }
    else if (keyboard_check(vk_down)) {
        y += velocidadeDoMovimento;
        sprite_index = sJogadorBaixo;
    }
    

4. Configurando a Colisão

Para garantir que o jogador não atravesse as paredes, adicione um evento de Collision no oJogador contra o oParede. No evento de colisão, use o seguinte código:

    if (place_meeting(x, y, oParede)) {
        // Impede o movimento na direção em que há colisão
        if (keyboard_check(vk_left)) x += velocidadeDoMovimento;
        if (keyboard_check(vk_right)) x -= velocidadeDoMovimento;
        if (keyboard_check(vk_up)) y += velocidadeDoMovimento;
        if (keyboard_check(vk_down)) y -= velocidadeDoMovimento;
    }
    

5. Criando o Mapa

No GameMaker, abra uma Room e posicione objetos para criar o cenário. Coloque:

6. Testando o Jogo

Agora é só rodar o jogo e verificar se o personagem pode se mover livremente e se as colisões com as paredes estão funcionando corretamente.