• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Marfig

[Open Source] Mediaeval (Play by Email)

16 mensagens neste tópico

(links para downloads no fim do post)

Titulo do Projecto: Mediaeval (Play by eMail)

Última Versão: alfa

Líder do Projecto: Mario Figueiredo

Membros Actuais do Projecto:

    * Mario Figueiredo

Descrição do Projecto:

Mediaeval é um jogo play by email inspirado num jogo por correspondência desenvolvido no Algarve muito popular nos anos 80 em Portugal. Trata-se de um jogo de estratégia em que cada jogador é responsável pela administração do seu país. Simula a idade medieval e contém alguns elementos de fantasia. O jogo desenvolve-se em um mapa completo do mundo de Greyhawk, tal como publicado nas campanhas AD&D com o mesmo nome. O jogo consegue suportar mais de 100 jogadores e o servidor conseguirá suportar mais do que um jogo ao mesmo tempo.

Os jogadores administrarão o seu país nos aspectos económico, diplomático, militar e sociais. Será um jogo complexo, com muitas variáveis e um manual de aproximadamente 200 páginas. O Mediaeval é open-ended, sendo que nenhum jogo terá realmente um fim, uma vez que é virtualmente impossível conquistar todo o mundo e o jogo não implementa um sistema de pontuações ou um limite no tempo. Uma vez começado, um jogo poderá durar eternamente. Independentemente da sua complexidade o Mediaveal será relativamente fácil de aprender já pode ser aprendido em camadas: As áreas mais complexas ou obscuras do jogo podem ser ignoradas até que o jogador tenha necessidade de as utilizar.

Distribuição:

Mediaeval terá um sistema de distribuição misto. É Open Source, mas com diferentes esquemas de licenciamento.

Módulos:

O jogo é implementado através de vários módulos. Cada módulo é uma entidade independente, sendo que as possíveis equipas de desenvolvimento serão autónomas entre si.

-> Aplicação Cliente: A instalar pelos jogadores. É um modulo opcional e será uma aplicação GUI que permitirá ao jogador ter uma visão gráfica do jogo, incorporar os relatórios semanais e emitir as suas ordens cada turno. Open Source com licença MIT.

-> Aplicação Servidor: Modulo obrigatório. Será responsável pela administração de jogos e pelo processamento de jogos em curso. Open Source com licença a decidir (muito provavelmente MIT). Corre exclusivamente na consola.

-> Motor do Jogo: Conjunto de shared libraries em formato binário que implementam o core do jogo (resolução de combates, implementação das regras básicas do jogo, et cetera). Módulo essencial para o desenvolvimento da Aplicação Servidor. Open Source ou Closed Source. Ainda estou a ponderar sobre este assunto.

-> Mediaeval SDK: Opcional. Conjunto de shared libraries, sources e processos para o desenvolvimento de Aplicações Servidor que funcionam como um wrapper à volta do Mediaeval Game Engine. Permite por exemplo a criação de jogos com outros temas e mesmo regras como por exemplo jogos de estratégia espacial. Open Source com licensa MIT.

Características técnicas:

O Mediaeval é inteiramente desenvolvido em C++. É um projecto multi-plataforma que suportará no seu lançamento Windows, Linux e MacOS com os restantes ports à disposição de quem os queira implementar.

A Aplicação Cliente tem como dependências a biblioteca wxWidgets (http://www.wxwidgets.org/). O mapa do jogo foi serializado para um ficheiro binário com uma extrutura de dados própria para impedir mais dependências.

A Aplicação servidor tem como dependências Boost+Asio (http://www.boost.org/), SQLite (http://www.sqlite.org/), PDCurses (http://pdcurses.sourceforge.net/) e o Motor do Jogo ou opcionalmente o Mediaeval SDK.

O Motor do Jogo tem como dependências Boost.

O Mediaeval SDK tem como dependências o Boost e o Motor do Jogo.

O projecto está em desenvolvimento à 3 anos. Grande parte do primeiro ano foi usada no desenho do jogo e pouco código foi criado nessa altura. O segundo ano foi maioritariamente utilizado no desenvolvimento do Motor do Jogo e da Aplicação Servidor. Durante este ano o projecto esteve parado e estou agora a resumir o seu desenvolvimento. Não se encontra ainda em condições de dar início à fase de distribuição do source e consequente formação da(s) equipas de desenvolvimento. Estimo Fevereiro deste ano que vem como a altura em que será possível ter uma base sólida de código-fonte para dar então início a este processo.

Downloads:

Binários (Windows) da Aplicação Cliente, versão alfa experimental: http://www.filefactory.com/file/d04be7/n/mediaeval_0_bin_rar

Source code: http://www.filefactory.com/file/0b678d/n/mediaeval_0_src_rar

Documentação raw. São dois documentos. A versão txt inclui ideias de implementação das regras do jogo escritas ao longo dos últimos 3 anos. A versão doc serve como base para o desenvolvimento da documentação final em formato PDF. Ambos os ficheiros referem aspectos do jogo de uma forma incompleta, sendo que novas ideias foram já implementadas no Motor do Jogo e servidor e outras foram implementadas de modo diferente do debatido (particularmente a resolução de combates):

http://www.filefactory.com/file/67df64/n/mediaeval_0_doc_rar

Língua:

A versão cliente será desenvolvida com suporte para várias linguas. Os restantes módulos serão inteiramente desenvolvidos em Inglês sem suporte Unicode.

Screenshots:

settings2wf2.th.png Configurações

dlgvalidatebj1.th.png Validação Opcional de Ficheiros

mapwindowie8.th.png Tab do Mapa

fullmaplandfeaturesonlyiw6.th.png Mapa do Jogo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá

Eu não conheço nenhum jogo do tipo play by email, mas subentendo que fosse baseado no envio de emails.

De acordo com a apresentação que fazes onde é que o envio de emails encaixa? A comunicação entre jogadores é feita por email e não pela aplicação cliente? Por algum motivo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá edazevedo,

Num PbeM um servidor central contém todo o estado do jogo ao longo de todo o mapa. Os jogadores sabem apenas a parte do mapa que lhes pertence -- e possivelmente um pouco mais dependendo das regrads do jogo e das suas características, como por exemplo o jogo implementar a possiblidade de se usarem espiões ou a possibilidade de os jogadores trocarem mapas.

Num tipico jogo PBeM, o servidor envia para todos os jogadores um relatório para o turno em que se está a jogar. Este relatório contém toda a informação do país (no caso de jogos PbEM de estratégia) que o jogador controla e o que mais se permitir que um jogador saiba. Imagina que o resto do mundo está sobre o efeito de uma espécie de Fog of War a não ser que o jogador tenha unidades lá, como espiões, batedores, exércitos ou marinha.

Recebendo esse turno, o jogador tem um período de vários dias para planear a sua próxima jogada: para onde enviar as suas tropas, quais as matérias primas que quer comprar, quais as alianças ou guerras que quer estabelecer, et cetera. Durante esse periodo o jogador poderá também querer entrar em contacto com outros jogadores para planear estratégias e conjunto ou preparar uma traição; no fundo para efectuar todo o tipo de diplomacia. Estes contactos são feitos da forma que bem entender. Email, telefone, encontro no parque enquanto dão de comer aos cisnes... No caso do Mediaeval, este período é de 1 semana. Findo este periodo o jogador terá que enviar as suas ordens para o novo turno que se aproxima.

As ordens são enviadas por email para um endereço controlado pelo servidor. As ordens vão num formato próprio que o servidor consegue usar para as processar automaticamente. Quando todas as ordens de todos os jogadores são recebidas ou o prazo limite é atingido, o servidor processará todas as ordens. Exércitos podem se encontrar e lutar entre si, alianças podem ser estabelecidas ou abortadas, et cetera. Findo o processamento, o servidor gera novos relatórios para o novo turno e envia-os por email para os jogadores. E o processo repete-se.

No caso do Mediaeval (mas também no caso de alguns outros PBeMs) o jogo pode ser jogado inteiramente sem recurso a nenhuma aplicação por parte do jogador, já que o relatório vem num ficheiro de texto devidamente formatado e as ordens que o jogador pode emitir obedecem a uma sintaxe fácil de entender findo algum tempo. Mas é também oferecida uma Aplicação Cliente que os jogadores podem instalar no seu computador e assim terem uma visão mais gráfica do jogo e mais facilmente emitirem ordens. A aplicação saberá interpretar os relatórios enviados pelo servidor e terá várias funcionalidades que permitem gerar um ficheiro de ordens sem que o jogador tenha que as escrever ele mesmo. A aplicação poderá também enviar as ordens automaticamente por email sem ter que ser o jogador a fazê-lo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, sem dúvida. Uma vez que o processo é em tudo semelhante.

No contexto estrito dos PBeMs no entanto, os jogos podem ser -- embora nem sempre o sejam infelizmente  -- muito sofisticados com elaborados modelos de implementação uma vez que estão livres de considerações de performance ou aspectos visuais. Por exemplo, em um PBeM com as características do Mediaeval, o servidor corre uma vez por semana com uma janela de 24 horas para processamento das jogadas. Ora, os jogos modernos não se podem dar a esse luxo. Qual era o jogador que estaria disposto a jogar um jogo de estratégia que demorasse sequer 5 minutos a processar cada turno?

Por isso, o Mediaeval por exemplo implementará um avançado modelo meteorológico, um AI capaz de lidar com os mais ínfimos detalhes, um mundo capaz de lidar com centenas de milhar de unidades ao mesmo tempo, ou um elaborado sistema de combate em que o combate enter exércitos compostos por uma ou duas centenas de milhar de soldados cada é decidido homem a homem. Se o servidor demorar 3 horas a processar as jogadas de 100 jogadores, ainda restam 21 horas naquela janela :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito interessante, especialmente esse ponto que focaste agora Marfig.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É uma perspectiva muito interessante de jogo.

Embora se o servidor demorar 24h para processar as jogadas passas a ter apenas "6 dias" para jogar :)

O q me parece interessante no jogo é o facto de se poder ir a um detalhe muito grande, q não é possível na maior parte dos jogos. É interessante o facto de no fundo bastar ter uma conta de email para se poder jogar e não estar preocupado q quando se vai de férias não se pode jogar, pois praticamente basta mandar um email por semana. Embora q o factor mais importante ao jogar vão ser as negociações durante a semana.

Não achas q ter tanto tempo entre jogadas também pode vir a ser prejudicial? Fica-se imenso tempo à aguardar resultados...

Já joguei um jogo web que se baseia num conceito semelhante embora bastante diferente do que pretendes implementar.

Talvez te interesse dares uma olhada http://www.evernightgame.com/ pode dar-te ideias.

Embora neste jogo normalmente o espaço de tempo entre jogadas é de 1 dia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pois praticamente basta mandar um email por semana

Na realidade nem isso. Neste tipo de jogos, as nações são auto-sustentáveis; os exércitos são pagos automaticamente, por exemplo. E se o Tesouro não tem dinheiro o fAI ( Free AI, o motor que gere as acções automáticas para nações com jogadores activos) pode vender e comprar no mercado para conseguir equilibrar as contas. O jogador também tem à sua disponibilização uma série de ordens chamadas Free Orders que lhe permitem alterar o comportamento do fAI para que este dê mais atenção a certos pormenores. Pelo que é possível de entre outras coisas determinar, por exemplo que o fAI deve também recrutar para o exército ou marinha. E em que moldes o deve fazer. Mas também pode efectuar um override sempre que quiser, emitindo ordens como por exemplo, emitir uma ordem para pagar ao exército.

Existe também um conjunto de ordens chamadas Future Orders que é transversal a muitas da ordens existentes. O jogador pode definir num turno um conjunto de acções a tomar ao longo dos próximos turnos o que lhe permite essencialmente não jogar durante algum tempo. Estas características não são exclusivas do Mediaeval. São comuns em muitos PBeMs que já incluam um motor mais sofisticado. O Mediaeval inovará noutras áreas...

Em termos práticos no entanto, existe normalmente um limite de turnos que o jogador poderá ficar sem efectuar ordens até que o motor considere que o jogador abandonou o jogo. No Mediaeval esse valor será muito provavelmente 5 turnos, sendo que se existirem Future Orders ou se o jogador efectuou alguma RL Order (Real Life Orders, como informar o servidor de férias, ou que pretende jogar de 2 em 2, ou 3 em 3 turnos durante um determinado período de tempo), esse limite será estendido.

Não achas q ter tanto tempo entre jogadas também pode vir a ser prejudicial? Fica-se imenso tempo à aguardar resultados...

Sim. Ao longo de quase duas décadas de PBeMs e quase meio século de PBMs, pode-se dizer com alguma segurança que 1 semana é o tempo máximo que se pode estabelecer de forma a manter o jogo jogável e os jogadores interessados. No entanto um PBeM que imponha um periodo de 1 semana entre turnos terá sempre que o justificar com vários factores. Os mais importantes Densidade e Play Value (falta-me uma tradução para Português, mas basicamente Interesse).

Jogos como o Mediaeval normalmente contêm um grande número de variáveis que os jogadores terão que lidar para administração das suas nações. O Micro e Macro management das suas nações tem uma elevada densidade de possíveis ordens que leva o jogador a ponderar sobre as muitas variáveis que afectam o seu desenvolvimento. No Mediaeval, por exemplo, a administração de uma nação passa pelos normais aspectos económicos, diplomáticos e militares, mas também sociais e políticos.

Por outro lado é dado um ênfase muito grande aos aspectos diplomáticos que elevam a necessidade de os jogadores contactarem entre si (tanto mais que é impossível sobreviver isolado) e estabelecerem alianças ou prepararem guerras. Já o aspecto militar do jogo -- pese embora não seja complexo ao nível de um wargame, nem se deseja que seja -- é composto por inúmeras possibilidades estratégicas e mesmo tácticas o que obriga a um bom planeamento para que qualquer campanha seja bem decidida. Quando estão envolvidos aliados e campanhas com alguma dimensão, a necessidade de preparar tudo ao mais pequeno detalhe ocorrerá naturalmente entre os jogadores e qualquer coisa menos que uma semana seria desastroso para eles.

Já na área do Play Value, um PBeM só poderá ser bem sucedido (dentro do que são os parâmetros que define o sucesso ou não de um PBeM) se incorporar mecanismos de jogo que sejam interessantes e levem os jogadores que se interessam por este tipo de jogos a continuar a jogar. Normalmente um bom modelo militar-estratégico e um modelo económico credível são suficientes. O jogo deverá também criar uma atmosfera à sua volta que é normalmente conseguida através dos extras que o acompanham como Aplicações Cliente com designs bem estudados, regras de jogo e um modo de jogar que seja um reflexo do ambiente que o jogo pretende simular e a tentativa de criar uma Cultura à volta do jogo com ajuda de websites e outras publicações. Existe sempre também o factor X, aquele factor que não se explica. Em todo o caso, tratam-se de jogos complexos e que, muito importante, não têm medo de ser complexos. São jogos fortemente viciantes também. Mas é um facto inegável, são jogos que apontam para um nicho de jogadores-padrão e não são definitivamente orientados para as massas.

...

No que me diz respeito fui sempre um adepto incondicional de wargames complexos (tabuleiro e mais tarde computador), de jogos de estratégia dos mais variados tipos e de jogos de simulação táctica. Portanto já nos anos 80 jogava com bastante fervor jogos por correspondência como o Middle Ages desenvolvido em Portugal e atacava tudo o que eram jogos de tabuleiro. O desenvolvimento de um vasto PBeM a uma escala épica foi sempre um desejo.

Mas a grande motivação, para ser honesto está mais no código do jogo. Um jogo a este nível é transversal a um vasto número de de áreas de desenvolvimento. Como já disse, por exemplo, estou a desenvolver um complexo modelo meteorológico que me tem levado a estudar o assunto a um nível que nunca imaginei iria atingir, tenho um AI baseado em Redes Neuronais para desenvolver, tenho uma aplicação cliente-servidor que vai permitir correr e fazer debug da Aplicação Servidor remotamente, está já desenvolvido um complexo modelo de combate com elementos tácticos e estratégicos capaz de suportar X número de exércitos, cada com centenas de milhar de soldados, tenho ainda que desenvolver um complexo modelo económico à escala global (do jogo, bem entendido) capaz de se tornar o mais rapidamente possível auto-sustentável, Tenho já parcialmente desenvolvido um compilador para parsing e pré-tratamento das ordens enviadas pelos jogadores antes de serem processadas pelo servidor, tenho que desenvolver várias e vastas áreas do Servidor com threads e todas as preocupações que isso implica em termos de código,...

Enfim, tem-me dado um gozo tremendo, tem desenvolvido os meus skills C++ a níveis que julgava não ser possíveis e tem-me obrigado a estudar áreas não relacionadas com informática que nunca pensei viesse a precisar ao detalhe que me tem sido exigido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Marfig, fantástico trabalho. :P

Desejo-te as maiores felicidades para este teu projecto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado M6. Quem sabe a partir de Fevereiro não será também o teu projecto :P *dica, dica*

Será nessa altura mais ou menos que o vou abrir para Open distribution.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente fiquei impressionado e percebi agora o porquê do tempo que já gastaste para desenvolver o jogo.

É um grande desafio que tens pela frente assim como deves ter tido outros, ao longo do desenvolvimento, que já deves ter vencido.

Quanto a redes neuronais só conheço um pouca da teoria nunca vi nenhuma implementação prática apenas em alguns algoritmos de business inteligence, mas sei q existem muitas outras áreas de aplicação, normalmente o pessoal assusta-se só com o nome :P

É um projecto aliciante mas dirigido a um nicho de jogadores. Imagino q se a aplicação cliente tivesse um motor 3D por trás, mesmo q os gráficos não fossem de muita qualidade conseguiria-se atrair muitos jogadores.

Desejo-te as maiores felicidades e acredita q se não andasse para aqui com o meu projecto q me ocupa todo o meu tempo livre, estaria muito tentado em ajudar-te.

Boa sorte.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado M6. Quem sabe a partir de Fevereiro não será também o teu projecto :P *dica, dica*

Será nessa altura mais ou menos que o vou abrir para Open distribution.

Talvez para o outro do dicionário :)

Tenho um interesse particular nesse projecto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah :P

Irei apresentá-lo em breve. Estou possivelmente em vias de ter acesso ao uma raw BD de um fornecedor que não será correcto mencionar agora. Mas se se concretizar tornará o projecto possível (e a minha maior prioridade). Não iria ter piada nenhuma estar a copiar entrada a entrada de um dicionário da língua Portuguesa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites