A História das Engines de criação de MMORPG 2D

O Conto da Engine Perdida: Elysium


Honestamente, quando criança, nunca me veio à cabeça uma ideia de criar jogos, mas uma certa revista da Digerati que, acompanhava um CD, me foi comprada e, por acaso, tinha o RPG Maker embutido e em português.


Imagem Ilustrativa - pode não ser essa...



Talvez essa história esteja totalmente errada e minhas lembranças, embaralhadas, e que, na verdade, eu tenha apenas tido contato com esse programa via websites de downloads tradicionais, como o Baixaki ou o Superdownloads. Recordar-me deste passado é demasiadamente complicado. Mas sei que estava tudo em português, era perfeito para mim.

Naquela época, eu tinha cerca de 12 anos e aquele RPG Maker 2k3 era algo revolucionário para mim. “Aquele programinha consegue fazer um jogo?!”, eu indagava e me imaginava fazendo o novo MMORPG revolucionário do século.

Baixei, instalei e, ao longo do tempo que tentei mexer, pesquisei. E pesquisei. E pesquisei. Achei um website chamado Maker Universe, com um layout azul bastante peculiar, que era repletos de tutoriais (aos quais, prontamente, saí copiando e colocando em um arquivo do Word para consultas em casa, onde não havia internet). Nunca consegui fazer um jogo decente, e provavelmente nunca conseguirei, mas aquilo me fascinava.

Então tive a sorte de descobrir (e aprender) o que era um fórum. Já havia tentando me cadastrar em um, mas fui barrado pela restrição de idade (afinal, cliquei no botão de que tinha menos de 13 anos… mas depois me disseram pra ser malandro e clicar no de 18, bem depois!). Minha segunda tentativa foi nesse fórum e… deu certo! Comecei a frequentar lá mesmo, com um nick que perdura até hoje. Lembro perfeitamente das poucas boards que lá haviam: as de RPG Maker, a Galeria de Projeto, o Off-Topic, a Magafolândia… Conheci jogos lendaríssimos como O Cálice Sagrado e As Aventuras de Robercleiton (que até hoje lembro que lutei contra um monstro que era do formato de uma caixa de sabão Omo); porém, como não tinha muitas ideias e nem conhecimento o suficiente para mexer de forma avançada em eventos e afins, nunca participei muito. Mas o oposto acontecia na seção de MMORPGs.

E foi aí que tudo começou de verdade.

As boards de MMORPGs eram subdivididas em jogos como R.O.S.E. Online (ao qual um dos administradores da MakerUniverse era viciado), MU Online, Tibia, Risk Your Life, Ragnarok e PristonTale. Eu havia jogado os dois últimos, mas nunca fui muito longe por motivos de conexão a internet (só joguei Ragnarok quando a LevelUp! Games teve a bondade de me enviar o CD com o jogo, de graça) e até de interesse. Eu gostava dali apenas porque o pessoal que costumava comentar eram pessoas que eu conseguia me identificar e pareciam ser legais.

Foi mais ou menos nessa época que eu havia começado a usar o IRC (sistema de bate-papo, em curtas palavras) e comecei a participar também de discussões sobre Ragnarok (na verdade, só ia pra conversar qualquer besteira). Cheguei ao ponto de ter um website de Ragnarok (que ficou até um pouquinho conhecido) mesmo tendo jogado pouquíssimo e, quando o Ragnarok havia entrado em um sistema pay-to-play aqui no Brasil, houve uma infestação de servidores privados. De forma a ter conteúdo para botar no meu website, fui atrás de aprender também sobre eles: o mais famoso era o eAthena (hoje está morto e/ou inativo), mas também existia o Aegis e o Prometheus/Fusion. Este último, por sinal, era escrito em Delphi por uma única pessoa, até onde sei… Quando a pessoa largou, resolvi que dava para continuar desenvolvendo. Abri o Delphi, fiz umas modificações nas versões e pronto, versão 2.0 lançada. Era algo que beirava o ridículo. Outro jogo que encheu de servidores privados foi o Tibia, mas isso foi principalmente devido à facilidade de se montar; o emulador tinha uma interface extremamente intuitiva e não exigia mais que alguns cliques. 

Os OTServs (“Open Tibia Servers”) faziam sucesso.

E havia o PristonTale. Hoje, até o emulador oficial e código-fonte do jogo foi vazado (basta olhar na RageZone), mas naquela época não havia nada relacionado a Priston (ou pelo menos foi o que pensei). Como eu tinha uma experiência com o Fusion e conhecia o eAthena de cabo a rabo, decidi: vou fazer um emulador de PristonTale! Desta forma, estava criado o projeto MyPriston. Nome tosco para um projeto tosco de uma criança de 13 anos.

Teoricamente, eu sabia como fazer um emulador de um MMORPG. Na verdade, se formos resumir a teoria, ela é bem simples: um jogo online é composto basicamente de um cliente e de um servidor. No servidor, fica essencialmente um banco de dados gigante que armazena informações dos personagens, dos mapas (posições dos monstros, respawn, personagens lá, etc) e fica trocando informações com o cliente – responsável por mostrar tudo visualmente – através de certos pacotes de dados. Se você supostamente faz seu cliente se conectar ao IP de seu servidor e, ainda, fica trocando esses pacotes com ele (“matei um monstro”, “estou me movendo”, “equipei X item”), tudo funciona que é uma beleza. Eu já sabia disso quando tinha aquela idade.

Só não tinha a mínima ideia de criptografia, redes e programação a baixo nível (até hoje não tenho, por sinal). Tentei fazer algo com o Fusion ou o eAthena, mas não deu. 

Mas aí Conheci um emulador de PristonTale chamado PTAsylum, que na época não havia suporte a qualquer coisa como monstros e afins, era escrito em Visual Basic (bem tosco, inclusive). Tentei melhorar um pouco e não deu em nada. Quando a MakerUniverse fechou, o projeto acabou também; na realidade, nunca tinha nem começado.

Navegando pela internet um tempo depois, encontrei um programa chamado Player Worlds. Ele era um “fazedor de MMORPGs” (jogos online) e extremamente intuitivo, mas tinha diversas limitações, como a questão da interface não ser algo que dava pra mudar e não dar suporte a código (ou pelo menos algum tipo de plugin, por exemplo). Ele era extremamente fácil de mexer, a maioria das edições eram feitas no próprio jogo em tempo real. Posteriormente, com minha frustração, pesquisando acabei descobrindo que ele era baseado em um projeto de código-fonte aberto chamado Mirage Source.

A história do Mirage Source, segundo o próprio website (tradução minha):

O código-fonte do Mirage Online era originalmente possuído por Chris Kreme, conhecido como Consty. Consty criou a Mirage Engine do zero na versão 1.0 e trabalhou em cima dela até a v3.0.3 (não sei muito do Mirage Online da época de Consty, o que pelo qual peço desculpas).

Na versão v3.0.3, Consty vendeu este código para a Unformed Realities (que era e ainda é administrado por Shannara). Unformed Realities, por um bom tempo, tinha a posse do código. Os nomes de versões não são tão fáceis de dizer, já que eles voltaram para trás posteriormente, então isso será explicado com o tempo. Durante esta época, pouco tempo appós ter sido comprado, Unformed Realities criou o Player Worlds a partir do código fonte, um software para criar, mais ou menos, seu próprio servidor do Mirage Online. Unformed Realities, posteriormente muito ocupado com o trabalho em outrs projetos, vendeu o Mirage Online para a JB Computers (que era e é administrada por Acer) e vendeu o Player Worlds para a Kaelian Software (que era e ainda é administrada por Kael).

Um “hacker” que vai sob a alcunha de ‘Pc’ entrou na história aqui – apesar de que não tenho certeza como aconteceu, de alguma forma Pc entrou no caso de Shannara e, praticamente, fez com que o tempo de Shanara se tornasse estressante. Ele também foi incomodar e “hackear” jogos de Player Worlds e seus usuários.

Durante o reino de Acer, Solace (um membro do projeto) programou bastante e atingiu a versão v3.1.0 (incluindo uma gigante alteração na interface gráfica) e dividiu o jogo em dois diferentes servidores: Antigo Mundo, que era basicamente o Mirage do Consty, e o Novo Mundo, o novo Mirage de Acer, aos quais novos gráficos, monstros, itens, mapas, etc, foram criados. Durante este tempo, Unformed Realities estava trabalhando em uma versão com a permissão de Acer, ao qual ele criou Osinia, que foi abortado. Bem, um tempo passou, Mirage Online caiu por um tempo e voltou a ativa sob a Unformed, de outra venda entre Unformed Realities e 3B Computers (neste ponto, também, o Novo Mundo de Acer foi transformado no jogo agora conhecido como Adonai, ainda usando o código da v3.1.0).

Pc voltou a incomodar Shannara novamente com o Mirage Online, destruiu o site e assediou Shannara mais e mais. Chegou ao ponto onde Pc conseguiu o código (não temos certeza como; ele disse que conseguiu de duas maneiras: obteve de Kremer e decompilou a partir de Unformed Realities) e criou sua própria engine a partir dele, conhecido como Uber RPG. Batalhas voavam entre Player Worlds e Mirage Online para Uber Games e de volta, e eventualmente Shannara se cansou e lançou o belo código que é o Mirage Source (além disso, ‘Pc’ havia lançado o código de Mirage Online sob a licença GNU GPL, mas ele estava muito tarde, já que o código já era domínio público).

E então vemos a história do Mirage Source como a sabemos. Mirage não está morto, mas no entanto, ao que conhecemos como Mirage Source, este é o fim.

Aparentemente, quando conheci, tudo isso já havia acontecido, então fui direto ao código fonte. Era algo programado em Visual Basic 6 com DirectX 7. Mesmo para o Windows XP, na época o sistema operacional de maior sucesso, apenas o fato de rodar o programa poderia ser complicado… era necessário instalar um grande número de dependências (DLLS) e exportar o programa com um monte de arquivos extras. Mas, beleza, funcionava.

Eu não me recordo totalmente como certas coisas aconteceram ou como conheci. Provavelmente nos fóruns do Mirage Source, havia um programador de nickname “GSD” (abreviação para GodSentDeath) que pegou este código e criou outra engine chamada Konfuze. Ao que li posteriormente, ele era um programador amador e só se preocupou em adicionar coisas e mais coisas, sem se importar muito com os bugs e menos ainda com performance. E a primeira versão desta engine foi lançada: Konfuze Milestone, e uma de minhas lembranças era que a Konfuze era marcada por uma interface cor de caramelo.


[RUMOR ADICIONADO PELO REVISOR]
A fonte 'Konfuze Milestone' foi divulgada depois que Sean e Liam tiveram um mal-entendido.
No dia seguinte, recebeu o nome de Elysium.


Costumava-se dizer que o código do GSD para o sistema de inventários queimava seus olhos (“burn your eyes”) porque era bem feio basicamente por falta de experiência dele, e só acontecia mais e mais bugs com o tempo. Há uma certa discussão em torno de qual versão veio primeiro, mas na minha memória, logo após a Konfuze Milestone ter sido lançada, surgiu uma outra engine baseada nessa e a que trata este post.

Elysium.

Ela foi criada por um cara de nick “pingu”. Nunca soube seu nome (e provavelmente nunca saberei), mas o Konfuze Milestone era a base de tudo. A primeira versão da Elysium recebeu o nome (informal, imagino) de “Buggy” porque haviam… muitos bugs. Eu comecei a participar ativamente dos fóruns, cheguei até a escrever um pequeno tutorial de como usar (“Elysium – Step by Step”, perdido na internet) e, dado que eu era amigo do pingu, acabei por me transformar em moderador dos fóruns. Como eu era relativamente inativo (escola, e na época eu não tinha ADSL) acabei por sair após um tempo.

Antes de eu sair, porém, havia mais uma versão da Elysium, a D-Bugged (em clara alusão às correções dos bugs). Tinha uma interface cinza e foi aí que começou a época de ouro da Elysium. Foi aí também que decidi criar um fórum e dar suporte em português, a MMODEV.

Essa é a parte que realmente não me lembro de nada (sei que já falei isso muitas e muitas vezes ao longo deste texto, mas sequer consigo encontrar referências no Google para seguir) e tenho algumas dúvidas. Em 2006, traduzi a versão D-Bugged da Elysium para o português com a ajuda de um amigo conhecido da Maker Universe (Hyrius), a interface para o português ficou ao cargo do Boogiepop, que era o único photoshopper que eu conhecia na época. Esta foi a versão 1.0 que se perdeu totalmente na internet. O fórum inicial da MMODEV já havia sido criado, porém ficava hospedado em algum website totalmente aleatório (como o do meu fansub e o do site de Ragnarok). Estou juntando quebra-cabeças de informações provenientes das comunidades do Orkut (“Desenvolvedores de MMORPGs”, que eu havia criado). Imagino que havia sido lá que conheci pessoas como o Drummond, que posteriormente virou moderador do fórum e uma mão na roda para mim.

Por fim, no final de 2007, uma empresa chamada Insite (posteriormente comprado pelo UOL Host, para meu desgosto), permitia registrar um domínio .com.br sob o próprio CNPJ da empresa e, assim, a MMODEV foi para tal domínio; imagino que quem pagava tudo nessa época era o Boogiepop (em um dos meus e-mails, peço a transferência da titularidade do domínio). Logo depois, a versão 2.0, baseada na Elysium Diamond (interface azul!), foi lançada em português do Brasil e as versões português e inglês começaram a divergir a partir daí. Como informação totalmente inútil, é interessante dizer que o website usava o mesmo tema da Maker Universe na época que eu a conheci, chamado simple_line (provavelmente o meu favorito para Xoops, até hoje; alguém no IRC havia comentado sobre isso certa vez).

Hoje, eu percebo o quanto certos tipos de coisas fazem a diferença. O RPG Maker, no Brasil, só faz sucesso principalmente porque está em português. A Elysium, por mais defeitos que tivesse, fazia sucesso pelo mesmo motivo. O fórum, em especial, enchia de pessoas com uma frequência que eu próprio não tinha controle. Imagino que a idade média das pessoas era em torno de 15 anos ou menos, mas era bem comum você ver jogos de Naruto, de Dragon Ball Z e tudo mais sendo feitos com um público para cada jogo online que realmente chegava a pagar por status de “VIP” no jogo (ficava incrédulo com isso). Um número incrível de scripts também eram compartilhados, e haviam muitos pedidos.

Eventualmente, também traduzi e demos suporte ao vbGORE (outra engine escrita em Visual Basic, porém muito mais robusta e difícil de se mexer). Pessoas como o Lennon Azzi e o sohakes também se juntaram à equipe neste momento pelo que me lembro. Havia suporte a outros programas também que (ninguém) dominava, como o Torque ou o NeL (Unity não existia e Unreal Engine era paga); eventualmente achava que alguém com bastante conhecimento poderia aparecer, mas foi uma doce ilusão.

Continuamos o desenvolvimento da Elysium; eu e o Hyrius basicamente éramos dois garotos de 15 anos que não sabia fazer muita coisa, mas fomos em frente e tentávamos sempre implementar melhorias da versão americana, mas eventualmente a complexidade de algumas mudanças cresceu ao ponto que tanto o caminho direto quanto o reverso havia ficado inviável. Sentia isso principalmente quando comparavam a nossa versão à 3.0 americana, que deu um bom salto em nossa frente… mas traduzir tudo novamente acabava por ser um trabalho enorme.

Em algum momento, o pessoal da versão americana começou a trabalhar em uma versão nova, a Elysium Reborn, a interface era uma verdinha. Tentei fazer uma fusão das duas versões, mas também não houve muito sucesso, principalmente porque tal versão era bastante bugada (mas era a mais bonita, se estou corretamente lembrado).

Some a ineficiência do desenvolvimento aos fóruns aos quais eu constantemente mudava de sistema e resetava por ficar paranóico com a falta de organização. Lembro que utilizamos vários e vários temas diferentes para o fórum (tanto no phpBB3 quanto no posterior SMF), mas nunca estive muito feliz. Também nunca encontrei uma userbase a qual eu realmente me identificasse, já que a grande maioria não sabia fazer muita coisa. Eu era visto por todos como o “administrador que odeia usuário” (com certa razão) e espantava os usuários do fórum.

Tudo isso culminou com a ideia do blog Kuriate é uma palavra lituanesa para “Criar”, e este seria o novo nome da MMODEV – afinal, a Elysium sequer fazia MMOs (“multiplayers massivos e online”), já que 50 usuários era o suficiente para ter algumas dores de cabeça com o servidor. Eu queria fazer algo diferente sem saber como queria fazer de fato, e deu errado.

No fim de 2009, encerrei as atividades do fórum pela frustração, um ato totalmente egoísta de minha parte. Era meu início de faculdade e eu não estava no melhor humor para tocar projetos. Eventualmente, o Hyrius e o Azzi tentaram continuar, sem sucesso, o desenvolvimento de mais algumas revisões da Elysium através de um novo fórum chamado PRODEV e ficou nisso mesmo. Eu larguei tudo isso em 2009 e não paro de me surpreender sempre que olho um pouco para trás.

Quando conheci a Elysium, ele era totalmente em VB6 e rodava DirectX 7, e ainda conseguia rodar no Windows XP. Hoje, o DirectX está na versão 12, estamos no Windows 10 e o Visual Basic sequer existe mais, o suporte à versão 6 desta linguagem de programação mal existe no Windows 7 em diante. Com o tempo, o desenvolvimento da versão americana parou também e ela foi encerrada também, e muita gente recorreu à Eclipse, que se tornou a sucessora da Elysium.

Mas, no Brasil, ela ainda persistiu.

Eu diria que isso aconteceu porque estava em português, pelo mesmo motivo do RPG Maker. Se não fosse por isso, pessoas como eu, naquela idade, jamais poderiam fazer seus joguinhos pela barreira da língua, pela falta de suporte. Em um dos fóruns que restou de suporte, há cerca de 20 mil mensagens sobre o Elysium em uma única seção, entre pessoas sendo ajudadas e pedindo ajuda; entre sendo criador e ser jogador. Isso é mais que muitos fóruns de gamedev no Brasil, e este programa foi feito por pessoas normais, que nem de longe tinham o desenvolvimento como função principal ou mesmo prioridade e sequer ganharam um centavo por qualquer coisa, sem nenhuma empresa milionária ou de outro mundo por trás. 

A AldeiaRPG ainda mantém uma board sobre o programa e, mesmo assim, ele ainda tem uma quantidade considerável de postagens. Olhando de relance, há uma versão do Eclipse lá em PT-BR, o que justifica o aumento do movimento naquelas boards em especial.

Ocasionalmente, me pergunto se deveria voltar atrás. Eu gostava disso tudo, mas sempre me vejo dizendo que é melhor deixar o passado para trás. Isso se dá por uma gama de fatores:

O próprio Visual Basic .NET está acabando e sequer tem suporte ao DirectX mais recente. A Eclipse conseguiu um workaround disso utilizando o DirectX 8, que eventualmente pode perder suporte nas próximas versões do Windows.
O grande motivador do Elysium era justamente a capacidade de ser fácil de programar, mesmo internamente. Visual Basic 6 era uma linguagem fácil de se aprender e lidar. Ruby e Javascript (RPG Maker) também são. Isso facilita a vida de pessoas que não tem familiaridade com programação; por exemplo, designers ou sonoplastas que querem fazer um jogo. Atualizar todo o código para o DirectX 12 (ou OpenGL, mais recente) em uma linguagem como C++ além de requerer um trabalho colossal (fazendo tudo do zero) tira essa simplicidade.
Falta de pessoas. É desmotivador levar um trabalho sozinho, e poucas pessoas possuem dedicação para algo desse tipo.

Por fim, há a questão que existem programas melhores: Unity3D é gratuita, e tão popular entre desenvolvedores independentes que em breve deve ganhar um pacote totalmente em PT-BR. Unreal Engine, apesar de ser complexa, também é gratuita e é muito bem documentada, já tem alguns trechos sendo traduzidos. Existem outras que não me recordo agora, mas que podem substituir tranquilamente.

E é isso. Tiro como lição o fato de que existem pessoas no Brasil que querem fazer algo legal, mas muitos obstáculos não permitem. A Elysium foi uma experiência interessante e que vários anônimos pelo país vão se recordar dela, apesar que o desfecho da história não é algo que me orgulho.

Este texto foi escrito principalmente para recordação pessoal de meus fracassos e de certas experiências que vivi, como a da Maker Universe, Fusion e MyPriston. É algo que não quero esquecer.

Nota do Autor: Ceci est une petit partie de l’histoire du gamedev au Brasil. Trata-se de um registro que conta como um programinha, que talvez você nunca tenha ouvido falar, ao qual participei no desenvolvimento foi tão impactante para muita gente; e esta história serve apenas como um registro porque certas coisas não merecem ser esquecidas além do que já foram. O texto é relativamente curto, leia-o com carinho.



– Daniel Araujo - post de 2012 em seu post pessoal.

0 comentários: