Imagine passar meses recebendo reclamações de jogadores sobre crashes e bugs bizarros em seu jogo.
E procurar nos relatórios automáticos e não encontrar absolutamente nada.
Foi exatamente o que aconteceu com os desenvolvedores de Iron Rebellion, mas o surpreendente foi a real causa de tudo isso!
Um bug quase impossível de reproduzir!

Durante meses, jogadores relatavam travamentos espontâneos em Iron Rebellion.
E então a equipe começou a reproduzir situações específicas até perceber uma sequência extremamente incomum.
E era quando uma mecha era destruída, destroços caindo à esquerda, em uma região específica de um mapa com dois jogadores alemães envolvidos.

E a causa pode ser descoberta; o problema estava relacionado à localização do jogo para a Alemanha.
Pois lá eles utilizam a vírgula como separador decimal, em vez de ponto, e isso afetava os dados de rede do jogo diretamente.
Localização interferindo no código

Localização não significa apenas traduzir textos, pois configurações regionais podem alterar formatos de números, datas, moedas, etc.
E que são unidades de medida e outras representações que o software precisa interpretar corretamente.
No caso de Iron Rebellion, a diferença afetava os dados enviados, e a parte que recebia não conseguia ler esses dados, ocorrendo crashes.

E existe uma lição ainda maior aqui: a dependência indevida de uma configuração regional em um dado.
E que precisava ser tratado de maneira consistente entre os clientes.
Seu jogo será vendido para o mundo inteiro!

Para um desenvolvedor indie, é muito fácil testar o jogo apenas no próprio computador, com o próprio idioma, região, etc.
Mas o problema é que o jogador pode estar do outro lado do mundo, usando configurações completamente diferentes.
Por isso, cuidado com sistemas que trabalham com rede, arquivos salvos, números, datas, moedas, textos, serialização e localização.
Pois eles precisam ser desenvolvidos pensando em formatos consistentes e independentes da região do usuário.
Afinal, seu jogo será comercializado no mundo todo, portanto prepare-se para isso!

Em resumo, o caso de Iron Rebellion deixa uma lição simples: não teste apenas aquilo que você acha que pode quebrar.
Porque o bug mais perigoso pode estar justamente onde ninguém pensou em procurar.
Bugs não respeitam nossa intuição e podem surgir justamente nas partes do projeto que consideramos insignificantes.
Na CSJ Academy 3.0, você aprende a desenvolver jogos na Unity 2D e 3D, desde os fundamentos da programação.
E até a criação de sistemas avançados utilizados em projetos profissionais, tudo saindo do zero, passo a passo.

Seja o primeiro a comentar.