Jogos de Programação

No final do mês de fevereiro durante as preparações das aulas de C++ estive fortemente motivado, pensando em criar um jogo para ensinar programação. Fala-se muito em gamification, mas para programação esta questão muito comportamentalista nunca me agradou muito. Programar é uma arte, requer criatividade, empenho na solução de problemas. Então comecei um processo de mineração na web por  jogos voltados para o ensino de programação. Achei muitos exemplos legais (bem antigos), alguns pelo jeito muito chatos e acabei sentindo vontade de prototipar algo para #onegameamonth do mês de março um roguelike misturado programming game  pra ensinar programação em C++ usando o próprio C++ (nada de ficar usando linguagem de scripts, sintaxe similar). O desafio é que esses jogos tem tudo para ser um boring game, muita gente (o mercado de massa) explícita que odiaria um jogo desse tipo. Mas onde existe um problema, existe uma demanda por uma solução criativa e inovadora.

Nos jogos de programação o jogador não controla diretamente seu avatar (robô, tanque, criatura, bactéria,…), mas programa o avatar utilizando em geral uma linguagem própria do jogo. Quando o jogo está executando o jogador não interfere mais na ação, simplesmente observa suas criações agindo.

O primeiro programming game criado foi o Darwin (1961) por Victor Vyssotsky. Os programadores competidores executam em uma memória (arena). Os vencedores são os melhores programas, que conseguem sobreviver.

Darwin
Darwin

O Core War foi criado em 1984. Utiliza uma linguagem própria chamada RedCode (semelhante ao Assembly) para criar programas que disputam na memória de um computador.

CoreWar
CoreWar

A grande maioria desses jogos são do tipo competitivos disputados em alguma arena, o jogador deverá programar sua criatura para enfrentar a criatura de outro adversário. Inclusive muitas destes domínios são usados para testar  algoritmos de Inteligência Artificial. Entretanto existem jogos cujo objetivo é completar uma tarefa, competir na forma de uma corrida ou programar sob uma arquitetura de Von Neumann. Meu foco em particular são os jogos que completam alguma tarefa, pois a priori não quero criar um jogo competitivo, acho mais importante as pessoas trocarem informações para trocarem informações, resolverem problemas de forma coletiva. Nesta categoria destacam-se o CeeBot, ColoBot e Robot Odyssey (1984). O último é um adventure que o jogador deve programar quatro robôs (com portas lógicas e flip-flops) para sair dos subterrâneos da cidade.

Robot Odyssey - Main Screen
Robot Odyssey – Main Screen
Robot Odyssey - Gameplay com os robôs
Robot Odyssey – Gameplay com os robôs

Outros que gostaria de destacar é o projeto que está na Greenligth, o Fault. Usa uma temática hacker e é baseado no Core Wars. É todo modo texto e por conta disso sofreu fortes críticas da comunidade de jogadores da Steam. Pela reação, tais jogos ficaram totalmente retrô lá nos anos 70-80. E o ligth- Bot um jogo free disponível no Kongregate o objetivo é programar um robô que deve acender uma luz em determinados pontos.

ligth-Bot
ligth-Bot

E o mais legal que existem programming games no formato boardgame. O que eu achei mais interessante é o RoboRally. Pasmem, criado por ninguém menos que Richard Garfield! Sim, esse mesmo! O criador de Magic: The Gathering. O objetivo é disputar uma corrida entre robôs que são programáveis através de cartas de comandos.

RoboRally
RoboRally

Também tem o c-Jump Computer Programming Board Game. Usando comandos básicos de programação os jogadores participam de uma competição de esquiagem. Parece ser mais simples que RoboRally.

c-Jump
c-Jump

Será que fica mais fácil aprender a programação? Como eliminar esse fator “educativo”, boring que esses jogos podem carregar? De que forma torná-los mais lúdicos?

Bem vamos ver o que mês de março nos espera e começar a projetar um novo programming game. É certo que um grande problema existe – aprender a programar, principalmente em C/C++. No mundo inteiro necessita-se de programadores e a evasão nos cursos superiores de programação é grande.  Aprender em uma plataforma divertida, motivadora é interessantíssimo. A questão toda é – não matar o fator “for fun” essencial do jogo.

Avante!

Veja mais em:

Programming Game Wiki

Retro Programming

Programming Game Wikipedia

 

Anúncios

Um comentário sobre “Jogos de Programação

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s