SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
DESENVOLVIMENTO
DE   JOGOS
       COM JAVA




             Bruno Croci - http://bruno.croci.me/
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
Ideia
    Mais 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.
● Tratado completo
                       sobre
                       desenvolvimento de
                       jogos;
                     ● fala desde a fase de
                       ideias até a fase de
                       publicação;
                     ● indicado para todos
● Mostra o que é       que trabalham com
  diversão e           jogos
  como ela é
  aplicada em
  jogos;                                      ● Principal livro sobre
● texto bem                                     game design
  humorado e de                                 atualmente;
  fácil                                       ● cobre todos os
  compreensão;                                  aspectos do
● clássico da área                              design de jogos,
  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.
Download

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



  Última versão: 0.9.6
      http://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

Mais conteúdo relacionado

Mais procurados

Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Potiguar Indie Games
 
Apostila do game maker 8.0 (português)
Apostila do game maker 8.0 (português)Apostila do game maker 8.0 (português)
Apostila do game maker 8.0 (português)Rafyusq Queiroz
 
Quer fazer um jogo? Começe aqui!
Quer fazer um jogo? Começe aqui!Quer fazer um jogo? Começe aqui!
Quer fazer um jogo? Começe aqui!Luiz Nörnberg
 
Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)
Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)
Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)Cícero Liberato
 
Sessao 1 - Formação Unity
Sessao 1 -  Formação UnitySessao 1 -  Formação Unity
Sessao 1 - Formação UnityClara Ferreira
 
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.Caio Vinicius Marques Teixeira
 
Desenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDesenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDiogo Padilha
 
Palestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de JogosPalestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de Jogosjuliocoopergames
 
Sessao 2 - Formação Unity
Sessao 2 - Formação UnitySessao 2 - Formação Unity
Sessao 2 - Formação UnityClara Ferreira
 
Sessao 5 - Formação Unity
Sessao 5 - Formação UnitySessao 5 - Formação Unity
Sessao 5 - Formação UnityClara Ferreira
 
Games e inovacao tecnologica
Games e inovacao tecnologicaGames e inovacao tecnologica
Games e inovacao tecnologicaAlexsandro
 
Construção de jogos com o motor unity3d (2013)
Construção de jogos com o motor unity3d (2013)Construção de jogos com o motor unity3d (2013)
Construção de jogos com o motor unity3d (2013)Eduardo Bonfandini
 
Gamification, Gaming Concepts & Game Design
Gamification, Gaming Concepts & Game DesignGamification, Gaming Concepts & Game Design
Gamification, Gaming Concepts & Game Designvincevader
 

Mais procurados (20)

Exemplo de GDD
Exemplo de GDDExemplo de GDD
Exemplo de GDD
 
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
Mecânica de jogos digitais: documentando com Behaviour Driven Developemnt (BD...
 
Apostila do game maker 8.0 (português)
Apostila do game maker 8.0 (português)Apostila do game maker 8.0 (português)
Apostila do game maker 8.0 (português)
 
Quer fazer um jogo? Começe aqui!
Quer fazer um jogo? Começe aqui!Quer fazer um jogo? Começe aqui!
Quer fazer um jogo? Começe aqui!
 
Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)
Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)
Design de Jogos I - Fundamentos principais (Grupo de estudos ETEC)
 
Apresentação TCC Games
Apresentação TCC GamesApresentação TCC Games
Apresentação TCC Games
 
Comparativo entre Engines de Jogos em 3d
Comparativo entre Engines de Jogos em 3dComparativo entre Engines de Jogos em 3d
Comparativo entre Engines de Jogos em 3d
 
Curso Unity3D
Curso Unity3DCurso Unity3D
Curso Unity3D
 
Sessao 1 - Formação Unity
Sessao 1 -  Formação UnitySessao 1 -  Formação Unity
Sessao 1 - Formação Unity
 
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
 
Desenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDesenvolvendo Jogos com Scratch
Desenvolvendo Jogos com Scratch
 
Palestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de JogosPalestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de Jogos
 
Sessao 2 - Formação Unity
Sessao 2 - Formação UnitySessao 2 - Formação Unity
Sessao 2 - Formação Unity
 
Sessao 5 - Formação Unity
Sessao 5 - Formação UnitySessao 5 - Formação Unity
Sessao 5 - Formação Unity
 
Histori do videogame
Histori do videogameHistori do videogame
Histori do videogame
 
Games e inovacao tecnologica
Games e inovacao tecnologicaGames e inovacao tecnologica
Games e inovacao tecnologica
 
Construção de jogos com o motor unity3d (2013)
Construção de jogos com o motor unity3d (2013)Construção de jogos com o motor unity3d (2013)
Construção de jogos com o motor unity3d (2013)
 
Unity - Sessão 10
Unity - Sessão 10Unity - Sessão 10
Unity - Sessão 10
 
Unity - Sessão 12
Unity  - Sessão 12Unity  - Sessão 12
Unity - Sessão 12
 
Gamification, Gaming Concepts & Game Design
Gamification, Gaming Concepts & Game DesignGamification, Gaming Concepts & Game Design
Gamification, Gaming Concepts & Game Design
 

Destaque

Criando jogos digitais em java
Criando jogos digitais em javaCriando jogos digitais em java
Criando jogos digitais em javaMichel Montenegro
 
Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Antonio Marin Neto
 
Android ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRecAndroid ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRecAntonio Marin Neto
 
Explorando novas telas com o Google TV
Explorando novas telas com o Google TVExplorando novas telas com o Google TV
Explorando novas telas com o Google TVAntonio Marin Neto
 
Netbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java DesktopNetbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java Desktopelliando dias
 
Capítulo 03 - Conquistando vantagem competitiva com os sistemas de informação
Capítulo 03 - Conquistando vantagem competitiva com os sistemas de informaçãoCapítulo 03 - Conquistando vantagem competitiva com os sistemas de informação
Capítulo 03 - Conquistando vantagem competitiva com os sistemas de informaçãoEverton Souza
 
Criando uma Agenda simples com NetBeans
Criando uma Agenda simples com NetBeansCriando uma Agenda simples com NetBeans
Criando uma Agenda simples com NetBeansSerge Rehem
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_javasamuelthiago
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java BasicoJoel Lobo
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 

Destaque (14)

Criando jogos digitais em java
Criando jogos digitais em javaCriando jogos digitais em java
Criando jogos digitais em java
 
Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!
 
Android ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRecAndroid ICS Highlights - AndroidRec
Android ICS Highlights - AndroidRec
 
Explorando novas telas com o Google TV
Explorando novas telas com o Google TVExplorando novas telas com o Google TV
Explorando novas telas com o Google TV
 
Netbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java DesktopNetbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java Desktop
 
Capítulo 03 - Conquistando vantagem competitiva com os sistemas de informação
Capítulo 03 - Conquistando vantagem competitiva com os sistemas de informaçãoCapítulo 03 - Conquistando vantagem competitiva com os sistemas de informação
Capítulo 03 - Conquistando vantagem competitiva com os sistemas de informação
 
Criando uma Agenda simples com NetBeans
Criando uma Agenda simples com NetBeansCriando uma Agenda simples com NetBeans
Criando uma Agenda simples com NetBeans
 
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Semelhante a Desenvolvimento de Jogos em Java

Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...Impacta Eventos
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the gameBruno Cicanci
 
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso UnipDesenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso Unipjonathanblacknight
 
It’s all about the game
It’s all about the gameIt’s all about the game
It’s all about the gameBruno Cicanci
 
Game jams e Impacto na indústria local - Campus Party Natal 2018
Game jams e Impacto na indústria local - Campus Party Natal 2018Game jams e Impacto na indústria local - Campus Party Natal 2018
Game jams e Impacto na indústria local - Campus Party Natal 2018Potiguar Indie Games
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioLuiz Nörnberg
 
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Santos
Desenvolvimento de jogos e ogre 3D - Palestra Fatec SantosDesenvolvimento de jogos e ogre 3D - Palestra Fatec Santos
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Santosjonathanblacknight
 
Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014Bruno Campagnolo
 
Introdução do DirectX com C++
Introdução do DirectX com C++Introdução do DirectX com C++
Introdução do DirectX com C++José Farias
 
Evolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unityEvolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unityAnderson Molina
 
Os principios do game design
Os principios do game designOs principios do game design
Os principios do game designAryel Bargas
 
Jogos independentes
Jogos independentesJogos independentes
Jogos independentesPaulo Zucco
 
6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio Upload6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio UploadKao Tokio
 
Introdução sobre desenvolvimento de games
Introdução sobre desenvolvimento de gamesIntrodução sobre desenvolvimento de games
Introdução sobre desenvolvimento de gamesRodrigo Rodrigues
 
Desenvolvimento de jogos e Ogre 3D - Dev In Santos
Desenvolvimento de jogos e Ogre 3D - Dev In SantosDesenvolvimento de jogos e Ogre 3D - Dev In Santos
Desenvolvimento de jogos e Ogre 3D - Dev In Santosjonathanblacknight
 

Semelhante a Desenvolvimento de Jogos em Java (20)

Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the game
 
Unity3d dev in
Unity3d dev inUnity3d dev in
Unity3d dev in
 
Historia do videogame
Historia do videogameHistoria do videogame
Historia do videogame
 
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso UnipDesenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
 
It’s all about the game
It’s all about the gameIt’s all about the game
It’s all about the game
 
Game jams e Impacto na indústria local - Campus Party Natal 2018
Game jams e Impacto na indústria local - Campus Party Natal 2018Game jams e Impacto na indústria local - Campus Party Natal 2018
Game jams e Impacto na indústria local - Campus Party Natal 2018
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
 
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Santos
Desenvolvimento de jogos e ogre 3D - Palestra Fatec SantosDesenvolvimento de jogos e ogre 3D - Palestra Fatec Santos
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Santos
 
Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014
 
Mobile Game Development.pptx
Mobile Game Development.pptxMobile Game Development.pptx
Mobile Game Development.pptx
 
Introdução do DirectX com C++
Introdução do DirectX com C++Introdução do DirectX com C++
Introdução do DirectX com C++
 
Evolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unityEvolução dos games e introdução ao desenvolvimento com unity
Evolução dos games e introdução ao desenvolvimento com unity
 
Os principios do game design
Os principios do game designOs principios do game design
Os principios do game design
 
Jogos independentes
Jogos independentesJogos independentes
Jogos independentes
 
6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio Upload6Game Design Process 2010 Unibero Kao Tokio Upload
6Game Design Process 2010 Unibero Kao Tokio Upload
 
Projeto de Jogos
Projeto de JogosProjeto de Jogos
Projeto de Jogos
 
Introdução sobre desenvolvimento de games
Introdução sobre desenvolvimento de gamesIntrodução sobre desenvolvimento de games
Introdução sobre desenvolvimento de games
 
Desenvolvimento de jogos e Ogre 3D - Dev In Santos
Desenvolvimento de jogos e Ogre 3D - Dev In SantosDesenvolvimento de jogos e Ogre 3D - Dev In Santos
Desenvolvimento de jogos e Ogre 3D - Dev In Santos
 
tecnologia em design
tecnologia em designtecnologia em design
tecnologia em design
 

Mais de Bruno Croci

Introdução a Expressões Regulares
Introdução a Expressões RegularesIntrodução a Expressões Regulares
Introdução a Expressões RegularesBruno Croci
 
Plugins para Jogos Online
Plugins para Jogos OnlinePlugins para Jogos Online
Plugins para Jogos OnlineBruno Croci
 
E-Lixo - Como enfrentar esse problema com a própria tecnologia
E-Lixo - Como enfrentar esse problema com a própria tecnologiaE-Lixo - Como enfrentar esse problema com a própria tecnologia
E-Lixo - Como enfrentar esse problema com a própria tecnologiaBruno Croci
 
E-Waste - How to face this issue with the Technology itself
E-Waste - How to face this issue with the Technology itselfE-Waste - How to face this issue with the Technology itself
E-Waste - How to face this issue with the Technology itselfBruno Croci
 
Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...
Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...
Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...Bruno Croci
 

Mais de Bruno Croci (6)

Introdução a Expressões Regulares
Introdução a Expressões RegularesIntrodução a Expressões Regulares
Introdução a Expressões Regulares
 
Git Básico
Git BásicoGit Básico
Git Básico
 
Plugins para Jogos Online
Plugins para Jogos OnlinePlugins para Jogos Online
Plugins para Jogos Online
 
E-Lixo - Como enfrentar esse problema com a própria tecnologia
E-Lixo - Como enfrentar esse problema com a própria tecnologiaE-Lixo - Como enfrentar esse problema com a própria tecnologia
E-Lixo - Como enfrentar esse problema com a própria tecnologia
 
E-Waste - How to face this issue with the Technology itself
E-Waste - How to face this issue with the Technology itselfE-Waste - How to face this issue with the Technology itself
E-Waste - How to face this issue with the Technology itself
 
Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...
Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...
Deficientes Visuais tem, de fato, acesso à inclusão digital através de Softwa...
 

Desenvolvimento de Jogos em Java

  • 1. DESENVOLVIMENTO DE JOGOS COM JAVA Bruno Croci - http://bruno.croci.me/
  • 2. 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
  • 3.
  • 4. Desenvolvimento de Jogos ● Atividade multidisciplinar ○ Programador ○ Artista ○ Designer ○ Escritor ○ Roteirista ○ Produtor ○ Testador ○ Músico ○ Engenheiro de Som ○ ...
  • 5.
  • 6.
  • 8. ● 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.
  • 9. ● 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.
  • 10. ● 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).
  • 11. ● 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;
  • 12. Braid Super Meat Boy
  • 13. Estágios do Desenvolvimento ● Ideia ● Conceitos e Definições ● Prototipação ● Produção ● Publicação
  • 14. Ideia Mais um Clone de Breakout
  • 15.
  • 16. 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.
  • 17. ● Tratado completo sobre desenvolvimento de jogos; ● fala desde a fase de ideias até a fase de publicação; ● indicado para todos ● Mostra o que é que trabalham com diversão e jogos como ela é aplicada em jogos; ● Principal livro sobre ● texto bem game design humorado e de atualmente; fácil ● cobre todos os compreensão; aspectos do ● clássico da área design de jogos, de jogos. desde princípios psicológicos, sem ser muito teórico.
  • 19. Bola ● É movida automaticamente ● Rebate ○ Paredes laterais ○ Teto ○ Raquete ○ Tijolos
  • 20. Raquete ● Movimento lateral de acordo com a entrada do usuário ● Não pode ultrapassar as paredes laterais
  • 21. Tijolos ● Não têm movimento ● Ficam dispostos no cenário ● Ao serem tocados pela bola são destruídos
  • 22. 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.
  • 23. Prototipação ● Testes de ○ mecânica de jogo; ○ plataforma; ○ métodos de entrada; ○ etc.
  • 25. Desenvolvimento ● Plataforma ○ Desktop ○ Android? ● Linguagem de Programação ○ Java ● Kit de Desenvolvimento ○ libGDX
  • 26. 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.
  • 27.
  • 28. 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.
  • 29.
  • 30. Download http://code.google.com/p/libgdx/downloads/list Última versão: 0.9.6 http://code.google.com/p/libgdx/downloads/detail?name=libgdx-0.9.6.zip&can=2&q=
  • 31. Criando um Projeto gdx-setup-ui.jar
  • 32.
  • 33. 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.
  • 35.
  • 36. 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.
  • 37. 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.
  • 38. 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
  • 39. http://crocidb.com/blog ● http://bruno.croci.me/ ● @CrociDB ● bruno@croci.me