Criar um MMO(Jogo) em Java

Olá,

Gostaria de saber se é possível (creio que é possível mas não sei se é viável) criar um jogo estilo “MMO”, ou seja, jogos estilo “OGame” ou “Travian” usando Java Desktop.

O mais usual seria utiliar PHP mas estou empacando pra criar o mapa do jogo com as setinhas que movimentam o mapa e tal. E no Java creio que essa parte seria mais fácil, tipo desenhar os tiles isométricos um ao lado do outro, por exemplo, se for ‘1’ eu desenho ‘terra’ mas se for ‘2’ eu desenho ‘água’.

A questão é, pensando mais pra frente…

O usuário logaria no sistema mas quem estaria online? Eu seria obrigado a fazer um sistema estilo P2P? (Estilo o Emule ou o Kazaa) com sistema de login no servidor? E vai que fosse pra frente a idéia, teria que deixar um servidor ligado em rede pros outros usuários conectarem?

Idéia complexa mas com Netbeans eu precisaria desenhar a interface do MMO tipo os botões, labels e campos de texto.

Mas a questão é, pelas minhas dúvidas, é viável? O que recomendam?

Obrigado.

1 curtida

Opa,
Cara eu estou pegando java na universidade e sempre tive vontade de entrar nessa área de MMO’s, não sei nada que possa ser útil ainda porém estarei acompanhando seus posts para ver se consigo arrumar um ponto inicial para começar, se tiver algum meio de contato seria interessante, estou tentando puxar um pessoal da universidade para a ideia mas o povo hoje é muito preguiçoso. :face_with_raised_eyebrow:
(P2P é interessante, porém trabalhoso)

1 curtida

Olá Matrix2100,

Fico feliz de encontrar alguém que se interesse pelo assunto.

Eu pensei no Java pela facilidade de se criar a interface com a IDE que são basicamente imagens, campos de texto, labels e buttons que gostaria de utilizar pra criar um MMO estilo Travian, OGame etc.

Porém acho que o mais viável seja criar em PHP/MySQL mesmo pela complexidade da “Rede” ao se tentar logar ‘muitos jogadores’ utilizando multiplayer. Pelo que li em um site de desenvolvimento de jogos, minha idéia de um MMO estilo Travian, OGame, seria inviável por questões de “Delay” e processamento. Criar um “site” e coloca-lo na Web é mais simples e viável pelas minhas pesquisas.

A primeira vez que tentei criar um MMO, eu tentei pegar a “idéia” de criar ‘world map’ seguindo a idéia desse jogo que é OpenSource: http://devana.eu/game/grid.php

Eu cheguei a criar um mini-mapa usando HTML/PHP e tabelas do HTML com os tiles represenando água ou planície.

Tentei outro projeto de MMO em PHP/MySQL que não foi pra frente mas me deu um pouco de experiência com PHP.

Tentei um sistema de turnos estilo um que tem no jogo “DarkThrone” (https://www.darkthrone.com) e consegui alguns sucessos com Javascript. Mas pelas minhas experiências, eu teria que fazer em PHP, que por sinal sozinho “não me possibilitaria criar um sistema turnos”(um contador de segundos que adiciona turnos ao final da contagem). Parece que o mais viável e possivelmente utilizado é usar triggers ou eventos do MySQL(usando PHPMYADMIN, no meu caso) pra se criar um sistema de turnos em PHP utilizável.

Enfim…

Estou eu de volta no PHP(gosto bastante de PHP) tentando criar um sistema de MMO simples, a princípio.

Vou passar meu discord via MP pra você caso queira entrar em contato.

Obrigado.

O que você quer é possível em Java, PHP ou outra linguagem servidor de sua escolha, mas vai requerer um bocado de dedicação da sua parte. MMOs são geralmente bastante complexos, principalmente para garantir a sincronia entre os jogadores, autenticidade das requisições, e balanceamento do gameplay. MMOs tem requisitos insanos de balanceamento de carga, pra dar conta de múltiplas conexões simultâneas.

Se você vai fazer via browser, a interface do cliente provavelmente envolverá javascript, e não poderá ser construída numa IDE como o Netbeans. É o jeito mais comum de se fazer algo via browser atualmente, sejam jogos ou aplicações web. Você pode testar frameworks como o Pixi.js ou o Phaser, que facilitam a criação de jogos 2d com javascript, e já tem elementos como botões e carregamento de imagens.

Eu recomendo você tentar fazer o menor jogo possível, rodando em uma rede local entre 2 jogadores, com um dos computadores atuando como servidor. Algo como Starcraft: coletar recursos (1 recurso só, inicialmente), criar tropas (1 a 3 tipos, no máximo) e batalhas entre os jogadores. Com isso, você vai ter uma ideia de como avançar esse projeto.

P2P é uma possibilidade, com a autenticação dos jogadores acontecendo num servidor e as partidas sendo processadas nos clientes, mas nesse modelo é complicado garantir que as requisições entre os jogadores são legítimas, abrindo espaço para cheaters.

Abraço.

2 curtidas

Obrigado pela resposta @TerraSkilll!

Eu recomendo você tentar fazer o menor jogo possível, rodando em uma rede local entre 2 jogadores, com um dos computadores atuando como servidor. Algo como Starcraft: coletar recursos (1 recurso só, inicialmente), criar tropas (1 a 3 tipos, no máximo) e batalhas entre os jogadores. Com isso, você vai ter uma ideia de como avançar esse projeto.

A idéia é essa mesma. Fazer um jogo bem simples. Coletar recursos, recrutar tropas e atacar. A princípio a idéia é essa.

P2P é uma possibilidade, com a autenticação dos jogadores acontecendo num servidor e as partidas sendo processadas nos clientes, mas nesse modelo é complicado garantir que as requisições entre os jogadores são legítimas, abrindo espaço para cheaters.

É foi o que pensei. Não entendo muito mas sei que tem muitos cheaters e hackers que poderiam quebrar as regras do jogo. Já em um jogo web browser acho que são menores as chances de isso acontecer.

Obrigado pelas informações.

Qualquer ajuda é bem vinda.

Obrigado.

existe uma tendencia a imaginar Games, e MMOs em geral, como algo super complexos para que façam algum sucesso.

na verdade um jogo deve ser interessante. e em qualquer interface, e eu digo qualquer mesmo, vc pode criar um jogo interessante.

jogo da velha, por exemplo, vc pode ter centenas de oponentes que vão se desafiar de alguma forma, ate que so sobre um vencedor. se vc esperar um x de tempo para que o oponente faça algo - se não fizer Perdeu -

se vc consegue implementar isso, vai conseguir implementar qualquer jogo com regras abstratas simples ( um super trunfo, por exemplo, ou algo baseado em turnos ). um jogo nada mais é que uma série de regras + como vc lida com o tempo ( se é baseado em Turnos ou Tempo Real - vai exigir estrategias diferentes ).

acredite, da pra fazer muita coisa interessante em uma interface textual e, com algum html, fica bonitinho no browser.

pra isso virar um jogo mais complexo, com 3D, fisica, etc, vai ser uma evolução disso.

entretanto eu acho um caminho mais interessante vc partir de jogos simples que as pessoas queiram jogar de alguma forma ( aposta de jogo de futebol, e ai vc gera os resultados randomicamente? ) e vc vai entendendo como lidar com usuarios, com a comunidade, etc. a evolução sera organica

1 curtida