MonoGame Tutorial — Parte 2: Planejamento do Jogo e Inicio do Projeto
Baixe o Game: https://goo.gl/4p3YdA
Anteriormente…
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.
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:
- Só de ser um projeto de iniciativa brasileira já vale de mais utilizar..rsr.
- Você precisa realmente ESTUDAR o desenvolvimento de jogos, para conseguir criar a lógica de colisão de objetos, por exemplo.
- Você realmente entende como funciona um jogo.
- 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 CapazCategoria:
SimulaçãoÉpoca:
PresentePersonagens:
Carro (Jogador), Buracos (Inimigo)Cenário:
Uma rua esburacadaHistó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:
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://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