Dicas

Essa página contém diversas dicas para criar jogos, algumas específicas para quem utiliza o Game Maker e outras que servem para qualquer desenvolvedor. Algumas dicas acredito que serão úteis até mesmo para sua vida pessoal. Se quiser adicionar dicas ou corrigir algo que considere errado, utilize a seção de comentários; os devidos créditos serão dados.

Pense

Pode parecer uma sugestão "óbvia", mas diversos códigos apresentam erros absurdos envolvendo lógica simples. Isso é ainda mais visível em questão de otimização.

Satisfação

Elabore e/ou participe de projetos que você realmente goste ou ao menos semelhante. Um fã de RPG dificilmente teria satisfação em criar um jogo de esporte, mas poderia gostar de criar um jogo de cartas sobre criaturas medievais/fantásticas.

Inglês

Se ainda não sabe, aprenda inglês; mesmo que apenas o básico. Além de te ajudar a encontrar mais informações acerca de programação, também será extremamente útil para sua vida.

Português

Isso mesmo. Muitas pessoas postam procurando ajuda em fóruns mas não conseguem transmitir sua dúvida de maneira clara e objetiva. Além do mais, dificilmente alguém levará a sério uma pessoa que está recrutando uma equipe mas não tem um bom português.

Organização

Mantenha-se organizado. Crie um documento definindo metas e correções a serem feitas, caso não queira fazê-las naquele momento. Divida seus recursos em pastas devidamente nomeadas. Mantenha seu código limpo.

Milagre

Algum código funcionou e você não faz ideia do por quê? Aprenda. Mesmo que esteja funcionando agora, é bem provável que surgirão bugs no futuro que você não saberá resolver e ainda terá dores na cabeça tentando descobrir sua origem.

Fan-Games

Não dedique tanto tempo aos fan-games. Apesar de ser interessante tentar criar uma versão melhorada do seu jogo favorito, você não poderá monetízá-lo.

Jogos

Quer fazer um jogo melhor que todos os outros? Jogue. Nada melhor que adquirir experiência enquanto se diverte. Pergunte-se como algo foi feito e, se tiver interesse, tente programar aquilo no Game Maker.

Plágio

Não seja mau-caráter. Usou algo que não é seu? Dê os créditos. A pessoa que criou deixou explícito que sua criação não deve ser utilizada por terceiros? Faça um pedido formal e, se ela não permitir, não use.

Anotações

Anote todas suas ideias, mesmo que ache que nunca irá esquecê-las. Poder ser que você "recupere" suas memórias, mas em alguns casos nunca terá certeza de que essa é mesmo sua "ideia genial" ou uma réles adaptação.

Cultura

Leia livros, assista filmes, visite blogs que nada tem a ver com sua área de atuação, conheça novas culturas. Fazer seu cérebro "pensar diferente" e adquirir novos conhecimentos certamente farão de você um programador e uma pessoa melhor.

Recursos

Se quiser que seu jogo tenha uma aparência profissional, não utilize recursos do Game Maker para a versão final dele, como: imagens, a função show_message, entre outros.

Etapas

Pense grande, comece pequeno. Adquira experiência antes de tentar programar seu jogo super complexo. Além de evitar possíveis frustrações, seu "jogo dos sonhos" terá mais chances de ser bem sucedido.

Drag'n'Drop

Não programe utilizando o Drag'n'Drop. Sabemos que vocês é capaz de aprender GML (Game Maker Language).

Tutoriais

Leia, teste e aprenda com eles.

Revisão

Revise seus códigos quando considerar que seu "nível de programação" avançou consideravelmente. É incrível os erros bobos que cometemos no começo e ainda mais incrível como conseguimos otimizá-los depois de um tempo.

Variáveis

Aprenda como utilizar e para quê serve cada variável. Isso evita o uso desnecessário de memória. Veja o Tutorial sobre Variáveis.

Tiles

Sempre que possível utilizes tiles ao invés de objetos. Eles consomem menos memória.

Sincronização

Faça alguns testes e verifique se a opção "Use synchronization to avoid tearing", que pode ser encontrada em "Global Game Seting" na aba "Windows - Graphics", realmente ajuda seu jogo. Se essa ajuda for negligível, desmarque essa opção pois ela reduz drásticamente seu FPS.

Tentativa e Erro

Antes de pedir ajuda, procure esgotar sua capacidade mental. O processo de tentar resolver erros irá deixá-lo mais capacitado a resolver problemas futuros e tornará o processo de aprendizagem mais eficaz.

Operadores

Saiba o que são e como utilizar operadores. Veja o Tutorial sobre Operadores para aprender mais sobre eles.

Indentação

Sempre indente seus códigos. Facilitará a sua vida e a de outras pessoas que precisem analisar seu projeto.

Nomenclatura

Utilize sufixos/prefixos para melhor identificar seus recursos, como: spr_nomedaimagem, nomedoscript_scr e obj_nomedoobjeto.

Comentários

Sempre comente seus códigos. É provável que em algum momento você tenha que tirar uma folga do desenvolvimento do seu jogo e, provavelmente, não lembrará o que todos códigos fazem.

Eventos

Entenda perfeitamente a função de cada evento para evitar erros. Veja o Tutorial sobre Eventos para aprende como cada evento funciona.

Cálculos

Evite cálculos desnecessários e simplifique-os sempre que possível. Ao invés de fazer cálculos utilizando constantes, use simplesmente o resultado da conta.

Parent

Sempre que possível utilize "parents", opção encontrada no editor de objetos. Isso fará com que o objeto compartilhe caraterísticas com seu "pai". Um bom exemplo de uso é para checar colisões; ao invés de checar contra cada objeto, criamos um "obj_colisão" e o usamos como parent de todos objetos que realizarão a checagem.

With

Se estiver alterando diversas variáveis à partir de outra instância, prefira utilizar a função with ao invés do código "instância.variável". Veja o Tutorial sobre Variáveis para entender como fazer.

Ação

Pense, teste, corrija, teste de novo. Repita o processo até seu jogo estar pronto. A melhor maneira de não terminar um jogo é pensar demais e agir de menos.

Arrays

Aprenda como usar arrays e, sempre que possível, utilize-os ao invés de variáveis. Aém de utilizarem menos memória, sua inicialização é mais simples.

Funções

Caso precise utilizar uma mesma função diversas vezes armazene seu valor em uma variável, dessa maneira o valor da função será calculado apenas uma vez.

Switch

Aprenda a utilizar a função switch para substituir o uso de diversos if para deixar o código mais limpo. Veja o Tutorial sobre Funções Condicionais para ver exemplos.

MEF

Aprenda o que é e como criar uma Máquina de Estados Finitos para melhorar seus códigos. Veja o Tutorial sobre Máquina de Estados Finitos - MEF.

Scripts

Aprenda como criar e usar scripts para agilizar e otimizar seus códigos. Veja o Tutorial sobre Scripts para ver exemplos.

Perfeccionismo

Deixe o perfeccionismo de lado. Algumas coisas podem simplesmente ser demais para seu atual nível de conhecimento. Anote sua ideia e, futuramente, tente de novo; não perca dias tentando algo que pode nem mesmo dar certo. É bem provável que alguma nova ideia surja enquanto você tenta programar outras coisas.

Colisões Precisas

Use colisões precisas apenas quando for realmente indispensável. Colisões precisas são bem mais pesadas para processar.

Step

Verifique se todos códigos que utiliza no Step Event realmente precisam estar lá. Às vezes uma variável precisa ser definida apenas uma vez, portanto seria mais viável definí-la no Create Event.

Instâncias

Sempre desative/destrua instâncias que não serão mais utilizadas. Por exemplo: projetéis continuarão se movendo infinitamente e, mesmo que você não os veja, ainda estarão utilizando memória do jogo. Veja o Tutorial sobre Como desativar Instâncias fora da view.

Críticas

Procure pessoas que possam dar conselhos valiosos sobre a produção do seu jogo. Não estou dizendo para procurar alguém para dizer que você é capaz ou te colocar pra baixo, mas aqueles que irão encontrar furos na sua história, dizer quão absurdo uma ideia é e te ajudar a melhorá-las. Ignore as opiniões não construtivas.

Background Color

Sempre desative a opção "Draw Background Color" no editor da rooms na aba "background" caso esteja utilizando backgrounds (imagem de fundo).

Curiosidade

Seja curioso. Só isso.

Laços(Loops)

Sempre que possível, prefira utilizar a função repeat ao invés de while/for. Sua execução é mais rápida e mais leve, na maioria dos casos. Veja o Tutorial sobre Laços.

Colisões

Sempre que possível faça a checagem de colisão utilizando o objeto que menos possui instâncias, dessa maneira menos código terá de ser utilizado. Exemplo: ao invés de checar uma colisão com a parede utilizando as instâncias de obj_parede, faça com que o obj_jogador faça essa checagem.

Criatividade

Aqui é onde você deve gastar maior parte de suas energias. Tente implementar em seu jogo ao menos uma coisa totalmente nova, revolucionária; seja criativo. Não seja "só mais um".

Variáveis Locais

Use variáveis locais sempre que possível. Caso não saiba como utilizá-las veja o Tutorial sobre Variáveis.

Pé no Chão

A melhor maneira de se decepcionar muito é criar muita expectativa. Crie algo que te satisfaça, desse modo o pior que pode acontecer é criar um jogo do qual você tem orgulho. Ainda assim, trabalhe para ser o melhor.

Conhecimento

Aprenda com erros e acertos dos outros. Não é vergonha nenhuma utilizar uma engine, dando os devidos créditos, ou usá-la somente para aprender como algo foi feito e depois tentar fazer do seu próprio jeito.

Derrotas

Nem tudo serão flores. Apenas não desista por causa de alguns obstáculos; esses sempre existirão.

Análise

Dependendo do seu projeto, é uma boa analisar o mercado de jogos e focar naquilo que estão deixando de lado ou aproveitar a onda e criar "mais do mesmo", mudando algumas características.

Bandeira Branca

Saiba quando é hora de abandonar o barco. Por mais bonita que pareça a ideia de não desistir nunca, em alguns casos desistir é definitivamente a melhor opção. O criado do jogo E.T., para Atari, deveria saber disso.


Créditos:
Gonçalves - Game Maker Brasil
PredoX - Game Maker Brasil
shatterhand2 - Game Maker Brasil
Guisão - Game Maker Brasil
Who'sNerd?
Kotaku

Nenhum comentário :

Postar um comentário