0

Por Devove, FineNerds, & VoiD_Glitch

Traduzido por Sanngridr

INTRODUÇÃO:

Geração de Número Randômico é a geração de uma sequência de números ou símbolos que não podem ser previstos de forma razoável melhor do que uma chance randômica, usualmente através de um Gerador de Número Randômico (RNG). Geração de Números Randômicos é um fator essencial para itens dentro do jogo já que a chance de se conseguir um item pode determinar o seu valor de mercado e influenciar nos meios que os jogadores obtêm ele (como comprar ou farmar o item). Não existe um modo de gerar números randômicos de forma determinística, mas existem algoritmos que podem aparentar uma sequencia randômica. O algoritmo que o Warframe usa é a versão do Gerador Linear Congruente (Linear Congruential Generator  – LCG) de Donald Knuth, escalando de Pesos de Raridades que influenciam nas chances de drop de itens nos arquivos de DropTables e MissionDecks. Vejam que a fórmula Xn = (aXn-1 + c) mod m apenas se aplica para missões que envolvem ganhar recompensas ao passar do tempo, como Defesa e Sobrevivência. Este conceito é explicado por Pwnatron neste tópico, começando com “A ordem destes itens é importantes de algum modo”. No caso de missões como Captura e Extermínio, eles simplesmente usam o processo que será explicado mais à frente deste artigo.

 

PESO DE RARIDADES

Warframe usa 4 Pesos de Raridades no seu algoritmo de Geração de Número Randômico. Estes pesos são uniformes em todas as DropTables e MissionDecks, com exceção do /Lotus/Types/Game/MissionDecks/SortieRewards,  que usa FixedWeights (Pesos que a Digital Extremes associa manualmente).

 

FÓRMULA 

 

PROCEDIMENTO (EXEMPLO) 

 

NORMALIZAÇÃO:

Normalização ocorre quando um ou mais Pesos de Raridade não estão presentes em um DropTable ou MissionDeck. Normalização tem vários significados, mas neste caso se refere à divisão de constantes que são adicionadas para que os valores caiam entre zero (0) e um (1) entre grupos de dados diferentes.

 

PROCEDIMENTO DE NORMALIZAÇÃO (EXEMPLO) 

 

ATENUAÇÃO:

Atenuação é uma variável exclusiva para DropTables. O Boolean (Boleano) OverrideLevelAdjustedBiasAtten determina se a Atenuação estará presente em uma DropTable ou não. Atenuação é definida como “a redução da força, efeito ou o valor de algo”. Isto significa que a conforme o valor de Atenuação aumenta, a chance de drop de um item deve diminuir. Porém, devido ao baixo valor que ele possui (0.5) (vem de uma das variáveis secundárias do Boleano RareAttenMax), e que o seu impacto na DropTables é global ao invés de individual para itens, é impossível de determinar precisamente se existe um impacto notável ou não dos itens.

 

BIAS

Bias é uma variável exclusiva das DropTables. Bias pode ser aplicado em itens dentro da DropTables mas não globalmente dentro dela. Bias é definido como “um aspecto de uma técnica estatística ou dos seus resultados onde o valor esperado dos resultados difere do verdadeiro parâmetro quantitativo fundamental sendo estimado”. Isto significa que o único propósito do Bias é para pesar desigualmente itens dentro de uma DropTable (usando uma mudança de valor positiva (+) ou negativa (-)), mesmo se os itens possuírem Pesos de Raridade idênticos. No Warframe, Bias é uma variável que impacta negativamente a chance de drop de um item. Quanto mais Bias um item tiver, menos a chance de drop será. Adicionalmente, devido à Bias escalar do Peso de Raridade que o item que ela está impactando tem associado, itens com um Peso de Raridade maior tenderão a dropar mais, dependendo da quantidade de Bias que estiver presente. Esta teoria foi confirmada com a ajuda de alguns jogadores

 

SEMENTES DE RECOMPENSAS (REWARD SEEDS)

rewardSeed é uma variável exclusiva de MissionDecks. Ela é um inteiro de 64-bit que determina a missionReward que jogadores recebem no final de uma missão. Ela é concedida a você no começo da missão, e continua com você até a conclusão da mesma. rewardSeeds são dadas ao host, e os membros do esquadrão recebem um sessionId para participar da mesma sessão. Você apenas receberá uma rewardSeed quando o seu cliente precisar ser distribuído entre jogadores de um grupo (como host). Isto significa que você receberá uma rewardSeed se você começar uma sessão Pública, Apenas Amigos ou Apenas Convite, porém se você começar uma sessão Solo você não receberá uma rewardSeed. Apesar da variável SRand (a semeação para o gerador de número randômico (um inteiro pseudo-randômica entre 0 e RAND_MAX)) ser diferente para cada jogador, cada jogador sempre receberá a mesmo missionReward que o host, devido aos sessionIds idênticos

 

Your email address will not be published. Required fields are marked *