Criar Browser Game - 6# um sistema de estatísticas flexível

A maioria (senão todos) dos Browsergames eu tenho jogado tem, de alguma forma ou de outra, incorporou algum tipo de estatísticas para o jogador. Estes podem ser coisas como ataque, defesa, resistência, etc - ou que poderiam ser mais 'abstrato' stats, como força de vontade, moxy, ou ego.

De qualquer forma, praticamente todos os jogos tem estatísticas em que - de outra forma, não há nenhuma maneira de saber o quão bem você está fazendo em relação a ninguém!

No decorrer de projetar o seu jogo, você pode descobrir que você precisa de 3 stats - ataque, defesa e magia. E assim você vai configurar a tabela 'users' em seu banco de dados algo parecido com isto:

CREATE TABLE usuários (  int id NOT NULL AUTO_INCREMENT,  nome varchar(250),  senha varchar(50),  int ataque,  defesa int,  int magia,  PRIMARY KEY(id) );

Qual seria ótimo. Você construir o seu jogo, eo jogo iria funcionar como esperado.

Mas o que acontece quando, mais tarde, na estrada, você quer adicionar um novo status - como a defesa mágica ou algo assim? Com o projeto que você tem agora, você vai precisar primeiro modificar sua usuários da tabela, e depois modificar qualquer código que interage com o stat novo - além de inicializar o status para todos os jogadores que já existem, mas não têm o stat.

Será que isso soa como um pouco de dor para você? Porque ele faz para mim - e eu estou aqui para te mostrar um caminho melhor.

Ao mover as nossas estatísticas em sua própria tabela, podemos criar uma mesa repleta de estatísticas disponíveis para os jogadores, sem precisar se preocupar sobre como modificar todas as tabelas, mais tarde, no nosso jogo - se quiser adicionar uma estatística, nós só adicioná-lo à mesa eo nosso código, e estamos a fazer -, poderíamos até mesmo construir algo no local para verificar se os usuários têm a stat já, e se não ele cria a entrada para eles. Isso soa melhor do que ter que modificar nossa base de dados à mão, não é? Veja como podemos criar a nossa primeiraestatísticas da tabela:

CREATE TABLE Estatísticas (  int id NOT NULL AUTO_INCREMENT,  o texto display_name,  SHORT_NAME varchar(10),  PRIMARY KEY(id) );

E essa tabela agora armazenar todas as nossas definições stat. Se quiser adicionar um stat chamado "Magic Defesa" (e abreviado como "mdef" por causa do nosso código), podemos executar uma consulta como esta:

INSERT INTO Estatísticas(display_name,nome abreviado) VALUES ('Magic Defence','mdef');

... Em que ponto o novo stat existiria em nosso sistema - e todos nós precisamos fazer é modificar o nosso código para interagir com ele.

Para armazenar os valores de status para um jogador, tudo o que precisamos fazer é criar uma outra tabela:

CREATE TABLE user_stats (  int id NOT NULL AUTO_INCREMENT,  user_id int,  int stat_id,  texto de valor,  PRIMARY KEY(id) );

Neste ponto, vamos ter três tabelas - os usuários, gratuitamente, e user_stats. O objetivo do user_stats é ligar gratuitamente para usuários particulares particular - armazenar os seus valores. e user_stats.stat_id é o valor dastats.id para uma estatística particular, e user_stats.user_id é o valor da users.id. user_stats.value irá armazenar o valor real das nossas estatísticas.

Você pode estar se perguntando por que o tipo de user_stats.value é texto, ao contrário de int ou algo assim - é assim que podemos ter como um sistema de estatísticas flexível como nós precisamos. Ao armazenar o valor como um tipo de texto, somos capazes de armazenar textos ou números dentro de nossa coluna - o que significa que, se quiséssemos ter um status como "status" que os valores possíveis de "Awake", "Asleep", ou "Comer" - que poderia, além de ter outra estatística chamada "Restedness" que simplesmente continha um valor entre 1 e 100. Ao usar o texto de tipo para nossa coluna, somos capazes de armazenar o que quiser - embora isso não significa que você precisa para ser mais cuidadoso sobre como você lida com os valores de suas estatísticas, dentro do seu código real.

Esperemos que dando uma olhada na estrutura de banco de dados e essas explicações, você pode ver que este sistema poderia ser uma melhor maneira de armazenar as estatísticas dos jogadores que por codificá-las em seususuários da tabela - embora, realmente, qualquer abordagem vai fazer. Mas se você está procurando flexibilidade na estrada, esta abordagem dará a você mais do que de hard-coding valores em seu banco de dados. A flexibilidade é sempre uma vantagem se você já planeja aprimorando o seu jogo.

0 Response to "Criar Browser Game - 6# um sistema de estatísticas flexível"

Postar um comentário

powered by Blogger | WordPress by Newwpthemes | Converted by BloggerTheme