O Game Maker é uma ferramenta de criação de jogos super completa feita por Mark Overmars capaz de fazer jogos em 2d ou em 3d. A ferramenta possui sua própria linguagem baseada em Delphi e blá blá blá... Vamos ser sinceros: em quase todo tutorial que procuramos na net sobre o Game Maker vemos essa introdução tediosa e irritante.
Que tal pularmos isso e irmos direto ao que interessa? A gente pega o Game Maker porque queremos criar nossos próprios códigos para uma versão de DOOM, de Quake, ou pro nosso próprio jogo original em 3d. Mas o que a maioria dos negos no fórum GMBR faz é dizer "faça algo em 2d e quando tiver pleno domínio disso passe para o 3d". Bem, até que eles podem ter razão, mas... Eu não estou aqui para tentar ensinar a fazer um super mário. Eu estou aqui para ensinar a fazer 3d.
E o que é melhor para dar os primeiros passos no 3d do Game Maker do que uma criação própria como Wolfenstein?
Pois bem, amigos. Vamos começar pela ambientação e movimentação 3d, já de forma que não tenhamos problemas com os próximos tutoriais:
Game Maker ( 6.1a / 7.5 / 8 ) pró
Paciência
E...
E...
E é só isso mesmo.
Primeiro de tudo, abra o seu Game Maker. (Nossa, é sério?)
Note a árvore de pastas à esquerda. É ali que são organizados todos os recursos usados para o seu jogo.
Primeiro de tudo, vamos criar de cara os objetos (objects) usados nesse tutorial.
obj_player => Esse será o seu jogador. É nele que faremos a maioria dos eventos, como movimentação e colisão
obj_camera => Apesar de sabermos que é um FPS, temos a câmera separada do jogador por alguns motivos, como poder mudar a perspectiva do personagem quando quiser, substituir a câmera por outro modelo, tipo aquelas grudadas na parede que seguem o personagem, alterar algo na visão e essas coisas.
obj_cubo_basic => Ao contrário do que vocês podem ter visto em tutoriais do próprio Mark Overmars, nós vamos trabalhar com "cubos" para as paredes. É menos intuitivo à primeira vista, mas vai se tornar bem mais prático para os próximos tutoriais.
obj_parede_v => Para montar o mapa no game maker usamos uma tela 2d. Isso porque o game maker suporta o 3d, mas não foi feito para isso. Logo, tudo o que usarmos em 3d será na base da gambiarra. Logo, v de vertical.
obj_parede_h => Pelos mesmos motivos do objeto anterior, h de horizontal.
obj_floor_basic => O tutorial do Overmars nos ensina que deveríamos desenhar o chão junto com a câmera, mas... Não. Vamos fazer isso diferente pelo simples motivo de organização.
obj_floor_e1m1 => Esse será de fato o chão
Tendo em mãos os objetos criados, vamos aos backgrounds:
Você vai pegar uma imagem para parede, uma para chão e uma para teto. Para fins de aprendizado, vou disponibilizar essas aqui:
back_wall
back_floor_and_ceiling
Tendo isso pronto, hora de criarmos os sprites para ajudar nas colisões e poder montar os mapas na room.
spr_player: crie um sprite nas dimensões 10x10 (em pixels). Pinte de qualquer cor. clique em "center" para o sprite desenhar a partir do centro.
spr_parede_h: crie um sprite nas dimensões 32x3 (em pixels). Pinte de qualquer cor. Clique em "center" para o sprite desenhar a partir do centro.
spr_parede_v: crie um sprite nas dimensões 3x32 (em pixels). Pinte de qualquer cor. Clique em "center" para o sprite desenhar a partir do centro.
Com os sprites prontos, vamos ajustar as configurações iniciais:
Abrir o obj_player e, onde diz "sprite", você clica e seleciona o "spr_player". Dê OK para confirmar.
Em "depth" vocês colocam "100".
Abrir o obj_camera e, em "depth", vocês colocam "1000"
Abrir o obj_floor_e1m1 e, onde diz "parent", clicar e selecionar "obj_floor_basic".
Em "depth", vocês colocam "10".
No obj_parede_h você faz a mesma coisa com o "spr_parede_h".
Onde diz "parent", vocês vão clicar e selecionar "obj_cubo_basic".
Em "depth" vocês colocam "10".
No obj_parede_v você faz a mesma coisa com o "spr_parede_v".
Onde diz "parent", vocês vão clicar e selecionar "obj_cubo_basic".
Em "depth" vocês colocam "10".
Com isso temos todos os recursos visuais para montar a nossa fase. Mas, onde montamos a fase? Vá na pasta room e crie uma room. Nomeie-a como quiser... Particularmente recomendo nomearem de e1m1, mas isso é preferência pessoal.
Nela vocês vão:
1 - Colocar o obj_camera(vai aparecer uma bolinha com interrogação. Normal, isso é porque não tem sprite... E nem precisa ter.
2 - Colocar o obj_player onde queira começar a fase.
3 - Com os objetos "obj_wall_h" e "obj_wall_v" vão cercar a room no maior quadrado que puderem. Logo depois disso, montem a fase do jeito que quiserem, usando esses dois objetos.
4 - Colocar o obj_floor_e1m1 no cenário em qualquer lugar.
Salvem o projeto e rodem.
Notem que:
1 - Você não consegue mover o personagem. porque ainda não programamos sua movimentação.
2 - Você não tem visualização 3d, você só vê os sprites dos objetos. Isso porque não programamos a câmera e os desenhos dos objetos ainda.
3 - O obj_camera e o obj_floor_e1m1 não aparecem na fase. Isso porque eles não têm sprites.
(Continua, nesse mesmo tópico, no próximo post)