Desenv. jogos em java e Proj. Parallax

Post on 25-May-2015

2.821 views 1 download

description

É abordado na palestra conceitos, tecnicas, mercados e afins na criação de jogos em Java, assim como é apresentado o Projeto Parallax, uma engine em Java pioneira e unica no Brasil (No que se propõe).

Transcript of Desenv. jogos em java e Proj. Parallax

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

ParallaxOlhando 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

Angry Birds (Versão em Java): http://celularesmpx.blogspot.com/2011/05/jogo-angry-birds-java.htmlWikia: http://pt.wikipedia.org/wiki/Angry_Birds

Angry Birds [2D]

Casos de Sucesso

Wurm OnLine [JWS-2.5d]

Casos de Sucesso

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”

Taikodom [3D]

Casos de Sucesso

MineCraft [3D]

Casos de Sucesso

L2J [Server]

Casos de Sucesso

Ardor 3D

Engine(s) Java para 3D

Será mesmo Java ruim para desenvolvimento de jogos?

AndroidA onda do momento!!??

http://techguru.com.br/ios-e-android-dominam-o-mercado-de-jogos-portateis/

http://idgnow.uol.com.br/computacao_pessoal/2011/11/10/ios-e-android-roubam-espaco-de-sony-e-nintendo-no-mercado-de-games/

http://www.gamevicio.com/i/noticias/102/102150-ios-e-android-dominam-o-mercado-de-jogos-portateis-nos-estados-unidos/index.html

http://www.tudocelular.com/Apple/noticias/n24929/jogos-android-iOS-Apple.html

iOS e Android dominam o mercado de jogos portáteis nos Estados Unidos

iOS e Android roubam espaço de Sony e Nintendo no mercado de games

IOS e Android dominam o mercado de jogos portáteis nos Estados Unidos

Mercado de jogos é dominado por Android e Apple iOS

Notícias de novembro/2011

Projeto Parallax

Projeto ParallaxJogos 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

ArquiteturaProjeto Parallax

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 envolvidasArtemis

É 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 envolvidasNiftyGui

Tecnologias envolvidasTWL

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 envolvidasRedDwarf (Antigo projeto DarkStar)

Tecnologias envolvidasRedDwarf (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.

Porque Java e não um XNA por exemplo?

Projeto Parallax

A pergunta certa não é sobre as desvantagens do XNA e sim, qual o alcance dele, XNA é um ótimo motor, XNA funciona em:Microsoft .NETXbox 360ZuneWindows 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ãoQualquer 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 Parallaxhttp://www.einformacao.com.br