Game Maker - Aula 1 - Introdução
Autor: Allison | Publicado: 2011-05-30T18:29:00-03:00

Nome: Introdução ao Game MakerNível: InicianteDescrição: Aprenda tudo sobre a criação e progresso do Game Maker até hoje.Créditos: Allison ou X-GamesPrimeiramente olá a todos, quero dizer às pessoas que acompanharam minhas aulas em vídeo anteriores, que agora todas as aulas serão escritas, se você esta começando a acompanhar de agora, estou escrevendo todas as outras aulas que estão ainda em vídeo.Nessa aula falaremos sobre a criação do Game Maker, por quem foi criado, como era chamado e todo o seu progresso até hoje. Essa aula é totalmente teórica.Bom, o Game Maker foi inventado por Mark Overmars em 1999, mais precisamente em 15 de novembro, Mark não criou precisamente o Game Maker, e sim o Animo, um programa de criação e edição de imagens e frames 2D. Com o passar do tempo, os usuários usavam o Animo com o intuito de criar jogos simples, daí, Mark mudou seu nome, todo o seu suporte e base, assim passando de editor de frames, para um belo criador de jogos, dando início a versão 1.0, que hoje se encontra na 8.0 e pode ser feito o download no site da YoYo Games (Empresa responsável pelo Game Maker) gratuitamente. Um dos principais recursos do Game Maker, é sua linguagem, o GML ( Game Maker Language) O GML é a linguagem de programação usada pelo Game Maker. Com ela, podemos desde simples movimentos, a execução de comandos externos, uso de resources (imagens/sons externos) e até criarmos conexões Cliente/Servidor para jogos Online. Tudo isso é possível graças à engine criada para o Game Maker, que compila o código escrito em GML para a linguagem de máquina do Game Maker.Para quem já programou/programa em alguma linguagem, a sintaxe do GML é semelhante à do C, com mais ênfase na tipagem do Javascript. A intenção deste material não é ensinar a programar, mas ensinar a usar a linguagem GML. O Game Maker foi escrito na linguagem Delphi, tendo já algumas informações de que a partir da versão 8.0, ele está sendo criando em C#, assim fazendo rodar em múltiplas plataformas como no sistema operacional MAC.Recursos:O Game Maker, diferente de outras linguagens como c#, utiliza recursos internos para seu melhor manuseio, vamos agora conhecer um pouco desses recursos para melhor entendimento das aulas.SpritesAs sprites são imagens de pequenos ou grandes portes, que você usa para preencher um objeto, por exemplo, você esta fazendo um jogo de carro, você vai fazer o objeto e colocar funções, eventos e outros, no caso, você não pode abrir as imagens do carro direto no objeto, você terá que criar a sprite (a imagem) do carro, e depois usar no objeto, que no caso é o carro. Como você vai usar muitas e muitas sprites diferentes, você precisa de uma extensão de arquivo que lhe dê qualidade e pouco uso de memória, o mais aconselhável é o PNG.Sons:Como você já deve ter imaginado, são todos os sons que seu jogo irá emitir, como o Game Maker trabalha com arquivos internos, você terá que importar, isso é uma desvantagem por que deixa seu jogo um pouco mais pesado. Existem vários tipos de sons, por exemplo, os sons de fundo, os sons normais, os sons 3D, etc. Os sons também podem deixar seu jogo muito pesado, isso porque um arquivo de som é bem pesado, por isso, eu aconselho salvar seus arquivos em MID, que tem qualidade e ocupa pouca memória.Backgrounds:Os backgrounds (ou fundo) é uma imagem que você usará no fundo, ou seja, por trás de todas as sprites e objetos, você pode usar um background com uma imagem de um céu, se por acaso seu jogo se passar em tipo de plataforma, a câmera totalmente de lado, em um ângulo de 180°. Cuidado, pois o uso excessivo de backgrounds pode deixar seu jogo totalmente pesado, por isso, uma das melhores extensões é a PNG.Paths:Os paths são um tipo de caminho que você cria e com uma função, faz um objeto andar por ele até o fim e começar de novo ou parar. Fica a seu critério.Scripts:Os scripts são códigos que usam GML para programação, assim interrompendo o uso de funções pré-programadas, que veremos mais tarde, e ainda da mais liberdade ao programador.Fonts:É usada para criar uma fonte personalizada, a fonte padrão do Game Maker é o Arial, essas fontes trocam, aumentam, ou deixa como negrito e itálico.Time Lines:São linhas do tempo, aonde você determina uma ação para cada tempo determinado, os tempos funcionam em steps, de acordo com a velocidade da room, por exemplo, se a velocidade da room for 30 (padrão), 30 é igual a 1 segundo, no caso das Time Lines, se determinarmos para ele executar uma ação no step 90, é para executar a ação depois de 3 segundos.Objetos:Os objetos serão aonde vai acontecer tudo, por exemplo, se você criar uma fonte, você terá que usar um objeto e dizer que aquela fonte será usada no texto que o objeto vai executar, eles usam um sistema de eventos, os eventos são um tipo de categoria aonde, primeiro você vai setar o evento desejado e depois você vai por a função dentro do evento, por exemplos, se você coloca no create, ele vai executar a função que você colocou toda a vez que criar a instancia. veja agora a lista de eventos e como elas reagem quando criadas:Expandir esta imagem Creater event: Este evento ocorre quando uma instância do objeto é criada. É normalmente utilizado para definir a instância em movimento e / ou para definir algumas variáveis para a instância.Destroy event: Este evento ocorre quando a instância é destruída. Para ser mais preciso, isso acontece pouco antes de ser destruída, para que a instância ainda existe quando o evento é executado! Na maioria das vezes esse evento não é usado, mas você pode, por exemplo, usá-lo para mudar o placar ou para criar algum outro objeto. 　Alarm events: Cada objeto ou instancia, tem 16 alarme, que são usados com o mesmo sistema de tempo, que eu expliquei pouco antes, os steps, funcionam da seguinte forma: você determina quantos steps o alarme terá e dentro do evento alarm, você coloca a função que deseja executar, se no caso você setar o alarm[0]=30 no create, e no evento alarm[0] você coloca um tipo de função, e ele é executado depois de 1 segundo, no caso 30 steps.Step events: O evento acontece a todo tempo enquanto a instancia está na room, ou seja, não vai parar de executar as funções, enquanto você não mandar, é claro. Aqui você pode colocar as ações que precisam ser executados de forma contínua. Por exemplo, se um objeto deve seguir outro, aqui você pode ajustar a direção do movimento em direção ao objeto que estamos seguindo. Tenha cuidado com este evento embora. Não coloque muitas ações complicadas nos eventos steps de objetos dos quais há muitos exemplos. Isso pode retardar o jogo baixo. Para ser mais preciso, há três eventos diferentes. Normalmente, você só precisa de um padrão. Mas usando o menu que você pode também selecionar o evento começará o step e o evento de step final.O evento começará step Begin é executado no início de cada etapa, antes de quaisquer outros eventos acontecem.O evento de step normal é executado pouco antes das instâncias são colocadas em suas novas posições.O evento etapa final é executado no final do step, pouco antes do desenho,. Isso normalmente é usado para mudar o sprite dependendo da direção atual, e é o end step.Collision: Sempre que dois objetos colidem (isto é, seus sprites se sobrepõem) um evento de colisão aparece. Bem, para ser mais preciso, dois eventos de colisão ocorrer, uma para cada instância. O exemplo pode reagir a este evento de colisão. Para esse efeito, a partir do menu que abrirá quando clicado no mesmo, selecione o objeto com o qual pretende definir o evento de colisão. Em seguida você coloca as ações. Há uma diferença no que acontece quando a instância colide com um objeto sólido ou um objeto não-sólido. Primeiro de tudo, quando não há ações em caso de colisão, nada acontece. A instância atual simplesmente continua em movimento, mesmo quando o outro objeto é sólido. Quando o evento de colisão contém ações acontece o seguinte: Quando o outro objeto é sólido, a instância é colocado de volta no seu lugar anterior (antes da colisão), ou seja, ele para. Em seguida, o evento é executado. Finalmente, o exemplo é transferido para sua nova posição. Assim, se o caso, por exemplo, inverte a direção do movimento. Por exemplo, se você quer que um objeto não passe das extremidades da room, você cria dois objetos, um para a parede e o jogador, na colisão do jogador com a parede, você vai colocar uma função determinada para ele parar, ou se outro caso, voltar.Keyboard events: Esse evento é ocorrido quando alguma tecla está sendo pressionada, no menu que aparecerá quando for pressionada, você pode indicar que tecla é essa, preste atenção esse evento ocorre quando a tecla está sendo pressionada, e não se for pressionada apenas uma vez.Mouse events: Um evento de mouse acontece de uma instância sempre que o cursor do mouse está dentro do sprite que representa a instância. Dependendo de qual botão do mouse é pressionado. Os eventos de botão do mouse são gerados em cada etapa, desde que o jogador mantém o botão do mouse pressionado. Os eventos de imprensa são geradas apenas uma vez quando o botão for pressionado. Os eventos de lançamento são gerados apenas quando o botão for liberado. Note-se que esses eventos só ocorrem quando o mouse está acima da instância. Se você quiser reagir a eventos do mouse ou pressione a liberação em um lugar arbitrário, utilize os eventos do mouse global que pode ser encontrado em um sub-menu. Há também dois eventos de mouse especial, quando o mouse entra na sprite da instância, outro quando sai, são os eventos “mouse enter” e “mouse leave”. Há um que é quando roda o scrool do mouse para cima e para baixo, os eventos “mouse wheel up(para cima)” e “mouse wheel down (para baixo)”. Finalmente, há uma série de eventos relacionados com o joystick. Você pode indicar ações para os quatro principais direções do joystick (em sentido diagonal, dois eventos acontecem). Além disso, você pode definir ações para até 8 botões do joystick. Você pode fazer isso tanto para o joystick primária e secundária do joystick. 　Other events: Há uma série de outros eventos que podem ser úteis em certos jogos. Elas são encontradas neste menu. Os seguintes eventos podem ser encontrados aqui:- Outside Room: Este evento ocorre quando a instância está completamente fora da room. Isso normalmente é um bom momento para destruí-la- Intersect Boundary: Este evento ocorre quando a instância se cruza o limite da room, ou seja, ele está (pelo menos), parcialmente fora da room.- Views: Aqui você encontra uma série de eventos que são úteis quando você usar exibições em suas rooms.- Game Start: Este evento acontece para todas as ocorrências na primeira room, quando o jogo começa. Isso acontece antes de começar a room. Este evento é normalmente definido em apenas um "controle", objeto e é usado para iniciar uma música de fundo, e para inicializar algumas variáveis, ou carregar alguns dados.- Game End: O evento acontece a todas as instâncias, quando o jogo termina. Novamente geralmente apenas um objeto define este evento. Por exemplo, é usado para armazenar dados em um determinado arquivo.- Room Start: Este evento acontece para todas as instâncias, inicialmente, em uma room quando a room começa. Isso acontece após os eventos de criação.- Room end: Este evento acontece a todas as instâncias existentes quando termina a room.- No More Lives: Game Maker tem um sistema embutido de vidas. Há uma ação para definir e alterar o número de vidas. Sempre que o número de vidas torna-se menor ou igual a 0, esse evento acontece. Ele é geralmente usado para encerrar ou reiniciar o jogo.- No More Health: Game Maker tem um built-in “sistema de saúde”. Existe uma ação para definir e alterar a saúde. Sempre que a saúde torna-se menor ou igual a 0, esse evento acontece. Ele é geralmente usado para reduzir o número de vidas ou para reiniciar o jogo.- Animation End: Uma animação consiste em uma série de imagens que são mostradas uma após a outra, são as sprites. Após o último é mostrado que começar de novo com o primeiro. O evento acontece precisamente no momento em que chega na última imagem. Como um exemplo, isso pode ser usado para alterar a animação, ou destruir a instância.- End of Path: Este evento ocorre quando a instância segue um caminho e o fim do caminho é alcançado.- Close Button: Este evento ocorre quando o usuário clica no botão fechar da janela. Isso só acontece quando desativar as definições de jogo a opção de ter o botão para fechar comportar-se como a tecla Escape. Definida pelo usuário: Há 16 desses eventos. Eles normalmente nunca acontecem, salvo se você chamá-los de um pedaço de código.- User Defined: Você pode criar 16 desses eventos. Esse evento só executa quando é chamado, funciona como um tipo de alarme.Draw event: Esses eventos servem para desenhar um sprite na tela, desenhar um texto, setar uma cor, em fim, tudo que se refere à desenho e parte gráfica em programação, é acontecido nesse evento.Key Press events: Este evento é semelhante ao evento de keyboard, mas isso acontece apenas uma vez quando a tecla é pressionada, ao invés de continuamente. Isso é útil quando você quer que uma ação aconteça apenas uma vez. 　Key Release events: Este evento é semelhante ao evento de teclado, mas isso acontece apenas uma vez quando a tecla é liberada, em vez de continuamente.Triggers events: Este evento quase não é usado, ele funciona como um tipo de gatinho, aonde você cria seu próprio evento, por exemplo, você quer que aconteça algo quando uma variável chegar a um valor definido, você usará ele, acho que você não entendeu nada, porém explicarei mais tardar.Bom, aprendemos bastante nessa aula, nossa primeira aula! Espero que vocês gostem, porque vocês são o meu motivo de está aqui hoje, dando esta aula, isto por que quando eu iniciei, eu era como vocês, não sabia de nada e ao longo dos tempos eu fui pegando a prática, faço isso pensando em vocês, na minha época de aprendizagem, existia poucos tutoriais e ainda mais desorganizado. Bom, quero dizer uma coisa para os que são fracos, agora, na primeira aula, são só flores, chegará determinados tempos em que você vai quebrar a cabeça e não vai consegui fazer, daí, você vai desistir, por isso eu digo uma coisa, nunca desista dos seus sonhos por que um sonho realizado é uma vitória, e não há uma vitória sem luta. Você terá que se dedicar bastante, além de que, vocês estão aprendendo sós, eu estou apenas disponibilizando um material, se aprender com o professor é difícil, você precisa se dedicar, imagina só, você precisa se dedicar duas vezes mais. Até a próxima.