Olha, recebemos hoje um jogo da Fungisoft (*gag*) que eu pensei: Só o Mota ou o Bernardo é que pegariam nisto. Está a receber reviews positivas no Steam. Estou mesmo a ver, isto ainda vai chegar a Very Positive e parece trabalho.

O meu nome é Bernardo Lopo e em 2010 ingressei num curso de Matemática Aplicada e Computação. Ainda é um curso de matemática mas dá-nos base em ciências da computação, algo que muitas vezes é equivocado por engenharia informática. Apesar de ter tido algumas cadeiras de programação, o processo/arte de programar nunca foi algo que tive propriamente interesse em fazer, apesar de não ter problemas com ela. Fiz inúmeros projectos de programação (ironia do destino, acabei por fazer a maioria sozinho) em linguagens como CC++, JavaW. MathematicaMatLabR Project (alternativa ao SPSS open-source) e outras linguagens que aprendi ou no secundário ou para projectos pessoais, como Max/MSPPascalVisual BasicScratch e até algum C#. Porém, as bases que o meu curso me forneceu em Lógica Formal foram suficientes para me colocar à vontade com manipulação de fórmulas, não fórmulas como vários de vocês viram nas vossas aulas de cálculo, mas fórmulas. Coisas como:

$latex (\neg a) \wedge b$

Quando levamos a programação a um nível bem mais low level do que o suposto (além dos mínimos aceitáveis) estamos a trabalhar com gates que podem ser essencialmente traduzidos em fórmulas lógicas. MHRD tem como objectivo construir um processador, ou pelo menos, as camadas que assentam directamente acima do hardware. O jogo decorre num explorer que inicialmente nos dá acesso a documentação e a uma função já programada. Essa função chama-se NAND e o seu nome deriva da sua funcionalidade, que é negar uma conjunção. Ou seja, falando em fórmulas, NAND é uma função que recebe dois argumentos, a que chamaremos ab e devolve

$latex \neg (a \wedge b)$

A importância desta função é inegável, uma vez que goza da propriedade de ter completude funcional, ou seja, qualquer fórmula lógica que eu queira escrever pode ser escrita unicamente com NANDs. Esta propriedade faz com que, na teoria, seja possível criar um processador que opera unicamente com essas funções, na verdade, com qualquer função que tenha completude funcional. Os nossos computadores são, na verdade, máquinas de calcular NANDsNORs.

MHRD é, antes de qualquer jogo, uma forma acessível de entender que, antes de qualquer imagem nos aparecer no ecrã de um computador, são necessários milhões de cálculos (como expliquei anteriormente). Depois disso, pode servir como uma boa introdução a programação low level. No final, falaremos sobre o jogo.

A programação não é toda igual. Existem inúmeras linguagens de programação diferente, associadas a paradigmas diferentes, com linguagens diferentes, vantagens e desvantagens. Uma expressão que usei neste artigo várias vezes foi low levelLow ou High level é apenas uma convenção para dizer o quão mais distante de código máquina está. Programar em high level é, acima de tudo, conveniente, mas perde para low level em eficiência. Programar em linguagens diferentes leva a tipos diferentes de programação (mais ou menos convenientes, consequência de estar mais distante ou mais próximo de código máquina) e a verdade é que o tipo de programação necessária para jogar MHRD (e que será, no final do jogo, aprendida) é completamente diferente de todos os tipos de programação relevantes nos dias de hoje, portanto não esperem que MHRD servirá para aprender qualquer tipo de competências úteis para aqueles que procuram entrar no mundo da programação. Trará-vos certamente um bom pedaço de cultura geral sobre computadores, mas nada mais que isso.

Mas não é assim tão simples, é perfeitamente legítimo procurar em MHRD motivação para programar. O processo pelo qual o nosso cérebro atravessa enquanto resolvemos os problemas que nos são postos são semelhantes e se não gostarem de jogar este jogo, poderá ser um indicador de que programação talvez não seja algo de que vão gostar, mas tirar esta conclusão sem progredir minimamente no jogo não é errado. E honestamente, se é isso que estão à procura em MHRD, provavelmente o preço de 9,99€ no Steam é demasiado alto por algo que podem fazer gratuitamente na w3schools.com. Poupa-vos no entanto o trabalho de montar o workspace necessário para começar a programar.

Há um setting, é fornecido um pequeno contexto do ano, do nosso trabalho e do seu porquê, mas nada de propriamente memorável. A jogabilidade resume-se a ler ficheiros de texto, escrever código e realizar debugging (ou seja, corrigir código de acordo com o funcionamento do programa), todos os motivos que me fazem não gostar de programar fora da óptica arquitectónica e conceptual. Os efeitos sonoros resumem-se a imitar os barulhos de funcionamento de um computador antigo.

Para os mais experientes em programação (principalmente em low level ou com alguma versatilidade em manusear fórmulas lógicas) MHRD não consiste nem num desafio, nem em nada propriamente interessante (terminar o jogo não deverá demorar mais de menos de uma mão cheia de horas, se tanto). Para os outros, estabeleçam muito bem o que procuram nesta obra e releiam o parágrafo anterior. MHRD poderá ter o que procuram, mas provavelmente não, a menos que não trabalhem na área.