desenvolvimento de jogos em java

Post on 22-Apr-2015

7.077 Views

Category:

Technology

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

DESENVOLVIMENTO

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

DE JOGOSCOM 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● bruno@croci.me

Desenvolvimento de Jogos● Atividade multidisciplinar

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

PROGRAMADOR

ARTISTA

DESIGNER

● 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.

● 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.

● 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).

● 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;

Braid

Super Meat Boy

Estágios do Desenvolvimento

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

IdeiaMais um

Clone de

Breakout

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.

● 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.

Conceito

Bola

● É movida automaticamente● Rebate

○ Paredes laterais○ Teto○ Raquete○ Tijolos

Raquete

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

● Não pode ultrapassar as paredes laterais

Tijolos

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

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.

Prototipação

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

Arte

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

Desenvolvimento

● Plataforma○ Desktop○ Android?

● Linguagem de Programação○ Java

● Kit de Desenvolvimento○ libGDX

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.

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.

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=

Criando um Projeto

gdx-setup-ui.jar

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.

Loop Principal

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.

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.

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

● http://crocidb.com/blog

● http://bruno.croci.me/

● @CrociDB

● bruno@croci.me

top related