Your SlideShare is downloading. ×
0
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Criando jogos digitais em java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Criando jogos digitais em java

27,197

Published on

Este Slide foi feito para uma palestra sobre Jogos Digitais em Java, mostrando padrões e similaridades existentes em diferentes abientes, como por exemplo (Criando um jogo em Java no Android ou PC).

Este Slide foi feito para uma palestra sobre Jogos Digitais em Java, mostrando padrões e similaridades existentes em diferentes abientes, como por exemplo (Criando um jogo em Java no Android ou PC).

Published in: Technology
2 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total Views
27,197
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
357
Comments
2
Likes
12
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CRIANDO JOGOS DIGITAIS EM JAVAAutorMichel 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 EstudosSuperiores da Amazônia - IESAM. Esta cursando sua pós-graduação em Latu Sensu em Engenharia de Sistemas pela EscolaSuperior Aberta do Brasil - ESAB. Participação em grandes projetospara o Estado como Transparência-Pará. Possui 16 cursosextracurriculares na área de T.I
  • 2. Java 2DO Java 2D é implementado como uma extensão do Abstract Window Toolkit (AWT).AWT tornou-se muito poderoso depois da adição de outra extensão: o Swing.Era delegado a AWT a tarefa de desenhar janelas, botões e caixas de texto ao sistema operacional. Porém isso não era muito portável e limitava severamente a performance do Java em aplicações mais sérias. Então, associaram a AWT uma nova extensão, chamada Swing, que desenharia integralmente todos os componentes de tela. Ao fazer isso, a biblioteca Java 2D ganhou grande importância.)
  • 3. Java 2D• O Swing rapidamente tornou-se o padrão do Java para todo o tipo de aplicação desktop.• Uma de suas grandes reclamações sempre foi a performance, o que motivou os desenvolvedores da Sun a investir em otimizações agressivas no Java 2D. Entre elas, está a aceleração de hardware (integrada com OpenGL), possibilidade de trabalhar em modo janela exclusivo (FSEM), otimizações agressivas na biblioteca de manipulação de imagens, entre outras coisas.
  • 4. Java 2D (AWT/Swing)
  • 5. Java 2DDentre as principais capacidades do Java 2D, podemos citar:• Um modelo uniforme de desenho para dispositivos de vídeo e impressoras• Um grande número de primitivas geométricas (pontos, linhas, retângulos, arcos e elipses e curvas), e um mecanismo para se desenhar qualquer forma geométrica• Mecanismos para detectar colisão em texto e imagens• Modelos de composição (Alpha Composition), que permitem escolher como combinar imagens que se interceptam• Modelo de cores avançado• Diretivas para controlar a qualidade do desenho• Classes para manipulação uniforme dos principais formatos de imagem
  • 6. Java 2DEspaço de coordenadasO Java 2D permite o trabalho em dois tipos de sistemas de coordenadas:As coordenadas do dispositivo: se referem ao sistema do hardware que está sendotrabalhado. Vão alterar de acordo com a resolução de tela, ou o tamanho da folha, porexemplo.As coordenadas de usuário: São um sistema lógico, usado pelo seu programa. Elassão uniformes e independentes de dispositivo, é o próprio Java 2D que se encarrega daconversão de um sistema para outro.
  • 7. Java 2D• O contexto gráfico• Todo desenho no Java 2D é feito através da classe Graphics2D. Essa classe. que deriva da classe Graphics, representa o contexto gráfico sobre o qual o desenho será feito.• public void pintarFantasma(Graphics g) {• //1. Copiamos o contexto gráfico• Graphics2D g2d = (Graphics2D) g.create();•• //2. Desenhamos o fantasma 80% transparente• AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8);• g2d.setComposite(alpha);• g2d.translate(10, 10);• g2d.rotate(Math.toRadians(50));• g2d.drawImage(x, y, phantomImage, null);•• //3. Descartamos a cópia do contexto gráfico• g2d.dispose();• }
  • 8. Android & Java2DJava2D Android DescriçãoGraphics Canvas Onde tudo é desenhado e manipuladoAffineTransform Matrix serve para fazer conversões de coordenadas, por exemplo. Serve também para fazer rotações, translações e modificações de escala.BufferedImage Bitmap e Drawable podemos requisitar ao objeto Graphics de qualquer imagem, que realize uma pintura ou escreva texto sobre imagens da mesma forma que fazemos para desenhar os componentes de tela
  • 9. Android & Java2D• Observação sobre o AffineTransform (Matrix): O Java2D só sabe desenhar uma elipse deitada ou em pé, mas não inclinada. Se você setar corretamente as coordenadas com transformações, o Java2D consegue desenhar a elipse inclinada, por exemplo. Isso também serve para desenhar texto ou qualquer outra figura inclinada, invertida ou com a escala alterada.
  • 10. Perspectiva isométrica ou 2.5D
  • 11. LWJGL - Lightweight Java Game Library• Lightweight Library se traduz como “Biblioteca leve”• OpenGL (Open Graphics Library)• OpenCL (Open Computing Language)• OpenAL (Biblioteca Áudio Aberto)LWJGL fornece acesso aos controladores, como Gamepads, volante eJoysticks.Lembrando que LWJGL esta para Java como SDL (SimpleDirectMedia Layer) esta para C++.Assim como C++, o Java usa Bindings(Ligações) para acesso abibliotecas nativas (Lembrando que Java foi feito em cima de C/C++)Esta biblioteca esta acima da camada do Java2D.
  • 12. 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.
  • 13. NiftyGui• É uma biblioteca Java que suporta a construção de interfaces de usuário interativas, para jogos ou aplicações similares.• Nifty independe de renderers(Java2D, LWJGL, Slick2D, JME render), pode por exemplo usar o 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.• Obs.: TWL seria o concorrente do NiftyGUI quando oassunto e o Slick2D(Pois o TWL foi feito especificamente para o Slic2D), ambos TWL e NiftyGUI estão gerando versões para o Android.
  • 14. NiftyGui - Exemplo
  • 15. JMonkeyEngine• JMonkey Engine (jME) é um framework Open Source de alta performance para desenvolvimento de aplicações Java que utilzem recursos 3D. A primeira versão do framework foi criada por Mark Powell em 2003, enquanto pesquisava sobre o processo renderização utilizado em OpenGL.• A arquitetura do framework é baseada em grafos de cenas, ou seja, os dados do ambiente estão organizados em uma estrutura de árvore, onde um nodo origem pode ter um conjunto de nodos filhos. Estes nodos filhos, por sua vez, têm uma referência única de seu nodo de origem (também chamado nodo pai). Toda essa estrutura tem o objetivo de tornar o processo de renderização mais ágil.
  • 16. JMonkeyEngine & NetBeans(IDE)
  • 17. 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.
  • 18. RedDwarf (Antigo projeto DarkStar)
  • 19. Qual base de dados devemos usar?• XML?• TXT?• Banco de Dados?• Banco de Dados Embarcado?• Objeto Serializado?• Outros?
  • 20. Engine(s) Java para 3D Ardor 3D
  • 21. Jogos de Sucesso feitos em Java Wurm OnLine [JWS-2.5d] Wakfu [2.5d]
  • 22. Jogos de Sucesso feitos em JavaRuneScape [3D-Applet]“O Livro Guiness Mundial dos Recordes reconheceu RuneScape como oMMORPG gratuito mais popular do mundo, pela segunda vez seguida”
  • 23. Jogos de Sucesso feitos em JavaTaikodom [3D]
  • 24. Jogos de Sucesso feitos em JavaMineCraft [3D]
  • 25. Jogos de Sucesso feitos em Java Angry Birds [2D]Angry Birds (Versão em Java): http://celularesmpx.blogspot.com/2011/05/jogo-angry-birds-java.htmlWikia: http://pt.wikipedia.org/wiki/Angry_Birds
  • 26. Estrategia de criação de Mapas(Tiles)
  • 27. Interação entre personagens (Conversa)
  • 28. Criando um sistema de Skills
  • 29. Como trabalhar o sistema de Missões
  • 30. Definindo/balanceando atributos do herói
  • 31. Criando Climas
  • 32. Definindo um Sistema de Batalha
  • 33. Conclusão• Todas as linguagens de programação que suporta desenho trabalha sobre um canvas ou similar(Ex.: Delphi, VB, etc.).• Java é uma linguagem muito poderosa e pouco explorada na área de Jogos.• Quando paramos para comparar outras tecnologias de criação de jogos, em especial 2D, notamos que os conceitos são iguais, o eu muda são os facilitadores(IDE, Bibliotecas, etc.), e Java não fica atrás das mais populares, como seria o caso de quem desenvolve para C++.
  • 34. Engine www.einformacao.com.br“Transforme a Fraqueza em Força!”

×