reinventando o estilo 2d proposta: enxergar os gráficos 2d como um estilo e não como limitação...

Post on 21-Apr-2015

113 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Reinventando o estilo 2D

• Proposta: enxergar os gráficos 2D como um estilo e não como limitação técnica.

• Objetivo: buscar formas de inovar e reinventar o estilo.

Por André Santee(asantee.net)

A quem se destina este trabalho?

• Estudantes da área de computação

• Programadores de jogos amadores

• Programadores profissionais

• Viciados por videogame

Mapas: o que são hoje

• Conjuntos de sprites organizadas em forma de ladrilhos (quadrados ou isométricos)

Diablo II: isométrico Codename Gordon: quadrado

Novas tendências...

• Vários jogos bidimensionais têm surgido seguindo novas tendências.

• Têm se fugido dos mapas “quadrados”, que eram somente presos à ladrilhos (tiles) e usa-se mais entidades que podem ser espalhadas em qualquer lugar na tela.

Novas tendências...

1. Realiza cálculos de alpha blending (transparência) muito rapidamente. Isso nos permite usar e abusar de belos efeitos de luz, sombra, água, fumaça etc.

O hardware gráfico atual possui três grandes vantagens para jogos 2D:

Halos de luz Sombras Partículas

Novas tendências...

2. O GPU moderno pode processar vértices e aplicar texturas rapidamente. - Isso permite cenas com milhares de sprites (elementos gráficos).- Também permite o uso de elementos baseados em vetores dinâmicos. Como no game World of Goo:

Novas tendências...

3. O hardware atual permite o uso de shaders.Com shaders pode-se conseguir resultados que antes nem eram imaginados.

Os shaders

• Shaders podem ser usados em elementos 3D mesclados com os elementos 2D, criando cenas “eye-catching”:

Figuras: shaders aplicados aos gráficos 3D (autores desconhecidos)

Os shaders

• Os shaders também podem ser aplicados diretamente à entidades bidimensionais (sprites) criando novas sensações e permitindo novas experiências.

Pixel shaders em gráficos 2D• Podemos criar uma cena no estilo 2D

recheada de efeitos de shader

Iluminação por pixel• Podemos dar mais detalhes aos sprites

utilizando bump mapping convencional:

Colorização convencional Somente vertex shaders Pixel shaders

Iluminação por pixel• Pixel shaders podem aumentar o detalhe da iluminação,

tornando os gráficos bem mais belos.• Vamos olhar mais de perto:

Somente vertex shaders Pixel shaders

Repare na incidência da luz nas pedras dos pilares

Iluminação por pixel• Esse efeito pode ser conseguido somente

com a sprite e um normal map, que pode ser criado facilmente com qualquer ferramenta “normal mapper”:

+

•Com isso podemos criar efeitos de iluminação dinâmica

•Cada luz pode ser animada e a iluminação e sombra irão interagir com cada movimento das fontes de luz

Demonstração em vídeoclique no vídeo para assistir

Outras possibilidades...

Com shaders ainda é possível:

• Criar efeitos de refração e reflexo na água e outras superfícies

• Efeitos de distorção e ondas em superfícies

• Decals mais realistas e complexos

• Nuvens mais realistas

• Etc. etc. etc...

Quais ferramentas usar?• O 2D moderno pode ser programado com API’s

modernas como Direct3D ou OpenGL.• Ambas as API’s possuem linguagens de shader

próprias, mas também podemos usar shaders multi-API, com a linguagem Cg.

• Muitas linguagens atuais oferecem suporte a essas ferramentas: C/C++, Delphi, Visual Basic, C#,etc.

• C++ é a linguagem mais recomendada, documentada e utilizada profissionalmente para jogos

Quais ferramentas usar?

• Recomenda-se o uso de bibliotecas que facilitam o trabalho e evitam que o programador faça o “trabalho sujo”, que além de tomar muito tempo, fica sempre sujeito a mais bugs.

• Atualmente são poucas as bibliotecas pra jogos 2D que oferecem suporte a recursos modernos (shaders).

• Na demonstração de shaders dessa apresentação foi utilizada a biblioteca brasileira GameSpaceLib – asantee.net/gamespace

• GSlib é uma biblioteca desenvolvida em C++ para desenvolvimentos de jogos que auxilia no controle de entrada e saída de dados (vídeo, áudio, mouse, teclado e joysticks).

• A GSlib é gratuita, portável para outros sistemas operacionais e possui o código-fonte aberto.

• Dentre outras bibliotecas como SDL e Allegro, a vantagem da GSlib é que possui objetos muito mais fáceis e intuitivos para programação: programação simplificada.

Com a GSlib o programador pode facilmente...• detectar múltiplos joysticks• carregar e tocar músicas e efeitos sonoros de

arquivos OGG, MP3, WAV, etc.• reproduzir vídeos em MPG, WMV, AVI, etc.• utilizar shaders da linguagem Cg através de uma

interface fácil e intuitiva

Visite o site: www.asantee.net/gamespace/ para baixar e aprender a usá-la

Concluindo...• O desenvolvimento de jogos 2D não é

mais visto como uma etapa de transição para o 3D. Mas se configura numa nova modalidade de jogos.

• A preferência por estilos de jogos é uma questão subjetiva. Há preferências para todos os lados. Cabe ao desenvolvedor optar por um estilo apropriado à proposta do projeto.

Dúvidas? Comentários?

• Escrevam para andrew1b@hotmail.com

Obrigado pela atenção e pelo tempo cedido

Um pouco de merchandising....Meu site pessoal: www.asantee.net

Livro: programação de jogos 3D

Editora Novatec

top related