Regras para nomear variáveis e outros recursos

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Regras para nomear variáveis e outros recursos

Mensagem por GustavoLC em Sab 03 Dez 2011, 20:35

Olá, pessoal. Decidi criar esse post porque não vi nenhum parecido aqui no fórum e porque acho pertinente para todos aqueles que escrevem programas, desde iniciantes até pessoas com conhecimento mais avançado.

Trago aqui algumas sugestões para padronizar a criação dos nomes dos recursos (sprites, sons, rooms, objetos etc) e variáveis, a fim de ficar mais fácil referenciar aos mesmos durante o desenvolvimento do jogo.

A sintaxe que eu geralmente utilizo é como se segue abaixo e eu a sigo rigorosamente a fim de me ajudar durante a escrita de código. Não se trata de nenhuma regra e sim apenas uma sugestão que pode nem ser a melhor.

Peço de antemão que quem utiliza um padrão diferente, compartilhe conosco, pois eu mesmo às vezes tenho problemas na hora de definir um nome.

Vamos lá:

    Em primeiríssimo lugar, cuidado com as variáveis e constantes já definidas pelo GM na hora de criar nomes de variáveis. As palavras "gravity" e "c_white", por exemplo, são palavras reservadas e não podem ser usadas.


    Em segundo lugar, evite utilizar espaços e pontos na definição dos nomes de recursos e variáveis, pois se você for usar o editor de código do GM, isso pode gerar conflitos na hora de ser interpretado.


    Em terceiro lugar, é recomendado manter os nomes apenas com letras minúsculas, pois o compilador do GM é do tipo case sensitive (ab1, AB1, aB1 e Ab1 são interpretados como 4 variáveis distintas, por exemplo) e isso pode gerar conflitos com a utilização do editor de código.


    Em quarto lugar é interessante manter um padrão de sintaxe na hora de escrever os nomes, para que seja fácil recordar enquanto se escreve código sem ter que ficar verificando toda hora. A sintaxe que eu utilizo é como segue abaixo.


tipo_(prefixo)nome principal_(sufixo)


Tipo é a abreviatura do recurso correspondente ao que está sendo nomeado. É a primeira classificação que é feita com os nomes. Seguem abaixo os principais tipos que eu utilizo nos meus nomes:

bkg- background
c - constante
f - função
mus- musica
obj- objeto
pth - caminhos (paths)
rom- room
snd- sound
scr- script
spr- sprite
v - variável


Após o tipo, é adicionado o underline(_).


Prefixos são opcionais e servem para diferenciar características diferentes de um mesmo nome principal. Por exemplo, para os sprites do personagem principal (heroi) referentes ao heroi parado, o heroi correndo e o heroi pulando, eu utilizo os seguintes nomes para os recursos:

spr_stdhero;
spr_runhero;
spr_jmphero;

Seguem abaixo os principais prefixos que eu utilizo, sendo que é uma lista que continuamente vai sendo aumentada:

min - mínimo, menor valor
max - máximo, maior valor
std - parado (stand)
run - correndo (run)
wlk - andando (walk)
jmp - pulando (jump)
menu - rotinas de menus
btn - button
sup - superior
sub - inferior
mid - médio
big - grande, maior
hp - saúde do herói (hp = hit points)
ehp - saúde do inimigo (enemy hp)
bhp - saúde do chefe (boss hp)
wpn - arma (weapon)
mag - magia


Os prefixos NÃO são separados do nome principal.


Sobre os nomes principais: aqui não existe exatamente uma padronização, o nome principal é aquilo que identifica a essência do que está sendo nomeado. Pode ser o herói, um item, um monstro, uma barra de energia, uma fase, uma magia, entre outros. No geral, eu utilizo expressões em inglês (como já devem ter percebido, rs). Isto porque o inglês é uma língua mais fonética e portanto as palavras são geralmente menores que as equivalentes em português. Como eu trabalho mais com programação em linhas de código, quanto menor o nome de alguma coisa, menos trabalho eu terei com a digitação. Existem alguns nomes-chave que eu utilizo, porém é uma lista que também é continuamente aumentada:

hero - protagonista da história, o heroi.
enemy - inimigos comuns
boss - inimigos- chefe de fase
finalboss - chefe final do jogo


Porém, em algumas situações (como na construção dos inimigos do jogo), é interessante definir os nomes para os objetos do jogo e usar esses nomes na identificação dos recursos pertinentes a ela. Fica mais fácil do que manter nomes principais como enemy1 e enemy2, por exemplo. Nesse caso, é interessante manter uma documentação, mesmo que simples, desses nomes a fim de evitar que eles se misturem e confunda ainda mais a escrita do código.


Sufixos, assim como os prefixos servem para discriminar ainda mais características de um determinado recurso.

Sugestões de sufixo:

1,2,3...
esq - esquerda
dir - direita
up - cima (up)
dwn - baixo (down)
cen - centro
parent - se a instância é objeto pai



Alguns exemplos de variáveis criadas com essas minhas dicas e suas interpretações:

obj_hero - o herói
spr_stdhero_esq - a imagem (spr) do herói parado (stdhero) virado para a esquerda(esq).
spr_shot_dir : sprite do tiro comum para a direita
spr_midshot_dir : sprite do tiro médio para a direita
spr_bigshot_dir : sprite do tiro maior para a direita
obj_hpbarrogau : objeto barra de energia do inimigo "Rogau"
v_menucursor: variável que registra a posição do cursor no menu principal.
obj_box_1: uma caixa qualquer;
obj_box_2:outra caixa qualquer;
snd_enemyhurt: efeito sonoro quando se acerta o inimigo;
mus_fase1: música da fase 1 do jogo;
spr_wpnenemy_parent: sprite do objeto pai que define as armas do inimigo



Enfim, espero ter ajudado alguém com essas dicas e contribuído para o conteúdo do fórum. Mais uma vez, peço que quem utiliza uma forma diferente de padronização compartilhe conosco. Abraços!

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Regras para nomear variáveis e outros recursos

Mensagem por peixoto em Sab 03 Dez 2011, 21:25

Legal seu tutorial.

Ele está mais para uma dica, mas tudo bem Happy

Mas, sobre a parte "manter os nomes apenas com letras minúsculas", nao acho que atrapalha(nao tanto quando o espaço).Aliais eu uso isto para diferenciar sprites parecidos no meu game, ponho tipo:

Player
player
pLayer
etc

Happy

peixoto

Ranking : Nota D
Número de Mensagens : 911
Idade : 21
Data de inscrição : 14/02/2010
Notas recebidas : D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Regras para nomear variáveis e outros recursos

Mensagem por Limalokão em Sab 03 Dez 2011, 21:31

Legal o tuto cara, mas eu sempre uso:
oPlayer1> objeto Player1
sPlayer1> Sprite Player1
vAtirando>Variavel atirando
gvpontos>Global variavel pontos

=D

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Regras para nomear variáveis e outros recursos

Mensagem por Ritton em Sab 03 Dez 2011, 21:43

Eu já sou um pouco conservador neste aspecto... Geralmente não abrevio, mas quando faço isso utilizo:

rm - room
tml - timeline
fnt - fonte
left - esquerda
right_ direita
etc...

Gostei da dica do tutorial. Até que está bem explicado e é perfeito para iniciantes. Mas que eu saiba isso não é uma padronização não e sim "expressões" que ficaram populares quando criamos algo no Game Maker. De qualquer forma, belo trabalho!

Até mais!

Ritton

Ranking : Nota C
Número de Mensagens : 673
Idade : 18
Data de inscrição : 07/06/2011
Notas recebidas : C
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Regras para nomear variáveis e outros recursos

Mensagem por GustavoLC em Qua 07 Dez 2011, 23:58

Galera, valeu pelas críticas. Espero que tenha ajudado alguém. Abraços.

GustavoLC

Número de Mensagens : 39
Data de inscrição : 20/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Regras para nomear variáveis e outros recursos

Mensagem por Conteúdo patrocinado Hoje à(s) 17:47


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum