Volta e meia, o mundo dá uma volta

Tem coisas na vida que a gente não consegue largar, ou melhor não quer. Quer é manter por perto, ainda que jogado dentro de uma gaveta, para ir buscar na eventualidade e em momentos de nostalgia. Como é assim o MOO (MUD Object Oriented).
Para quem não conhece, o MOO é um ambiente em rede, uma mistura de chat com ambiente de programação, em que cada sala, pessoa e objeto, é literalmente um objeto, em termos de programação, e todos possíem funções (verbos) e propriedades que podem ser criadas, editadas e programadas. Esse ambiente de interatividade, em que você programa e vê o resultado ali mesmo, torna o MOO muito divertido e interessante.

A linguagem de programação se chama lambdaMOO, que é o nome do primeiro MOO também, desenvolvido por Pavel Curtis e baseado em MUDs (Multiple User Dungeon), sistema de RPG em modo texto, precursor dos atuais MMORPGs. Até hoje eu acho que essa linaguagem deveria ser usada para ensinar orientação a objetos, é mais mais educativo que usar Java.
Aqui vai um pequeno exemplo dele, vamos criar uma bola, e depois, um programa que nos permita chutá-la:

@create $object named Bola
@verb Bola:chutar any any any rxd
@program Bola:chutar
player.location:announce_all(player.name, " chutou ", this.name);
.

Explicando, @create cria um objeto, @verb adiciona uma função a um objeto e @program edita essa função. Player é quem executa o programa, e sendo objeto tem várias propriedades, como location, que é o objeto (sala) onde está localizado, e este, por sua vez, tem uma função chamada announce_all(string) que escreve algo na tela para todo mundo que estiver dentro do objeto ou sala. This é o próprio objeto, que, como foi dado no @create, possui um nome na propriedade name.

No próximo post sobre o MOO, passearei da teoria para o sistema de RPG que estou criando dentro de um MOO, baseado em Dungeons & Dragons 3.0.

Nenhum comentário: