SlideShare uma empresa Scribd logo
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
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
Participação no mercado
Participação no mercado
Faturamento de empresas brasileiras
Áreas de aplicação
Jogos Educacionais
Advergames
Pesquisa
Simuladores
Entretenimento
Etc…
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.
Game Engines para Linux
• LibGDX - Java
• Cocos2d-X - C++
• MonoGame – C#
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.
Plataforma de Desenvolvimento
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.
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.
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
Requisitos no Linux
MonoDevelop;
Mono MDK;
MonoGame;
Placa de vídeo compatível com OpenGL 2.0.
Comando para instalação dos requisitos no Ubuntu
Site MonoGame
Site com fórum, wiki,
documentação e acesso
ao repositório para com
o código fonte da
engine.
http://www.monogame.net
Jogos feitos pela comunidade
Vídeo
Renderização de Imagens
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
Renderização de Imagens
Sistema de coordenadas de uma cena
Animação
Sistemas de Colisão
Colisão Bounding Box
Colisão Bounding Sphere
Colisão por Pixels
Scrolling
Técnica de Side Scrolling
Técnica de Parallax Scrolling
Vídeo
Arquitetura de um jogo
Ao se criar um projeto, são gerados dois arquivos:
Program.cs
Game1.cs
Arquitetura de um jogo
Código do Program.cs:
static void Main(string[] args)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
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)
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
Game Loop
Initialize() LoadContent()
Update() Draw()
UnloadContent()
Vídeo
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
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/
Conclusão
Desvantagens
Requer conhecimentos (ou dedicação nos estudos)
no processo de desenvolvimento de jogos em
“baixo” nível (engine de média complexidade).
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.
Por onde começar
MonoGame Website
http://www.monogame.net/
http://www.monogame.net/documentation
Obrigado a todos!
Sinextra Game Studio
BelJogos

Mais conteúdo relacionado

PDF
Desenvolvendo jogos com unity
PPTX
Evolução dos games e introdução ao desenvolvimento com unity
PPT
Game Engine Unity 3D | Workshop
PPTX
Desenvolvimento de Jogos - #Aula 21 - Space Invaders
PPT
Android desenvolvimento
PPT
Ifg slides-vitor gabriel 1° ano de transito
PPTX
Interfaces de Games para Diferentes Telas
PDF
Utilização da Engine de Jogos CryENGINE para o Desenvolvimento de Aplicativos...
Desenvolvendo jogos com unity
Evolução dos games e introdução ao desenvolvimento com unity
Game Engine Unity 3D | Workshop
Desenvolvimento de Jogos - #Aula 21 - Space Invaders
Android desenvolvimento
Ifg slides-vitor gabriel 1° ano de transito
Interfaces de Games para Diferentes Telas
Utilização da Engine de Jogos CryENGINE para o Desenvolvimento de Aplicativos...

Semelhante a FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame (20)

PDF
Introdução ao Desenvolvimento de Jogos
PPT
PPT
Comparativo entre Engines de Jogos em 3d
PPT
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Santos
PPT
Desenvolvimento de jogos e Ogre 3D - Dev In Santos
PPT
Desenvolvimento de jogos e ogre 3D - Jaguariuna
PPSX
A importância do software nas organizações de Jogos Digitais
PPT
IntroduçãO Ao Xna Campus Party
PPTX
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
PPTX
INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS DIGITAIS.pptx
PPT
Desenvolvimento de jogos e ogre 3D - Unisantos
PPTX
Criando games em c# utilizando o unity
PPTX
Programação de jogos eletrônicos
PPT
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Praia Grande
PPTX
Mobile Game Development.pptx
PPT
Desenvolvimento de jogos e ogre 3D - Unip Santos
PDF
Desenvolvimento de Jogos - Mercado Parte 2
PPTX
A chegada das linguagens modernas nos games (1).pptx
PDF
Palestra Game Engines para Windows 8
PPTX
Ferramentas para o desenvolvimento de jogos mobile
Introdução ao Desenvolvimento de Jogos
Comparativo entre Engines de Jogos em 3d
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Santos
Desenvolvimento de jogos e Ogre 3D - Dev In Santos
Desenvolvimento de jogos e ogre 3D - Jaguariuna
A importância do software nas organizações de Jogos Digitais
IntroduçãO Ao Xna Campus Party
Palestra “UDK no Brasil e os Caminhos para Design e Desenvolvimento de games ...
INTRODUÇÃO AO DESENVOLVIMENTO DE JOGOS DIGITAIS.pptx
Desenvolvimento de jogos e ogre 3D - Unisantos
Criando games em c# utilizando o unity
Programação de jogos eletrônicos
Desenvolvimento de jogos e ogre 3D - Palestra Fatec Praia Grande
Mobile Game Development.pptx
Desenvolvimento de jogos e ogre 3D - Unip Santos
Desenvolvimento de Jogos - Mercado Parte 2
A chegada das linguagens modernas nos games (1).pptx
Palestra Game Engines para Windows 8
Ferramentas para o desenvolvimento de jogos mobile
Anúncio

Último (7)

PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
Evolução em código: algoritmos genéticos com PHP
PDF
apresentacao introducao computacao ead.pdf
PDF
Dos requisitos ao código: como criar código rastreável em PHP
Curso de Windows 11 resumido na prática.pptx
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Mapeamento de Objeto para Tabela Relacional
Evolução em código: algoritmos genéticos com PHP
apresentacao introducao computacao ead.pdf
Dos requisitos ao código: como criar código rastreável em PHP
Anúncio

FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

  • 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
  • 6. Áreas de aplicação Jogos Educacionais Advergames Pesquisa Simuladores Entretenimento Etc…
  • 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
  • 14. Requisitos no Linux MonoDevelop; Mono MDK; MonoGame; Placa de vídeo compatível com OpenGL 2.0. Comando para instalação dos requisitos no Ubuntu
  • 15. Site MonoGame Site com fórum, wiki, documentação e acesso ao repositório para com o código fonte da engine. http://www.monogame.net
  • 16. Jogos feitos pela comunidade
  • 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
  • 20. Renderização de Imagens Sistema de coordenadas de uma cena
  • 27. Técnica de Side Scrolling
  • 28. Técnica de Parallax Scrolling
  • 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.
  • 41. Por onde começar MonoGame Website http://www.monogame.net/ http://www.monogame.net/documentation
  • 42. Obrigado a todos! Sinextra Game Studio BelJogos