2. Mercado de jogos
“Segundo a PricewaterhouseCoopers, o mercado mundial de
jogos digitais movimentou U$57 bilhões em 2010, enquanto o de
cinema, U$ 31.8 bilhões. Em 2011 o setor movimentou U$ 74
bilhões, e as previsões indicam que deverá ultrapassar U$ 82
bilhões em 2015. Em 2013, apenas o lançamento do jogo GTA V,
que teve o custo de U$ 225 milhões, faturou U$ 800 milhões em
24 horas, um recorde na história de produtos de entretenimento. O
jogo Angry Birds já foi instalado em 500 milhões de celulares. No
Brasil, estima-se que o mercado já esteja perto de U$ 3 bilhões.”
Fonte: Relatório final - GEDIGames 2014
7. O que são Game Engines?
Engines são “kits” para desenvolvimentos de jogos
utilizados para aproveitar algumas características
comuns e presentes em todos os games. As engines
normalmente implementam física, renderização de
imagens, interação com arquivos multimídia, partículas e
etc. Elas funcionam como um motor do jogo (por isso o
nome engine), sendo responsável por todas as
funcionalidades de “baixo nível” que o jogo precisa, como
por exemplo, o “refresh” da tela com base no FPS,
reações de objetos físicos, carregamento de texturas e
etc.
8. Game Engines para Linux
• LibGDX - Java
• Cocos2d-X - C++
• MonoGame – C#
9. Projeto Mono
O mono é um projeto open-source
originalmente criado pela Novell e
atualmente mantido pela Xamarin para
criar um conjunto de ferramentas
compatíveis com a plataforma .NET,
incluindo, entre outras ferramentas, um
compilador de C#, compatíveis com
ambientes Linux, BSD, OS X,
Windows, Solaris, Android e também
consoles como Playstation 3, 4, Vita,
Wii e Xbox 360.
11. O que é MonoGame?
Engine open-source baseada no
OpenTK (OpenAL, OpenGL) para
desenvolvimento de jogos em C# com
uma API unificada que funciona da
mesma forma em todas as
plataformas suportadas (Android,
Windows, Mac, Linux, iOS).
Implementando a interface do
Microsoft XNA, o que permite uma
fácil portabilidade dos jogos
desenvolvidos nativamente no
framework.
12. Features
Multiplataforma (Android, iOS, Windows, Mac, Linux,
Windows Phone, Playstation 3, 4 e Vita, Xbox 360,
Raspberry Pi);
Utilização da OpenGL para gráficos 2D e 3D;
Conjunto de ferramentas de suporte;
Diversos livros e tutoriais na internet;
Forte apoio da comunidade.
13. Amplo suporte da comunidade
Diversos sites e fóruns voltados a temas específicos do
MonoGame e XNA:
monogame.net
programadoresdejogos.com
unidev.com.br
rbwhitaker.wikidot.com
19. Renderização de Imagens
Antes de tratarmos deste assunto, conferir abaixo o significado de
alguns jargões que utilizamos com frequência para gráficos em 2D:
Texturas
Sprites
Background
Tiles
30. Arquitetura de um jogo
Ao se criar um projeto, são gerados dois arquivos:
Program.cs
Game1.cs
31. Arquitetura de um jogo
Código do Program.cs:
static void Main(string[] args)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
32. Arquitetura de um jogo
Classe “Game”:
É a classe central da arquitetura
Tem, internamente, um game loop chamado a cada
1/60 de segundo (default, 60FPS)
33. Game1.cs
• public Game1() : Construtor – cria os objetos Graphics e Content
• Métodos chamados pela classe Game (“Eventos” do jogo)
• Initialize() : Inicializa recursos lógicos não gráficos
• LoadContent() : Utilizada para carregar recursos
• UnloadContent() : Chamada para liberar recursos
• Game Loop:
l Update(GameTime gameTime) : Onde se constroe a lógica do jogo
(cálculos)
l Draw(GameTime gameTime) : Utilizado para carregar as rotinas de
desenho em uma tela
36. Ferramentas Avançadas
Compactação de texturas:
ShoeBox - http://renderhjs.net/shoebox/
Editor de mapas com tiles:
Tiled - http://www.mapeditor.org/
Gerador automático de sonoplastia:
SFXr - http://www.drpetter.se/project_sfxr.html
37. Ferramentas Avançadas
Utilização de repositório Git:
Source Tree e Bitbucket - https://bitbucket.org/
Edição de áudio:
Audacity - http://web.audacityteam.org/
Composição de trilha sonora:
Linux MultiMedia Studio - https://lmms.io/
Edição de imagens:
Gimp - http://www.gimp.org/
39. Desvantagens
Requer conhecimentos (ou dedicação nos estudos)
no processo de desenvolvimento de jogos em
“baixo” nível (engine de média complexidade).
40. Vantagens
Simplifica o processo de desenvolvimento
multiplataforma;
Boas APIs de física;
Debug em tempo real;
Muitos códigos de exemplo;
Destaque na comunidade;
Open-source.