Buscar

willian-aleatorio

Prévia do material em texto

O papel da aleatoriedade nos jogos eletrônicos 
Willian Rodrigues de Abreu Silva 
A matemática está presente em nossas vidas de diversas formas, aparecendo até nos lugares em que 
menos imaginamos. Uma utilização não tão óbvia dela está nos jogos eletrônicos, mais especificamente 
em algo que chamamos de RNG. 
RNG, ou Random Number Generator (gerador de números aleatórios, em português), é o nome dado para 
um algoritmo matemático que gera números aleatórios, estes são usados para ditar tudo que há de 
aleatório em um jogo. Com a ascensão dos e-sports, esse assunto tem ganhado enorme importância 
quando o assunto são jogos eletrônicos. 
Por exemplo, jogos de tiro como Fortnite, Counter Strike e FreeFire apresentam aleatoriedade 
principalmente em uma de suas funções mais básicas, na hora de atirar. Embora armas como pistolas e 
rifles de longo alcance muitas vezes apresentem tiros mais precisos, sendo influenciados somente por 
fatores constantes como a gravidade, a qual afeta o trajeto da bala, armas como fuzis e metralhadoras 
tendem a ser bem mais inconsistentes. Observando a imagem 1, podemos ver uma mira padrão de uma 
arma de baixa precisão. No momento em que o jogador atira, o RNG escolhe um ponto de duas 
coordenadas aleatórias, dadas como um plano cartesiano, dentro do círculo branco, dando desse modo a 
sensação de imprecisão da arma. 
 
Imagem 1 
Além disso, jogos do gênero “Battle Royale” tendem a apresentar mais aleatoriedade quando comparados 
a outros jogos de tiro. Na hora da criação da partida, o algoritmo seleciona onde os itens e as armas 
aparecerão no mapa, adicionando um fator sorte ao jogo, assim cair onde há itens que melhor satisfazem 
suas necessidades podem te dar uma grande vantagem. 
Nos jogos do tipo MOBA (“Multiplayer Online Battle Arena”, ou Arena de batalha multijogador online), 
a aleatoriedade se encontra presente de maneiras diferentes das já citadas. No geral, os dois jogos mais 
populares do gênero, League of Legends e DOTA2, embora tendo objetivos muito parecidos (dois times 
de 5 pessoas batalhando para destruir a base inimiga), ambos lidam com a aleatoriedade de maneiras 
extremamente diferentes. 
League of Legends tentou reduzir o máximo possível a aleatoriedade dentro jogo, desse modo priorizando 
ao máximo as habilidade dos jogadores. Um dos poucos fatores relevantes regidos por aleatoriedade é o 
acerto crítico, a chance de o personagem dar o dobro de dano num ataque, podendo ir de 0 a 100%, 
dependendo de seus equipamentos. Além disso, no começo da partida um dragão elemental aparece num 
lugar específico no mapa. Este pode ser de 4 elementos diferentes, escolhido ao acaso no começo da 
partida. Este dá ao time que o abater diferentes bônus, baseados no elemento, que servem como uma 
vantagem para ganhar a partida. 
 
Imagem 2: Os 4 dragões elementais 
DOTA2, entretanto, abraça a aleatoriedade de várias maneiras. Diversos fatores no jogo são regidos por 
ela, forçando ao máximo os jogadores a se adaptarem e jogarem em volta dessa aleatoriedade. Para deixar 
as coisas mais “justas”, DOTA2 usa, em alguns casos, um sistema de aleatoriedade no qual a chance de 
um evento acontecer aumenta caso ele não tenha acontecido na ultima tentativa. Exemplificando, se está 
escrito que personagem tem 25% de chance de acertar um ataque crítico, o algoritmo muda isso pra que 
ele tenha na realidade cerca de 9% de chance no primeiro ataque, assim, caso ele erre o primeiro ataque 
critico, o segundo ataque tem uma chance maior, cerca de 17%, errando novamente, a chance sobe para 
25%, e a assim sucessivamente. Após acertar um golpe, a chance do próximo golpe ser crítico volta para 
9%. 
Esse algoritmo de pseudo-aleatoriedade usado em DOTA2 acaba por deixar as coisas mais previsíveis e 
menos inconstantes. No geral, algoritmos que são previsíveis acabam sendo muito pouco eficientes e 
arriscados, porém no caso desse jogo, ele se encaixa muito bem. 
Outro jogo que também utiliza RNG é o Minecraft. Na criação do mundo, o jogo gera um número 
aleatório que chamamos de “semente”. A semente é um número que, ao ser passado numa fórmula 
matemática complexa, inicia um algoritmo de aleatoriedade que cria todos os aspectos do mundo. O 
algoritmo utilizado também é de pseudo-aleatoriedade, visto que, caso você tenha o valor dessa semente é 
possível criar sempre o mesmo mundo, assim tirando toda a aleatoriedade. 
 
Imagem 3: Menu de criação de mundo no Minecraft, com campo para inserção da semente 
Mas na realidade, o que é aleatoriedade real e o que é pseudo-aleatoriedade? Existem dois tipos de 
algoritmos de RNG, TRNG e PNRG. 
TRNG (sigla para “True Random Number Generator”, ou gerador de números aleatórios verdadeiros) é a 
forma de aleatoriedade mais pura que se pode obter. No geral, é utilizado um aparelho que capta qualquer 
evento que não siga nenhum padrão específico, como ondas do mar, som atmosférico e ruído térmico. 
Esse aparelho transforma esse dado em números, os aplica numa fórmula matemática e retorna um ou 
mais números aleatórios. Isso, entretanto, muitas vezes não é um processo prático para a maioria dos 
computadores. Esse tipo de aleatoriedade normalmente está presente em cassinos, nas maquinas de slot, 
por exemplo, e em criptografia, que exige algoritmos de aleatoriedade extremamente complexos. 
Porém, devido a inabilidade do computador de produzir esse tipo de aleatoriedade, praticamente todos os 
jogos eletrônicos e até mesmo cassinos virtuais utilizam algoritmos de pseudo –aleatoriedade (ou PRNG). 
Como explicado para Minecraft, praticamente todos os jogos também apresentam uma semente, e todos 
os eventos aleatórios posteriores são baseados naquela semente. Entretanto, ao contrário do Minecraft, 
não é possível saber esse valor, desse modo é impossível o jogador prever o resultado das aleatoriedades 
que irão acontecer no jogo. 
Mas afinal, como de fato funcionam esses algoritmos de PRNG? Embora muitos utilizem fórmulas 
matemáticas extremamente avançadas, existem algoritmos simples que servem para mostrar a idéia por 
trás da geração de números aleatórios. Um exemplo é o método do quadrado do meio, apresentando numa 
conferência por John Von Neumann em 1949. 
Primeiramente, precisamos de uma semente. Podemos escolher um número arbitráriamente ou utilizar de 
algum método fixo para escolher esse valor (por exemplo, podemos olhar num relógio e somar os digitos 
dos segundos e dos milisegundos desse exato momento). Após a obtenção da semente, elevamos o valor 
ao quadrado, e pegamos os algoritmos no meio do resultado como próximo valor da sequência. 
Repetimos o processo quantas vezes for necessário para gerar a quantidade de números aleatórios que 
quisermos. 
Para exemplificar, digamos que queremos gerar números aleatórios com 2 dígitos, e escolhemos como 
nosso valor de semente o número 42. 
42² = 1764 => 76 
Obtido o valor, elevamos ele novamente ao quadrado e fazemos isso quantas vezes quisermos. 
76² = 5776 => 77 
77² = 5929 => 92 
92² = 8464 => 46 
46² = 2116 => 11 
E assim por diante. Nossa sequência aleatória obtida é (42, 76, 77, 92, 46, 11) o que parece razoavelmente 
aleatório. Entretanto, esse método tem diversas falhas, podendo muitas vezes gerar repetições infinitas 
dependendo do valor da semente. Como exemplo, escolhemos o valor 50 como semente. 
50² = 2500 => 50 
50² = 2500 => 50 
Como podemos ver, escolhendo o valor 50, o algoritmo sempre irá escolher 50 como próximo valor, 
sendo assim nossa sequência composta apenas pelo número 50 repetido diversas vezes. Visto que esse 
algoritmo pode levar a repetições como essa com diversos valores diferentes de semente, esse método é 
considerado um método pouco eficiente para a geração de números aleatórios. Observando a imagem 4, 
podemos ver como o algoritmo se comporta para todos os números de 2 digitos. 
 
Imagem 4 
Hoje, temos algoritmos de PRNG que cada mais se assimilam muito aos algoritmos de TNRG. 
Entretanto, um algoritmo de PRNG de baixa qualidade(como o visto acima) pode ser facilmente 
hackeado, assim, muitos ataques cibernéticos e quebras de criptografia tem como principal culpado 
algoritmos de aleatoriedade fracos e previsíveis. Além disso, já tiveram casos em que algoritmos de baixa 
qualidade fizeram pessoas perderem grandes quantias de dinheiro em cassinos virtuais, causando 
problemas para empresas criadoras. 
Mas não só em jogos esta presente a aleatoriedade, ela até certo ponto está presente em todos os aspectos 
da vida. Dito isto, podemos dizer que ela está presente em esportes praticados na vida real, fatores como 
temperatura, velocidade do vento e tempo podem facilmente mudar o resultado de um jogo indiretamente. 
Entretanto, a minimização da aleatoriedade é uma discussão muito presente especialmente no meio dos e-
sports e jogos eletrônicos em geral. 
Visto que a aleatoriedade pode levar a mudanças de resultado drásticas, é necessário que a empresa 
criadora sempre tenha em mente a quantidade de aspectos que os jogadores não podem controlar. No caso 
de muita aleatoriedade, jogadores podem se deparar com resultados totalmente regidos por sorte. No caso 
dos e-sports, entretanto, aleatoriedade pode aumentar o fator entretenimento para o público, adicionando 
obstáculos aleatórios que os jogadores têm que superar para vencer a partida. Sendo assim, é necessário 
sempre procurar a dose certa de aleatoriedade para que o jogo seja um sucesso. 
Bibliografia 
RUBINSTEIN-SALZEDO, S. Cryptography, New York: Springer International Publishing, 2018. 
 
VILLELA, Marcelo. LoL: veja mudanças da pré-temporada de 2020 no MOBA da Riot Games. Techtudo, 
2019. Disponível em: <https://www.techtudo.com.br/noticias/2019/11/lol-veja-mudancas-da-pre-
temporada-de-2020-no-moba-da-riot-games.ghtml>. Acesso em: 6 de ago. de 2020. 
 
PSEUDO random distribution. Liquipedia. Disponível em: 
<https://liquipedia.net/dota2/Pseudo_Random_Distribution>. Acesso em: 6 de ago. de 2020. 
 
MIDDLE-SQUARE method. Wikipedia. Disponível em: <https://en.wikipedia.org/wiki/Middle-
square_method>. Acesso em 6 de ago. de 2020. 
 
FORTNITE Bloom – Weapon Mechanics. ARENAFPS. Disponível em: <http://arenafps.com/fortnite-
battle-royale-weapon-bloom-mechanics/>. Acesso em 6 de ago. de 2020. 
 
ABOUT Random Number Generators. Gambling Sites. Disponível em: 
<https://www.gamblingsites.com/online-casino/introduction/random-number-generators/>. Acesso em 8 
de ago. de 2020.

Continue navegando