SlideShare une entreprise Scribd logo
1  sur  34
Desenvolvimento de Jogos em Java




Autor
 
Michel Pinheiro Montenegro (michel.montenegro@gmail.com): Mais de 14 anos
de experiência profissional na área de T. I. Bacharel em Sistemas de Informação
pelo Instituto de Estudos Superiores da Amazônia - IESAM. Esta cursando sua pós-
graduação em Latu Sensu em Engenharia de Sistemas pela Escola Superior Aberta
do Brasil - ESAB. Participação em grandes projetos para o Estado como
Transparência-Pará. Possui 16 cursos extracurriculares na área de T.I
Parallax
Olhando a paisagem em um carro em movimento (Lua parada,
     enquanto o resto se movimenta para a “esquerda”)
Sobre o mercado, vamos fazer
           algumas perguntas:
• Desenhos (Incluso animes) em sua maioria são 2D ou 3D,
  o que predomina no mercado?

• HQs (Incluso mangas) em sua maioria são 2D ou 3D, o
  que predomina no mercado?

• Jogos para celular/mobile o que predomina (2D ou 3D)?

• Jogos On-Line em meios sociais como Facebook, Orkut e
  cia o que predomina (2D ou 3D)?

• Jogos On-Line MMORPGs o que predomina (2D ou 3D)?

• Jogos para console quem predomina (2D ou 3D)?

• E quanto A Perspectiva isométrica ou 2.5D?
Falando sobre o mercado, vamos
    fazer algumas perguntas:
     Perspectiva isométrica ou 2.5D
Casos de Sucesso

              Angry Birds [2D]




Angry Birds (Versão em Java): http://celularesmpx.blogspot.com/2011/05/jogo-angry-birds-java.html
Wikia: http://pt.wikipedia.org/wiki/Angry_Birds
Casos de Sucesso
Wurm OnLine [JWS-2.5d]   Wakfu [2.5d]
Casos de Sucesso
      RuneScape [3D-Applet]
“O Livro Guiness Mundial dos Recordes reconheceu RuneScape como o
MMORPG gratuito mais popular do mundo, pela segunda vez seguida”
Casos de Sucesso

   Taikodom [3D]
Casos de Sucesso

   MineCraft [3D]
Casos de Sucesso

    L2J [Server]
Engine(s) Java para 3D




Ardor 3D
Será mesmo Java ruim para desenvolvimento de jogos?
                  Android
          A onda do momento!!??
Notícias de novembro/2011
 iOS e Android dominam o mercado de jogos portáteis nos Estados Unidos
http://techguru.com.br/ios-e-android-dominam-o-mercado-de-jogos-portateis/
 iOS e Android roubam espaço de Sony e Nintendo no mercado de games
http://idgnow.uol.com.br/computacao_pessoal/2011/11/10/ios-e-android-roubam-espaco-de-sony-e-
nintendo-no-mercado-de-games/
 IOS e Android dominam o mercado de jogos portáteis nos Estados Unidos
http://www.gamevicio.com/i/noticias/102/102150-ios-e-android-dominam-o-mercado-de-jogos-portateis-
nos-estados-unidos/index.html
 Mercado de jogos é dominado por Android e Apple iOS
http://www.tudocelular.com/Apple/noticias/n24929/jogos-android-iOS-Apple.html
Projeto Parallax
Projeto Parallax
      Jogos que serviram de inspiração para a Engine




Observação: Club Penguin, é da Disney e faz muito sucesso.
Projeto Parallax
Projeto Parallax
Projeto Parallax
•   Parallax é um Jogo? O que é uma engine (Motor)?
•   Código fonte aberto e livre (Open-source/Free)?
•   Foi proposital o trocadilho PARAllax com Pará?
•   Quais os objetivos do projeto?
Tecnologias envolvidas
Tile Editor/ Map Editor
Projeto Parallax
  Arquitetura
Tecnologias envolvidas
LWJGL - Lightweight Java Game Library
OpenGL (Open Graphics Library)
OpenCL (Open Computing Language)
OpenAL (Biblioteca Áudio Aberto)

LWJGL fornece acesso aos controladores, como Gamepads,
volante e Joysticks.

- Lightweight Library se traduz como “Biblioteca leve”
Tecnologias envolvidas – Slick2D
•   Utiliza internamente LWJGL

•   Tornar a transição de Java2D para OpenGL de forma fácil.

•   Gerar distribuição via WebStart sem complexidade.

•   Ajuda com renderização, som, entrada de colisão e outras
    coisas.

•   A planos de em algum momento trabalharem com 3D.

•   Suporte a “Maquinas de Estado”.

•   Funciona com Applets, Desktop e tem recentemente uma 
    versão para Android.
Tecnologias envolvidas
          Artemis
É uma biblioteca que foi criada para facilitar e
abstrair o conceitos:

•Entity ( grupos de Entidades)

•Component (Componentes)

•System (Sistemas)

•ObjectSpatial (Objetos Espaciais)
Tecnologias envolvidas
                   NiftyGui
É uma biblioteca Java que suporta a construção de interfaces
de usuário interativas, para jogos ou aplicações similares.

•Utiliza LWJGL para renderização via OpenGL.

•Configuração via XML ou classes Java

•Usado tanto no Slick2D, JmonkeyEngine(3D)

•Da suporte a aventos como ao clicar e tantos outros
controles referente a entrada de dados (Teclado e Mouse), da
suporte a som e musica.
Tecnologias envolvidas
       NiftyGui
Tecnologias envolvidas
         TWL
Tecnologias envolvidas

 Devo usar Swing, SWT ou AWT?

 Devo usar TWL?

 Já sei farei os controles na mão!
  Será uma boa idéia?

 O que o NiftyGui tem de especial em
  relação aos citados acima?
Tecnologias envolvidas
RedDwarf (Antigo projeto DarkStar)
Tecnologias envolvidas
                   RedDwarf (Antigo projeto DarkStar)
 DarkStar era solução de middleware (open source) para MMOG escrito em Java pela
  equipe do Projeto Darkstar na Sun Microsystems.

 Zona de sobrecarga, corrupção de dados, e subutilização de servidores.

 Tem suporte a um banco de dados proprio (Berkeley DB).

 Algumas caracteristicas do projeto: Balanceamento de carga da CPU, Meta-serviços,
  Armazenamento de dados persistentes usando Berkeley DB, transações, prevenção de
  duping, canal de comunicação (Channel, TCP e UDP), Estruturas de dados escalaveis,
  Protocolos plugáveis e Ferramentas administrativas, Task, Managed-Objects.
Projeto Parallax

Porque Java e não um XNA por exemplo?
A pergunta certa não é sobre as desvantagens do XNA e sim, qual o alcance dele, XNA é
um ótimo motor, XNA funciona em:
Microsoft .NET
Xbox 360
Zune
Windows Phone 7

Porém preciso que o jogo funcione em:
Windows (Todas as versões que comportem uma JVM)
Linux (Todas as versões que comportem uma JVM)
Mac OS (Todas as versões que comportem uma JVM)
Outros sistemas operacionais que comportem uma JVM (Para PC )
Facilita-se uma possível migração para versões mobile (exemplo: Symbian, Android,
etc.) e acredite não seria tão chocante, como podem achar, pelo contrario.
Facilita-se uma possível migração para Applet (Incorporação web), apesar deste
basicamente não ser necessário, pelo modelo Multiplayer que vai ser adotado.
Exemplo de motor de jogo 2D
RPG Maker e Sim RPG Maker
Exemplo de motor de jogo 3D (Que utiliza JavaScript)
                   Unity3D
Conclusão
Qualquer linguagem que possa desenhar em um “Canvas” pode servir 
para fazer um jogo!

Java é uma linguagem madura e atual e mantem seu crescimento!

Java tem diversos públicos, e seu raio de ação não esta limitado a 
somente um ambiente!

Conceito, métodos e metodologias são tão importantes ou até mais 
importantes que a tecnologia em si, pois conceitos de movimentação 
colisão e afins, podem ser migrados entre tecnologias diferentes!

Sim! temos um projeto Paraense, que já saiu da fase da 
ideia/teoria/vontade, para algo consolidado e maduro, que esta em 
melhoria constante.
Site Oficial do Parallax
http://www.einformacao.com.br

Contenu connexe

Similaire à Desenvolvimento de Jogos em Java

Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Flávio Ribeiro
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Introdução a Tecnologia Java
Introdução a Tecnologia JavaIntrodução a Tecnologia Java
Introdução a Tecnologia JavaThiago Gonzaga
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 
Aspectos profissionais 3pontos
Aspectos profissionais 3pontosAspectos profissionais 3pontos
Aspectos profissionais 3pontosMiguel Alho
 
Java No Mundo Real
Java No Mundo RealJava No Mundo Real
Java No Mundo RealSaulo Arruda
 
Estudo sobre ferramentas de BI Open Source
Estudo sobre ferramentas de BI Open SourceEstudo sobre ferramentas de BI Open Source
Estudo sobre ferramentas de BI Open SourceNelson Forte
 
Xna Touch Campus Party
Xna Touch  Campus PartyXna Touch  Campus Party
Xna Touch Campus PartyJosé Farias
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Maurício Linhares
 

Similaire à Desenvolvimento de Jogos em Java (20)

Jme Games
Jme GamesJme Games
Jme Games
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Introdução a Tecnologia Java
Introdução a Tecnologia JavaIntrodução a Tecnologia Java
Introdução a Tecnologia Java
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
UTools Unite Brasil
UTools Unite BrasilUTools Unite Brasil
UTools Unite Brasil
 
Computação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos DigitaisComputação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos Digitais
 
Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Mobile Game Development.pptx
Mobile Game Development.pptxMobile Game Development.pptx
Mobile Game Development.pptx
 
Aspectos profissionais 3pontos
Aspectos profissionais 3pontosAspectos profissionais 3pontos
Aspectos profissionais 3pontos
 
Java No Mundo Real
Java No Mundo RealJava No Mundo Real
Java No Mundo Real
 
Estudo sobre ferramentas de BI Open Source
Estudo sobre ferramentas de BI Open SourceEstudo sobre ferramentas de BI Open Source
Estudo sobre ferramentas de BI Open Source
 
Apostila Jogos
Apostila Jogos Apostila Jogos
Apostila Jogos
 
Xna Touch Campus Party
Xna Touch  Campus PartyXna Touch  Campus Party
Xna Touch Campus Party
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
 

Plus de Michel Montenegro

O DNA da computação para jogos digitais: Caminhos
O DNA da computação para jogos digitais: CaminhosO DNA da computação para jogos digitais: Caminhos
O DNA da computação para jogos digitais: CaminhosMichel Montenegro
 
Desenvolvimento de Jogos: Analise da Arquitetura e sua Evolução Social
Desenvolvimento de Jogos: Analise da Arquitetura e sua Evolução SocialDesenvolvimento de Jogos: Analise da Arquitetura e sua Evolução Social
Desenvolvimento de Jogos: Analise da Arquitetura e sua Evolução SocialMichel Montenegro
 
ParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopMichel Montenegro
 
Tecnologias e técnicas para a criação de jogos em java
Tecnologias e técnicas para a criação de jogos em javaTecnologias e técnicas para a criação de jogos em java
Tecnologias e técnicas para a criação de jogos em javaMichel Montenegro
 
Problemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitaisProblemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitaisMichel Montenegro
 
DESENVOLVIMENTO DE JOGOS: ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIAL
DESENVOLVIMENTO DE JOGOS:  ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIALDESENVOLVIMENTO DE JOGOS:  ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIAL
DESENVOLVIMENTO DE JOGOS: ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIALMichel Montenegro
 

Plus de Michel Montenegro (6)

O DNA da computação para jogos digitais: Caminhos
O DNA da computação para jogos digitais: CaminhosO DNA da computação para jogos digitais: Caminhos
O DNA da computação para jogos digitais: Caminhos
 
Desenvolvimento de Jogos: Analise da Arquitetura e sua Evolução Social
Desenvolvimento de Jogos: Analise da Arquitetura e sua Evolução SocialDesenvolvimento de Jogos: Analise da Arquitetura e sua Evolução Social
Desenvolvimento de Jogos: Analise da Arquitetura e sua Evolução Social
 
ParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e Desktop
 
Tecnologias e técnicas para a criação de jogos em java
Tecnologias e técnicas para a criação de jogos em javaTecnologias e técnicas para a criação de jogos em java
Tecnologias e técnicas para a criação de jogos em java
 
Problemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitaisProblemáticas e soluções na criação de jogos digitais
Problemáticas e soluções na criação de jogos digitais
 
DESENVOLVIMENTO DE JOGOS: ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIAL
DESENVOLVIMENTO DE JOGOS:  ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIALDESENVOLVIMENTO DE JOGOS:  ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIAL
DESENVOLVIMENTO DE JOGOS: ANÁLISE DA ARQUIETURA E SUA EVOLUÇÃO SOCIAL
 

Desenvolvimento de Jogos em Java