Treinamento T2Ti Jogos - Java Básico - PDF
Download "Treinamento T2Ti Jogos - Java Básico"
Bernadete Almada Pais
1 Treinamento T2Ti Jogos - Java Básico Desenvolvendo um jogo digital em java O treinamento "Desenvolvimento de Jogos Digitais - Java Básico" tem como objetivo preparar o aluno para o desenvolvimento completo de um jogo side-scroller 2D na linguagem java. Todas as etapas da criação são descritas passo-a passo, auxiliando aqueles que estão começando no mundo da programação. Para os alunos que já possuírem um bom conhecimento na linguagem Java, as possibilidades de implementação e melhoria do jogo são sugeridas ao longo do curso, oferecendo ao aluno a chance de melhorar o código e personalizar o seu próprio jogo. Ao final do treinamento, o aluno será capaz de desenvolver seu próprio jogo, baseando-se no projeto desenvolvido durante o treinamento, ou se desejar, ampliar e melhorar o "Nebula Hero" de acordo com sua própria vontade. É importante salientar ao aluno interessado, que o curso terá um suporte de EAD (Ambiente de Ensino a Distância) da T2Ti, e quaisquer dúvidas que surgirem ou sugestões sobre melhorias no jogo, poderão ser feitas por lá. Para acessar o EAD, visite:
2 Greenfoot IDE Para a realização do treinamento, foi utilizada a IDE gráfica em Java Greenfoot. A Greenfoot é uma IDE voltada para o ensino fundamental de programação, mas que possui uma interface excelente para o desenvolvimento de jogos digitais, perfeita para quem está começando a programar, e principalmente, para aquelas pessoas que ainda não tiveram contato com o desenvolvimento de jogos. É possível visitar a Greenfoot Gallery: um espaço virtual reservado para os desenvolvedores publicarem seus projetos e cenários, podendo trocar informações e sugestões sobre os mesmos. Para acessar o site da Greenfoot, visite:
3 O Projeto Nebula Hero O jogo em java Nebula Hero foi baseado no jogo R-Type (Sega Master System 1987). R-Type é um Side-scrolling Shoot-em-up Sci-fi 2D game, ou simplesmente um jogo de tiro de nave. Sua estrutura define os elementos básicos de um jogo sidescroller de tiro: Um ou mais cenários, um objeto herói, inimigos, tiros (tanto do herói quanto do inimigo), detecção de colisão, pontuação, condição de vitória e derrota. Para o jogo Nebula Hero, seguimos com esta mesma estrutura, porém limitamos o escopo para apenas um cenário que possua estas propriedades supracitadas e algumas extras: Cenário, Herói, Inimigos, Tiros, Colisão, Vida, Pontuação, Condição de Vitória e Condição de Derrota. Gameplay do jogo Movimento da Nave: As setas para cima, para baixo, para esquerda e para direita movimentam o Herói para suas respectivas direções. O Herói não poderá atravessar a área de visualização do jogo. Tiro da Nave: Tecla Espaço Dano do tiro do Herói = 10
4 Dano do tiro dos Inimigos = 10 Escudo inicial do herói = 100 Condição de vitória: Atingir pts no Score Condição de derrota: Escudo ficar menor ou igual a zero. Objetivo: Atingir os inimigos que surgem na tela, desviando de seus tiros. Inimigo Simples : Escudo = 10 Pontos = 150 Inimigo Chefes : Escudo = 80 Pontos = 800 Você pode conferir a ementa completa do curso com comentários adicionais. Vídeo Aula 01 Introdução -Seja bem vindo -O Treinamento em jogos -Ferramentas & pré-requisitos Aqui apresentaremos o instrutor, a aula e o conceito inicial do jogo que iremos criar em java, além dos pré-requisitos para realizar o curso. Duração: 00:02:57 Vídeo Aula 02 - O Projeto Nebula Hero Tópico: -Sobre o projeto "Nebula Hero"
5 O game sidescroller de tiro 2D, "Nebula Hero" é apresentado neste vídeo. O Objetivo do treinamento é criar um game em java semelhante ao apresentado no vídeo. Duração: 00:04:36 Vídeo Aula 03 - Baixando e Instalando Greenfoot -"Greenfoot Gallery" -"For Programmers" -"Download" Como instalar e utilizar a API gráfica 2D Greenfoot. Onde encontrar recursos que facilitarão o desenvolvimento do jogo e arquivos que possam auxiliar o desenvolvedor. Duração: 00:05:26 Vídeo Aula 04 - Primeiro Projeto com a Greenfoot -Criando um cenário novo -Criando um cenário Base (World.class) -Propriedades das classes (botão direito) -Instanciando com botão Direito - new Object() -Instanciando com Shift -Salvando o Status do Mundo Trabalhando com a Greenfoot, criaremos nosso primeiro cenário e exploraremos as possibilidades de sua classe. Além disso, aprenderemos alguns "shortcuts" (atalhos de teclado) e ferramentas que nos auxiliarão no desenvolvimento do jogo. Duração: 00:14:19 Vídeo Aula 05 - Projeto Nebula Hero - Criando um cenário novo
6 -Definindo sua resolução inicial (comprimento x altura x tamanho da celula) -Colocando sua imagem correta A partir desta videoaula, iniciaremos o projeto "Nebula Hero" em java. Nesta etapa, iremos definir o cenário inicial do jogo, e suas propriedades iniciais. Duração: 00:04:47 Vídeo Aula 06 - Projeto Nebula Hero - Criando um Objeto "Herói" -Criando um Ator novo (Herói) -Colocando sua imagem correta -Colocando comandos de teclado no objeto herói -Setando as imagens para subida e descida da nave (feedback visual) -Criando um "Escudo" para o Herói -Criando um método para tirar vida do Herói -Criando um método para checar se o Herói está vivo -Colocando a nave no MeuMundo e salvando meu mundo (método prepare) Nesta etapa, será criada a classe Herói com suas propriedades iniciais como: imagens 2D, comandos de teclado, variáveis, métodos e eventos que checarão seu status. Duração: 00:28:08 Vídeo Aula 07 - Projeto Nebula Hero - Classe tiro -Criando uma classe tiro -Colocando sua imagem correta -Fazendo o herói atirar -Criando movimento automático -Detectando colisão com o fim do cenário
7 -Colocando áudio Da mesma forma que o herói foi criado, uma classe para o objeto tiro será criada, todavia suas propriedades serão diferentes. "Assets" de gráfico e som serão instanciados nesta classe, a detecção de colisão com cenário será implementada e um movimento automático será definido. Nesta etapa também será possível fazer o herói atirar pela primeira vez. Duração: 00:27:43 Vídeo Aula 08 - Projeto Nebula Hero - Criando um inimigo -Colocando sua imagem correta -Movimentando o inimigo com método move() -Criando um "Escudo" para o inimigo -Criando um método para tirar vida do inimigo -Criando um método para checar se o inimigo está vivo Uma classe inimigo será criado e seus métodos explicados. O inimigo também ganhará um escudo e movimento automático. Duração: 00:08:26 Vídeo Aula 09 - Projeto Nebula Hero - Atingindo e Destruindo o inimigo -Criando um método para detectar colisão -Utilizando o método getoneintersectiongobject(classe) -Criando a condição de colisão -Setando o dano -Removendo o tiro A colisão do objeto inimigo com o objeto tiro será explicada nesta etapa, sendo ela uma
8 das mais importantes do treinamento em jogos. Será utilizado um método para checar uma condição de colisão entre os objetos, e a remoção dos mesmos. Duração: 00:23:01 Vídeo Aula 10 - Projeto Nebula Hero - Como fazer o inimigo atirar -Criando uma classe tiro_inimigo -Colocando sua imagem correta -Setando o dano -Criando movimento automático -Detectando colisão com Herói e bordas do cenário -Colocando som de tiro -Criando o método tiro() no inimigo Nesta etapa, o inimigo ganhará a possibilidade de atirar de volta no herói. Um método de causar danos será implementado, e uma nova classe tiro_inimigo será criada. Duração: 00:10:27 Vídeo Aula 11 - Projeto Nebula Hero - Detectando colisão entre naves -Criando o método detectarcolisao e causar danos no inimigo -Criando o método detectarcolisao e causar danos no herói A última etapa na detecção de colisão entre objetos do jogo. Será desenvolvido um método que reconheça a colisão entre a nave do herói e as naves inimigas. Duração: 00:11:50 Vídeo Aula 12 - Projeto Nebula Hero - Colocando musica no cenário -Criando o objeto BG_music
9 -Executando suas funções (Playloop, pause, stop e setvolume) -Iniciando a musica dentro das funções started e stopped do objeto world e o level started Uma das etapas mais importantes para a produção. Aqui aprenderemos a instanciar uma música no cenário e controlar suas funções: Play, Stop, Pause, Loop e Volume. Duração: 00:12:54 Vídeo Aula 13 - Projeto Nebula Hero - Criando um contador -Passando o string nome -Criando a imagem e definindo as cores -Criando o método mostra() -Criando método getescudo() e getscore no herói -Criando o método setscore() no heroi -Implementar método _mundo.heroi.setscore(pontos) no inimigo -Criar contadores "contadorescudo" e "contadorscore" Um dos elementos mais importantes para o feedback dos jogadores será criado nesta videoaula. O Contador servirá como referência mais tarde para o jogador acompanhar sua pontuação e vida no decorrer do jogo. Duração: 00:35:22 Vídeo Aula 14 - Projeto Nebula Hero - Timers & Inimigos Randômicos -Criando Inimigos Randômicos - método "Level_1()" -Timer - metodo "timer()" -Criando um inimigo chefe -Criando mais tiros para o inimigo chefe -Criando uma variação no movimento do inimigo
10 Os timers são elementos fundamentais para qualquer jogo digital. Aqui aplicaremos timers que controlarão o fluxo do jogo e a aparição de inimigos no cenário. Duração: 00:33:36 Vídeo Aula 15 - Projeto Nebula Hero - Colocando um background animado -Refazendo a classe ScrollWorld -Cuidados com o Bug do pezinho da Greenfoot -Cuidados com o Tamanho da imagem (aumentando a resolução) -Super 800 x 480 Para uma melhor produção gráfica, criaremos através de um código desenvolvido por um programador da comunidade Greenfoot, um background animado para o nosso jogo em java. Duração: 00:16:11 Vídeo Aula 16 - Projeto Nebula Hero - Feedback visual Ajustando Detalhes & Extras - -Método GUI() -Mudar cores do "contadorescudo" -Timer e regeneração no escudo do herói -Partículas Nesta videoaula, implementaremos os contadores criados nas aulas anteriores em um GUI (graphical user interface) que apresentará o escudo e o score do jogador. Além disso, desenvolveremos partículas para criação de efeitos especiais no nosso jogo e um método para regenerar o escudo. Duração: 00:37:37 Vídeo Aula 17 - Projeto Nebula Hero - Criando sprites, tela de vitória e derrota
11 - -Criando classe sprite -Gameover na morte do herói -Youwin no herói - método checarscore(condição de vitoria) Definiremos as condições de vitória e derrota do jogo, e criaremos uma classe sprite para lançar os assets gráficos que definirão cada uma destas etapas. Duração: 00:10:43 Vídeo Aula 18 - Projeto Nebula Hero - Criando uma tela inicial, tela de Créditos e How to play - -Criando o cenário Menu -Sprites logo e start -Boolean menustarted -Timer para trocar as imagens do menu -Condições para trocar as imagens do menu -Ordem de desenho das classes "setpaintorder" nos cenários -Configurando a Greenfoot para dar load no menu Nesta etapa, a última do estágio de produção e desenvolvimento, criaremos um menu inicial com créditos e instruções de como jogar (how to play). Duração: 00:36:15 Vídeo Aula 19 - Projeto Nebula Hero - Publicando o arquivo Tópico: -Share Webpage Não menos importante, exploraremos as possibilidades que a Greenfoot nos oferece para a publicação do nosso jogo 2D em java.
12 Duração: 00:03:44 Vídeo Aula 20 - Projeto Nebula Hero - Revisão do Projeto Um resumo de todas as etapas do projeto Nebula Hero Duração: 00:15:41 Vídeo Aula 21 - Projeto Nebula Hero - Tópico Extra - Criando Sons com o SFXr Tópico especial para aqueles que desejam criar seus próprios efeitos sonoros. Duração: 00:02:00 Vídeo Aula 22 - Projeto Nebula Hero - Desafios Finais -Novos Cenários -Mais Levels -Criar Multiplayer Local (teclado) -Criar power-ups (tiro, vida, aliados, etc..) -Melhorar AI (pathfinding & comportamento) -Desafio do Melhor "BOSS" Aqui desafiamos o aluno a melhorar seu game em java, explorando os seguintes tópicos: Duração: 00:05:01 Para mais novidades na área de jogos, ou cursos, treinamentos e videoaulas sobre criação e desenvolvimento de jogos, visite o site: