Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desenvolvimento de Jogos em Java

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Desenvolvimento de Jogos em Java

Apresentação básica sobre como construir um jogo de Breakout em Java usando a libGDX.

Avatar for Bruno Croci

Bruno Croci

November 22, 2012
Tweet

More Decks by Bruno Croci

Other Decks in Programming

Transcript

  1. 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]
  2. Desenvolvimento de Jogos • Atividade multidisciplinar ◦ Programador ◦ Artista

    ◦ Designer ◦ Escritor ◦ Roteirista ◦ Produtor ◦ Testador ◦ Músico ◦ Engenheiro de Som ◦ . . .
  3. • 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.
  4. • 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.
  5. • 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).
  6. • 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;
  7. Estágios do Desenvolvimento • Ideia • Conceitos e Definições •

    Prototipação • Produção • Publicação
  8. 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.
  9. • 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.
  10. Raquete • Movimento lateral de acordo com a entrada do

    usuário • Não pode ultrapassar as paredes laterais
  11. Tijolos • Não têm movimento • Ficam dispostos no cenário

    • Ao serem tocados pela bola são destruídos
  12. 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.
  13. Desenvolvimento • Plataforma ◦ Desktop ◦ Android? • Linguagem de

    Programação ◦ Java • Kit de Desenvolvimento ◦ libGDX
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.