Workshop Construct 2 Gutenberg Neto gutenberg@fuze.cc
Apresentação Graduado em Ciência da Computação UFPB Mestrado em Informática UFPB IA em Jogos Eletrônicos 6 anos de experiência com programação e pesquisa em sistemas distribuídos e de alta complexidade C, C++, Objective-C, Java... Sócio/Desenvolvedor Fuze 3 anos de experiência no desenvolvimento de aplicativos móveis Objective-C 3 anos de experiência em desenvolvimento comercial de jogos programação e game design 20+ anos de experiência como gamer :-)
Construct 2
Construct 2 Gratuito (com limitações) HTML5 Jogos multiplataforma Interface Drag and Drop Livre de Código Programação via eventos Comportamentos padrão (Behaviors) Ex: Plataforma Desenvolvimento rápido Prototipagem
Construct 2
Construct 2
Recursos Site oficial: https://www.scirra.com/construct2 Tutoriais: http://www.scirra.com/tutorials/ Manual (em inglês): http://bit.ly/manualc2 Scirra Arcade: http://www.scirra.com/arcade
Criação de um novo projeto Projeto vazio Projetos configurados Mobile Facebook Windows... Templates Plataforma Tiro Corrida... Exemplos Iluminação Efeitos...
Principais componentes Layouts Event sheets Objetos Layers
Vamos criar nosso próprio jogo!
Conceito Jogo de tiro com visão top-down Câmera por cima O personagem controlado pelo jogador deve: Mover-se com as setas do teclado Mirar e atirar com o mouse Objetivo Matar o maior número de inimigos antes de ser morto Download de imagens http://bit.ly/imagensc2workshop
Configurações A partir de um novo projeto vazio Layout Size 1024x1024 Window Size 640x480
Background Primeiro, adicionamos o background do jogo
Camadas Renomeamos a camada de background Pode ser trancada para evitar modificações acidentais no futuro Criamos uma nova camada para os elementos principais do jogo
Objetos do jogo Adicionando e nomeando os objetos principais do jogo Jogador Inimigo Behaviors do jogador 8Direction BoundToLayout ScrollTo
Objetivos - Jogador Apontar para a posição do mouse Atirar Matar o inimigo ao acertá-lo com algum tiro Morrer ao bater no inimigo Solução Eventos
Eventos Execução de ações de acordo com determinadas condições Servem para adicionar comportamentos específicos ao jogo Lógica do jogo Comportamentos não oferecidos por padrão pelo programa Cada evento só é executado quando suas condições forem verdadeiras
Event sheet Lista de eventos Uma lista por layout Eventos avaliados pela ordem de listagem Uma vez a cada tick (frame do jogo) Normalmente 60 vezes por segundo
Condições Jogador Apontar para a posição do mouse Sempre System -> Every tick Atirar Clique com o botão esquerdo Mouse -> On mouse click Matar o inimigo ao acertá-lo com algum tiro Colisão entre o tiro e o inimigo Objeto -> On collision with another object Morrer ao bater no inimigo Colisão entre o jogador e o inimigo Objeto -> On collision with another object
Objetivos - Inimigo Simular algum tipo de inteligência Perseguir o jogador Adicionar mais inimigos na tela Criar um novo inimigo assim que algum for morto Desafio infinito
Simular inteligência Manter o inimigo sempre se movimentando para a frente Behavior Bullet Rotacionar gradualmente em direção à posição do jogador Inimigo -> Rotate toward position
Tipos de Objeto e Instâncias Tipo de objeto Classe de objeto, indicando as características principais que os objetos daquela classe vão possuir (imagem, behaviors, etc.) Criado ao inserir um novo objeto no Construct 2 Instância Representação individual de um tipo de objeto Todas as instâncias compartilham das características do tipo de objeto No jogo, instâncias comportam-se individualmente
Tipos de Objeto e Instâncias Na imagem, há dois tipos de objeto Jogador (Uma instância) Monstro (Oito instâncias) Todas as instâncias possuem a mesma imagem, regras de comportamento, entre outros Durante a partida, comportam-se de maneira autônoma Se uma instância morrer, as outras continuam no jogo
Tipos de Objeto e Instâncias Para criar novos tipos de objeto Inserir novo objeto Para criar novas instâncias Copiar e colar um objeto Duplicar um objeto Arrastar uma instância com a tecla CTRL pressionada Arrastar da janela de objetos para o layout
Criar novo inimigo Sempre que um inimigo for destruído, criar outra instância System -> Create object Criar o inimigo em algum ponto fora da tela, de maneira aleatória X fixo (fora da tela) Y aleatório random()
Modificando o jogo E para fazer os monstros serem destruídos apenas após levarem 3 tiros? Piscarem quando forem acertados
Variáveis de Instância Variáveis associadas a cada instância de uma classe Cada instância possui diferentes cópias da mesma variável Valor individual Ex: Vida de personagens Atributos: Name Type Initial value
Variáveis de Instância Possíveis tipos de variáveis no Construct 2 Boolean Valor booleano true / false Número Valor númerico inteiro ou decimal Text Valor textual
Piscarem quando acertados Adicionar behavior Flash Mandar piscar no momento em que receber algum tipo Inimigo -> Flash
Adicionando elementos Adicionar pontuação ao jogo Jogador deve ganhar pontos sempre que matar algum inimigo Mostrar a pontuação na tela Permitir que o jogo seja reiniciado ao apertar a tecla R
Variáveis Globais Apenas uma cópia em todo o jogo Valor único Pode ser modificado via eventos Disponível em todos os layouts Ex: Pontuação do jogador Opcionalmente constante Valores globais imutáveis Ex: Gravidade Para adicionar Botão direito no event sheet -> Add global variable
Mostrar a pontuação Criar camada de interface Parallax 0,0 Adicionar um texto à camada Atualizar sempre com a pontuação atual Text -> Set text
Reiniciar o jogo Adicionar Keyboard ao layout Detectar tecla R pressionada Keyboard -> On key pressed Mandar reiniciar o layout Reiniciar o valor da pontuação
Como se aprofundar mais
Aprofundamento Adicionar novos recursos ao jogo do workshop Novos layouts Inimigos Elementos de jogabilidade Estudar e modificar os templates oferecidos pelo Construct 2 Olhar os tutoriais disponibilizados pela Scirra http://www.scirra.com/tutorials/ Acima de tudo Desenvolver jogos!
Outros recursos do Construct 2 Motor de física Efeitos Partículas Efeitos sonoros e música Debugging Exportação para diversas plataformas...
Downloads Download dos slides http://bit.ly/c2workshop Download do projeto http://bit.ly/projetoc2workshop