Salve trapaceiros!
Dando sequência à coluna da semana passada sobre Debug Mode, hoje vamos falar sobre formas de “intervenção” mais agressiva no código do jogo… alguns poderiam até chamar de cheat ou trapaça hm….. Veremos um pouco mais sobre GameShark, Game Genie e Action Replay, o que são, como funcionam e ao fim da segunda parte do texto, você vai até manjar um pouco mais sobre lógica de programação e desenvolvimento de jogos! Duvida? Segue ai então.
Cultura do Cheat – as origens –
Com as engines atuais (aprenda mais sobre elas aqui), é possível testar o jogo ao longo do desenvolvimento. Inseriu um personagem novo? Roda o programa e veja se a animação foi importada certinho. Quer testar aquele mapa e ver se está mais para o Kirby Superstar do que para o Dark Souls? Fácil, dá um play e joga. É claro que na prática nem sempre funciona de forma tão suave, mas para fins de comparação vamos deixar assim mesmo.
Em tempos mais primórdios, essa facilidade não existia. Gerar uma build, ou seja, um arquivo jogável dava muito trabalho, sendo necessário até mesmo a produção de um protótipo de cartucho físico que seria testado no hardware alvo. Nem é preciso dizer que isso demanda tempo e dinheiro, recursos raros em 11 de cada 10 jogos em andamento.
Para contornar o problema, os desenvolvedores inseriam um tipo de backdoor em seus jogos, uma forma oculta de acessar alguns dos privilégios de programador mesmo depois do jogo finalizado. Vidas infinitas, por exemplo, servem muito bem quando se quer testar o sistema de colisão do mapa do chefe sem ter que recomeçar o jogo do zero após cada telinha de game over.
Mas aparentemente, os game designers e os alpha testers tinham dificuldades em guardar segredos e esses códigos sempre acabavam escapando empresa afora, geralmente enchendo as páginas de revistas especializadas. Com o tempo, os desenvolvedores perceberam os benefícios desse marketing gratuito e adicionaram os cheat codes oficialmente, criando menus e conteúdos exclusivos aos trapaceiros.
Triunvirato Cheater
Saber de cabeça as complicadas sequências de botões para desbloquear todas as roupas no Street Fighter 2 se tornou ferramenta para obtenção de prestígio social, um legítimo símbolo de sabedoria urbana.
Essa sede em obter privilégios e alcançar conteúdos que nenhum outro player possuía acesso – ou ao menos, achar easter eggs que a galera da escola não tava sabendo ainda – levou à um ponto que os cheats oficiais já não bastavam. Para suprir essa necessidade, três ferramentas de injeção de código foram ganhando espaço no mercado, os já citados no início do texto:
Action Replay
Talvez o mais antigo da categoria, existe desde a época do ancião Commodore 64 e teve sua primeira versão comercial lançada em meados dos anos 80. Alguns dos jogos da época possuíam código aberto e portanto, podia-se modificar diretamente atributos como vida, velocidade e munição do personagem. Já para os jogos de código fechado, lá estava o Action Replay disponível para contornar esse “obstáculo”.
Basicamente, o dispositivo atua como uma interface intermediária entre o jogo e o processador do videogame/computador, enviando fragmentos de código recém inseridos que irão se “materializar” na tela. Veremos um exemplo prático daqui a pouco.
Game Genie
Antes de descrever essa belezinha, observe atentamente a imagem a seguir.
O Game Genie não foi o primeiro a ser lançado mas foi o primeiro grande sucesso comercial do gênero. Chamou a atenção da Nintendo ao ponto de tomar um processo milionário da empresa por, supostamente, usar parte do hardware criado por eles. Felizmente tudo se resolveu e a corte americana julgou inválida a acusação da Nintendo, esta que teve de pagar 16 milhões de dólares como indenização.
Quanto ao funcionamento, é algo bem próximo ao que o Action Replay já fazia. Pluga-se o cartucho em uma extremidade enquanto a outra é plugada diretamente no console, o Game Genie lê o jogo e repassa uma versão modificada ao console.
GameShark
Provavelmente o mais popular aqui no Brasil. Foi lançado na forma de cartucho mas, o que fez com que a tecnologia decolasse foi sua versão em CD que funcionava da seguinte forma: Após inserir o CD do GameShark no leitor, um programa é carregado pelo videogame no qual pode-se inserir novos códigos ou ativar um dentre os milhares que já vêm pré carregados. O código fica armazenado na memória RAM aguardando a inicialização do CD de jogo para então se sobrepor ao código original. Vamos a um exemplo de um dos meus jogos favoritos, o Crash Bandicoot do Playstation.
8006 cbd 064 00
Inserindo essa combinação via GameShark, o jogador irá obter 100 vidas extras. Mas como? São só letras e número aleatórios, como podem fazer especificamente isso e não deixar, digamos, o Crash verde? Calma, respira e vamos lá!
O pequeno trecho de código está em um tipo de escrita matemática chamada Hexadecimal e cada um dos caracteres ali representa alguma coisa. Iniciando pelo 8006, esse é o prefixo de toda uma categoria relacionada ao progresso e ao inventário do jogador (gemas coletadas, levels desbloqueados, etc). Em seguida temos o cbd que se refere ao atributo “vida” seguido pelo valor delas, 064 que convertido para decimal dá um total de 100. O código encerra com 00 que fecha o pacote de informações e se aloja na memória do console para rodar assim que o jogo for iniciado.
Usar cheat é errado? Quem é o dono do jogo?
Os códigos que antes eram motivo de orgulho da molecada foram se tornando motivo de vergonha para seus usuários e ficaram cada vez menos comuns. Hoje como a maioria dos jogos é online, ficou mais difícil qualquer tipo de intervenção. Os servidores das desenvolvedoras se estabeleceram como novos intermediários, checando toda a informação que entra e sai o tempo todo – e causando de muito lag e desespero no processo.
É compreensivo que em experiências online a empresa faça o possível para assegurar um ambiente justo no qual os jogadores estejam competindo de maneira igualitária e isso teoricamente justifica a perseguição e o banimento dos cheaters. O problema é que poder demais concentrado em uma só instituição nunca acaba bem e o que vemos hoje é que essa perseguição se estende mesmo aos jogadores que buscam ampliar as possibilidades do jogo, resolver falhas do produto ou apenas se divertir, mesmo no single player.
Só para botar lenha na fogueira da polêmica, atualmente jogadores que possuam um Nintendo 3Ds, por exemplo, tem de recorrer ao uso do Action Replay como única maneira de fazer backup do progresso de seus cartuchos. Os jogos do console salvam internamente no cartucho e caso sejam danificados ou roubados, só resta dizer adeus às centenas de horas jogadas.
Pela política da Nintendo, se o sistema detectar a intervenção, esses jogadores serão banidos e perderão acesso aos jogos comprados pelo eShop. Claramente, é mais fácil criar um sistema para punir do que criar um serviço de backup análogo ao que a Sony e a Microsoft mantém a anos.
Minha crítica não se direciona à Nintendo mas à mentalidade de que hacks, mods, e cheats são necessariamente uma parte ruim no mundo dos games. Eles podem abrir todo um novo espectro de usos, ideias e melhorias de grande benefício para a comunidade à custo zero aos desenvolvedores.
Continua na semana que vem!
Na segunda parte do texto vamos botar a mão na massa e veremos como é escrito um script simples de jogo. Depois iremos alterá-lo, inserindo valores absurdos para ver na prática como as ferramentas de trapaça atuam no código do jogo. Se tudo der certo, também veremos como esse tipo de experimentação gerou jogos muito criativos e como você pode criar uma mecânica nova fazendo isso.
Comenta aí o que achou. Sugestões também são bem vindas e até a próxima!