MonoGame Tutorial — Parte 2: Planejamento do Jogo e Inicio do Projeto

Ronildo Souza
6 min readApr 21, 2018

--

Baixe o Game: https://goo.gl/4p3YdA

Anteriormente…

MonoGame Tutorial — Parte1: Introdução

Como eu havia esclarecido na Parte 1 deste tutorial, o MonoGame é uma implementação do Microsoft XNA, desta forma a estrutura de camadas segue a do XNA.

Camadas XNA Framework

XNA Fornece

O MonoGame/XNA disponibiliza a estrutura para o seu jogo e alguns helpers, você não precisa se preocupar com implementações de baixo nível.

Você Fornece

A lógica do jogo, as classes dos elementos do seu jogo, as sprites.

Comunidade

Existe uma comunidade ativa no desenvolvimento de helpers/components para facilitar a criação de jogos com o MonoGame, por exemplo: MonoGame.Extended e Nez, estes são os mais conhecidos (Acho Eu…rsr), mas se você acessar o site do Nuget e pesquisar por MonoGame verá varios outros.

Porque usar MonoGame!?

A pergunta que não quer calar…

Não tem como dar uma resposta que se aplique a todas as pessoas, acho que essa pergunta tem que ser respondida por cada um, pois cada um tem seus motivos para aprender ou não algo, como aquele saudoso ditado diz: “Gosto é igual bunda, cada um tem a sua!”.

Desta forma vou descrever a minha opinião:

  1. Só de ser um projeto de iniciativa brasileira já vale de mais utilizar..rsr.
  2. Você precisa realmente ESTUDAR o desenvolvimento de jogos, para conseguir criar a lógica de colisão de objetos, por exemplo.
  3. Você realmente entende como funciona um jogo.
  4. Possibilita a criação do jogo para várias plataformas com reaproveitamento de código (Mas o Unity não possibilita isto!?).

NÃO sou contra nenhum outro tipo de ferramenta para desenvolver jogos, antes de conhecer MonoGame o meu objetivo era estudar o Unity, eu até já estudei e contribui para uma game engine feita em AutoIt chamada G-Engin, mas porém, toda via, entretanto… Escolhi a pílula vermelha, ou foi a azul…rsr

Plano de Jogo

Desenvolver um jogo não é muito diferente de desenvolver um software, os jogos também precisam de um planejamento onde colocamos a ideia no papel para posteriormente iniciarmos o desenvolvimento.

Neste tutorial vou usar um planejamento simples, sem definição de marcos e/ou tarefas, a ideia será apenas transcrever o que está na “caixola” no papel (bloco de notas também serve).

O documento de planejamento terá as seguintes informações:

  • Nome Teoricamente a parte mais fácil, mas põe a sua ideia no papel é defina um nome, algo que irá chamar a atenção do usuário e que não exista. Ô trem difícil…rsr (Sim sou mineiro…kkk).
  • Categoria Qual estilo de jogo irá predominar: Tiro, Corrida, Esporte, Simulação, Educativo…
  • Época — Passado, Presenta, Futuro.
  • Personagens — Personagem jogável, inimigo, mestres.
  • Cenário — Uma cidade, floresta, no espaço, cidade pós apocalíptica…
  • História — O enredo do jogo para explicar o porque do personagem está ali, o porque dos fatos que estão ocorrendo. Mesmo que a história não seja efetivamente narrada durante o jogo ela é importante para você se orientar durante o desenvolvimento.
  • Regras — O usuário principal tem X de vida, sua arma causa um dano Y ao ser atacado por um inimigo ele perde Z de vida…

Apresentando o Jogo a Ser Desenvolvido

Foi pensando no dia a dia dos motoristas brasileiros que cheguei a ideia do jogo para ser desenvolvido durante este tutorial, será um jogo simples, mas vou procurar mostrar as funcionalidade do MonoGame ao máximo.

PLANO DO JOGO

Nome:
Desvie dos Buracos Se For Capaz

Categoria:
Simulação

Época:
Presente

Personagens:
Carro (Jogador), Buracos (Inimigo)

Cenário:
Uma rua esburacada

História:
Após 1 ano de trabalho duro nada melhor que uma bela viagem para curtir os 30 dias de férias, devido ao alto custo das passagens aéreas e de ônibus a melhor opção custo/beneficio será viajar de carro, porém cada quilômetro na estrada é uma surpresa, buracos é mais buracos, mesmo pensando: “Para que server o IPVA!?”, o jogador não desiste é prossegue com a viagem.

Regras:
* O carro do jogador possuíra uma resistência de 100% e uma velocidade de 110km/h.
* Os buracos causaram um dano aleatório de 1% á 10%.
* A cada buraco desviado o jogador ganhará desconto no IPVA.

Caso você leitor seja alguém influente do tipo “Você sabe com quem está falando!?”, compre a ideia e faça a mesma virar realidade os brasileiros serão gratos eternamente ; )

Iniciando o Projeto

No Visual Studio crie um novo projeto, File — New — Project ou Ctrl+Shift+N, em Visual C# clique em MonoGame e selecione o template MonoGame Android Project, defina o nome como DesvieDosBuracosSeForCapaz, clique em OK.

Clique com o botão direito sobre o projeto é adicione uma pasta com o nome GameObjects em seguida adicione as classes: GameObject2D.cs, Carro.cs, Buraco.cs.

Reparem que Posicao, Velocidade e Origem são variáveis publicas é não propriedades, isso se faz necessário devido ao seguinte erro:

Isto ocorre porque o tipo Vector2, definido para estás variáveis é uma struct e não uma class.

Por enquanto as classes Carro.cs e Buraco.cs ficaram apenas com estas propriedades mais a herança de GameObjet2D.cs.

Importando Conteúdo

Baixe as seguintes imagens:

buraco.png
carro.png

No Solution Explorer navegue até a pasta Content, clique com o botão direito do mouse no arquivo Content.mgcb é selecione Open With…, procure por MonoGame Pipeline Tool e de um duplo clique.

Assim que a tela do MonoGame Pipeline Tool for apresentada clique com o botão direito sobre Content — Add — New Folder, informe o nome Sprite, clique na pasta que foi criada com o botão direito do mouse Add — Existing Item…, selecione as imagens que foram baixadas e confirme a importação, após importar as imagens salve as ações realizadas no MonoGame Pipeline Tool.

Agora que já temos o conteúdo do jogo importado vamos carregar os mesmo e mostrar na tela, faremos isto na classe Game1 utilizando as classes Carro e Buraco.

Na classe Game1 foi declarado as variáveis _carro e _buraco utilizando as classes criadas anteriormente, no método Initialize as variáveis são instanciadas com uma posição inicial, em seguida no método LoadContent as imagens são carregadas e por fim os objetos do jogo são desenhados no método Draw, desta forma o seguinte resultado é obtido:

Repositório dos Exemplos:

https://github.com/RonildoSouza/MonoGameTutorial/tree/Parte2

REFERÊNCIAS:

https://openclipart.org

https://www.youtube.com/watch?v=iSMYVVl0drM

Brazil, André Luiz. Desenvolvendo Jogos 2D com C# e Microsoft XNA: volume único / André Luiz Brazil, Lúcia Blondet Baruque. — Rio de Janeiro: Fundação CECIERJ, 2010.

MonoGame Tutorial — Parte3: Movimentação dos Objetos do Jogo

--

--

No responses yet