desenvolvimento de jogos em java

39
DESENVOLVIMENTO Bruno Croci - http://bruno.croci.me/ DE JOGOS COM JAVA

Upload: bruno-croci

Post on 22-Apr-2015

7.077 views

Category:

Technology


7 download

DESCRIPTION

Apresentação sobre desenvolvimento de jogos e como desenvolver um Breakout básico.

TRANSCRIPT

Page 1: Desenvolvimento de Jogos em Java

DESENVOLVIMENTO

Bruno Croci - http://bruno.croci.me/

DE JOGOSCOM JAVA

Page 2: Desenvolvimento de Jogos em Java

Bruno Croci

● Estudante de SI;● desenvolvedor de jogos na HIVE;● trabalha com programação de jogos há mais

de dois anos;● desenvolve e estuda joguinhos há quase

dez anos;● curte metal \m/.

● http://crocidb.com/blog● http://bruno.croci.me/● @CrociDB● [email protected]

Page 3: Desenvolvimento de Jogos em Java
Page 4: Desenvolvimento de Jogos em Java

Desenvolvimento de Jogos● Atividade multidisciplinar

○ Programador○ Artista○ Designer○ Escritor○ Roteirista○ Produtor○ Testador○ Músico○ Engenheiro de Som○ . . .

Page 5: Desenvolvimento de Jogos em Java
Page 6: Desenvolvimento de Jogos em Java
Page 7: Desenvolvimento de Jogos em Java

PROGRAMADOR

ARTISTA

DESIGNER

Page 8: Desenvolvimento de Jogos em Java

● Antigamente os jogos eram feitos por uma única pessoa.

● O Programador era resonsável por desenvolver, implementar os gráficos e sons depois de, claro, ter a ideia.

Page 9: Desenvolvimento de Jogos em Java

● Livro sobre game design de 1984 do Chris Crowford;

● conta algumas histórias sobre o desenvolvimento de alguns de seus jogos;

● explica bem o workflow de desenvolvimento da época;

● nova edição (2011) para kindle com comentários atuais do autor sobre suas ideias.

Page 10: Desenvolvimento de Jogos em Java

● Análise da plataforma do Atari 2600;

● demonstra a dificuldade que era desenvolver para essa plataforma;

● um bom histórico da evolução dos jogos (e do desenvolvimento).

Page 11: Desenvolvimento de Jogos em Java

● Mas ainda hoje há bons jogos sendo produzidos por uma única pessoa ou pequenas equipes;

● compartilhamento de assets pela internet;

● compra de assets;● contratação de freelancers;

Page 12: Desenvolvimento de Jogos em Java

Braid

Super Meat Boy

Page 13: Desenvolvimento de Jogos em Java

Estágios do Desenvolvimento

● Ideia● Conceitos e Definições● Prototipação● Produção● Publicação

Page 14: Desenvolvimento de Jogos em Java

IdeiaMais um

Clone de

Breakout

Page 15: Desenvolvimento de Jogos em Java
Page 16: Desenvolvimento de Jogos em Java

Breakout / Arkanoid

● Primeiro Breakout foi implementado por Steve Wozniak para a Atari, em 1976!

● O conceito e a ideia, entretando, foi feito por Nolan Bushnell, fundador da Atari.

● Embora o jogo tivesse sido criado para arcade, ele foi portado para os console posteriores da Atari.

● Arkanoid é um jogo que implementa a mesma jogabilidade do Breakout e foi desenvolvido por uma empresa japonesa em 1986 para Arcade.

Page 17: Desenvolvimento de Jogos em Java

● Mostra o que é diversão e como ela é aplicada em jogos;

● texto bem humorado e de fácil compreensão;

● clássico da área de jogos.

● Tratado completo sobre desenvolvimento de jogos;

● fala desde a fase de ideias até a fase de publicação;

● indicado para todos que trabalham com jogos

● Principal livro sobre game design atualmente;

● cobre todos os aspectos do design de jogos, desde princípios psicológicos, sem ser muito teórico.

Page 18: Desenvolvimento de Jogos em Java

Conceito

Page 19: Desenvolvimento de Jogos em Java

Bola

● É movida automaticamente● Rebate

○ Paredes laterais○ Teto○ Raquete○ Tijolos

Page 20: Desenvolvimento de Jogos em Java

Raquete

● Movimento lateral de acordo com a entrada do usuário

● Não pode ultrapassar as paredes laterais

Page 21: Desenvolvimento de Jogos em Java

Tijolos

● Não têm movimento● Ficam dispostos no cenário● Ao serem tocados pela bola são destruídos

Page 22: Desenvolvimento de Jogos em Java

Game

● Finaliza quando:○ O jogador quebra todos os tijolos com a bola. Neste

caso o jogador ganha.○ Todas as bolas do jogador foram disperdiçadas,

resultando em derrota.● O jogador tem 3 bolas. Quando uma bola cai

no buraco, outra é usada.

Page 23: Desenvolvimento de Jogos em Java

Prototipação

● Testes de○ mecânica de jogo;○ plataforma;○ métodos de entrada;○ etc.

Page 24: Desenvolvimento de Jogos em Java

Arte

http://crocidb.com/files/java-game/assets.zip

Page 25: Desenvolvimento de Jogos em Java

Desenvolvimento

● Plataforma○ Desktop○ Android?

● Linguagem de Programação○ Java

● Kit de Desenvolvimento○ libGDX

Page 26: Desenvolvimento de Jogos em Java

Por que Java?

● Todos vocês sabem (?)● Multi-plataforma● Java não é muito usada para jogos:

○ todas as grandes engines de jogos são escritas em C/C++;

○ não tem suporte em consoles;○ performance muitas vezes demanda acesso direto

ao hardware;○ no mundo independente é um pouco diferente.

Page 27: Desenvolvimento de Jogos em Java
Page 28: Desenvolvimento de Jogos em Java

Por que libGDX?

● roda em Desktop e Android;● exporta para HTML5;● usa OpenGL ES, ou seja, tem aceleração

por hardware;● suporte a 2D e 3D;● biblioteca de física embutida;● serialização por json;● ferramenta de criação de projeto simples;● editor de partículas;● código aberto;● etc.

Page 29: Desenvolvimento de Jogos em Java
Page 30: Desenvolvimento de Jogos em Java

http://code.google.com/p/libgdx/downloads/list

Download

Última versão: 0.9.6http://code.google.com/p/libgdx/downloads/detail?name=libgdx-0.9.6.zip&can=2&q=

Page 31: Desenvolvimento de Jogos em Java

Criando um Projeto

gdx-setup-ui.jar

Page 32: Desenvolvimento de Jogos em Java
Page 33: Desenvolvimento de Jogos em Java

Esqueleto da aplicação

● create - é executado quando o jogo é iniciado;● dispose - é executado quando a aplicação é

fechada;● render - é executado a cada frame do jogo (loop

principal);● resize - é executado quando a janela é

redimensionada (ou quando muda a direção no aparelho);

● pause/resume - é executado quando a tecla home do aparelho é pressionada e quando o foco volta ao aplicativo respectivamente.

Page 34: Desenvolvimento de Jogos em Java

Loop Principal

Page 35: Desenvolvimento de Jogos em Java
Page 36: Desenvolvimento de Jogos em Java

Problemas & Melhoras

● implementar física mais realista;● melhorar colisão (há vários bugs quando a

bola bate no tijolo ou na raquete);● implementar sistema de pontos/tempo e

número de bolas;● implementar tela de menu;● colocar sons;● gráficos mais bonitos;● sistema de fases com vários níveis de

dificuldade;● etc.

Page 37: Desenvolvimento de Jogos em Java

Publicação

● Desktop ou Applet:○ Gerar um arquivo JAR○ Distribuir o jogo em sites de jogos gratuitos como o

GameJolt.● HTML5:

○ Vários sites de jogos com suporte a HTML5: Kongregate, HTML5Gamer.net, HTML5Games.com, etc.

● Android: Colocar no Google Play● Criar um site para o jogo● Divulgar em fóruns de jogos e comunidades

em redes sociais.

Page 38: Desenvolvimento de Jogos em Java

Projeto● Código-fonte:

○ https://github.com/CrociDB/breakout-java-workshop● Slides:

○ http://crocidb.com/files/java-game/slides.pdf● Jogo:

○ http://crocidb.com/files/java-game/breakout.jar

Page 39: Desenvolvimento de Jogos em Java

● http://crocidb.com/blog

● http://bruno.croci.me/

● @CrociDB

[email protected]