Olá meus queridos, tudo bem com vocês?
Ontem à tarde surgiu uma discussão muito interessante motivada por um bug encontrado no Beta da Legion: alguns bichos, mais especificamente larvas encontradas em Val’sharah, estariam chegando a 40 trilhões de vida, mas ainda batendo como bichos de nível 1.
Isso nos leva a uma mudança que houve no passado, entre Mists of Pandaria e Warlords of Draenor: o item squish.
Mas como assim, o item squish?
Para os que não sabem, o item squish ocorreu bem no começo da Warlords, na qual todos os atributos de itens assim como dano em geral foram nerfados, por estarem chegando a números excessivamente altos.
Isso aconteceu porque o WoW foi criado originalmente em uma arquitetura de 32bits, o que significa que todas as variáveis para números inteiros eram representadas em 32bits (ou 4 bytes). Devido a essa tamanho, o máximo de vida que um monstro poderia ter, que seria uma variável de 4 bytes, seria de 2^31, ou 2,147,483,648.
Esse problema acabou muito aparente durante a luta final na raide Cerco à Orgrimmar, Garrosh Grito Infernal. A luta teve que ser designada com ele se curando várias vezes (2 em modo normal, 3 em heróico), e no modo 25 Heróico, ele acabou tendo uma vida efetiva (somando todas as vezes que ele se curava) de 3,6 bilhões.O item squish aconteceu para ajudar a aliviar esses valores, e na Legion, mais uma mudança foi implementada para adiar bastante a necessidade de um novo squish: a forma que a vida dos bichos é guardada foi modificada.
Os servidores do WoW rodam em arquitetura 64bits desde atualização durante o Cataclysm, e em Legion a variável que determina a vida dos monstros foi mudada para uma variável float64 (também conhecida como Double).
Um exemplo de como a mudança de arquitetura 32bits para 64bits influenciou o WoW foi no gold: antes do Cataclysm, o limite de Gold que se poderia ter em um personagem era de 214k (ou 2^31 copper). Após a mudança no sistema, o limite de Gold poderia chegar nos bilhões, assim como a vida, mas por limitações forçadas pela própria Blizzard, o limite ficou em 1 milhão, e aumentado para 10 milhões na Legion.
O que isso significa?
Agora é possível armazenar uma vida máxima de 2^53-1, ou seja, uma vida máxima de um tanto acima de 9 quadrilhões de vida.
Outra vantagem desse método para armazenar vida, é a possibilidade de existir vida em valores quebrados. Por exemplo, um monstro com 300.12 de vida agora será possível. Isso ajuda no sistema de vida escalada que está sendo utilizado para as novas zonas da Legion, e ajudaria significantemente caso eles decidam adicionar o sistema de escala de monstros para zonas mais antigas.
Então, teremos outro squish no futuro?
Baseado nesses números apenas? Não creio que seja possível (talvez se tivermos mais 10 anos de WoW!), mas talvez finalmente poderemos competir com os Nefalém do Diablo 3 em dano! (alguém pode sonhar, né verdade?)
Então é isso meus queridos, sonhem com o dano altíssimo que vocês podem chegar um dia 🙂
Até mais!
Agradecimentos ao @Anshlun por me ajudar na parte de programação!