Roadmap
Avançado

Text-based MMORPG com JavaScript

Entenda o processo de criação de um jogo MMORPG web com JavaScript

react
nextjs
javascript
prisma
trpc
tailwind

O que queremos fazer?

O grande problema de fazer um MMORPG decente é que ele é um jogo muito complexo. Para que possamos fazer um jogo desse tipo, precisamos de um bom planejamento. Nesse capítulo, vamos definir as mecânicas do jogo, ou seja, o que o jogador pode fazer dentro do jogo.

Jogadores buscam coisas especificas para fazer dentro de um jogo, por exemplo, existem jogadores que procuram um jogo linear, onde ele pode fazer quests comprar items evoluir até chegar ao fim, já existem jogadores que não gostam de regras, eles querem ficar livres para matar infinitos monstros de nivel 1 e pra eles é o suficiente. Por essa razão vamos fazer um sandbox, se ele quiser fazer quests ele pode, se quiser matar monstros ele pode.

Alto risco, alta recompensa

Como nosso jogo é text-based o jogador vai saber ao clicar em cada ação quais os riscos e as recompensas de cada ação que ele fará, com isso ele pode calcular se vale a pena ou não fazer aquela ação. Por exemplo, se o jogador for nivel 1 ele pode tentar caçar um monstro de nivel 5, porém as chances de ele conseguir vão ser bem baixas, se ele conseguir ele vai ganhar 5x a experiencia que ele ganharia matando o monstro caso ele fosse nivel 5, porém se ele não conseguir matar o monstro ele vai ter 5x mais chances de morrer e perder o personagem.

Sistema de combate

PVM - Player vs Monster

O sistema de combate PVM vai funcionar da seguinte forma, o jogador vai escolher um monstro para atacar, e baseado em seus atributos e nos atributos do monstro o jogo vai calcular a porcentagem de chance do jogador vencer o monstro, a porcentagem de chance do jogador perder e a porcentagem de chance do jogador morrer. Se o jogador vencer ele vai ganhar a experiencia do monstro e o loot do monstro, se o jogador perder ele vai perder uma quantidade de vida baseado no dano do monstro e fugir e se o jogador morrer ele vai perder o personagem. O jogador vai ser informado de todas as porcentagens antes de atacar o monstro.

Morte em PVM

No combate contra monstros a morte do jogador é 25% - RNG de chance em caso de derrota. Então só se o jogador for derrotado pelo monstro essa porcentagem será executada.

Chance de Morte = Se Derrota (25% - RNG)

PVP - Player vs Player

O sistema de combate PVP vai ser parecido com o sistema PVM, mas a grande diferença entre eles é que o jogador não vai saber as porcentagens de chance que ele tem de vencer o outro jogador, outra mecanica é que no momento que o jogador atacar outro jogador, o jogador atacado vai ser informado que outro player está se aproximando dele, e ele vai ter a opção de fugir, chamar ajuda ou atacar o jogador que está se aproximando dele (20s para decidir, caso não faça nada atacar será automaticamente escolhido).

Se ele optar por fugir, o jogador que o atacou vai ganhar 25% da experiencia que ele ganharia caso tivesse batalhado e vencido. O jogador que fugiu vai gasta 3 pontos de stamina para fazer essa ação.

Se optar por chamar ajuda, o jogador atacante vai ter a opção de fugir da batalha ou continuar a batalha. Se ele fugir o jogador que chamou ajuda vai ganhar 25% da experiencia que ele ganharia caso tivesse batalhado e vencido o jogador que o ajudou vai receber 50% da experiencia caso tivesse lutado e vencido. Se ele aceitar a batalha e vencer, ele vai ganhar a experiencia de batalha com os dois triplicada.

O jogador que perder a batalha pode pedir misericórdia ao jogador vencedor, caso o jogador vencedor aceite o vencedor vai ganhar 50% da experiencia e poderá levar quaisquer itens do perdedor que quiser, caso o jogador vencedor não aceite o perdedor morre e o jogador vencedor leva 100% da experiencia mas os itens do perdedor são perdidos. Se o jogador que perdeu não pedir misericórdia ele morre e o jogador vencedor leva 100% da experiencia.

Cada jogador pode atacar 1 jogador por vez e precisa esperar 3h para poder atacar outro jogador.

Se o jogador tiver matado mais de 10 jogadores nos últimos 30 dias ele será considerado um PK (Player Killer) e vai ser marcado com uma caveira vermelha, e o jogador que for atacado será avisado que o jogador que se aproxima é um PK e as opções será adicionado a opção de chamar os guardas da cidade (5 de stamina), caso o jogador que for atacado chame os guardas, o jogador que atacou vai ser preso e vai perder 50% da experiencia total e todos os itens que ele estiver carregando.

Ufa, é muita coisa, mas é isso que faz um MMORPG ser um MMORPG.

Sistema de quests

O sistema de quest vai ser bem simples, o jogador pode escolher quests geradas aleatoriamente toda vez que ele entrar no jogo, vão ter 2 tipos de quests as quests automaticas que são quests que o jogador escolhe e depois de um determinado tempo ele recebe as recompensas, e as quests de "caça" que ele precisa cumprir certos objetivos para receber as recompensas.

Jogadores só podem ter 1 quest ativa por vez.

Rouge-like

O game funciona no sistema hardcore, ou seja, se o jogador morrer ele perde o personagem e todos os itens, e terá que criar um novo personagem do zero.

O jogador pode ter até 4 personagens por conta.

O jogador receberá recompesas de quests aleatórias e a cada nivel que ele upar ele receberá 1 ponto de skill para escolher entre 3 possibilidades.

Ele ainda irá receber 5 pontos de atributo para distribuir como quiser entre força, agilidade, inteligencia, sorte e fé.

Vida / Mana / Stamina

Cada personagem tem 3 barras de status, vida, mana e stamina.

Vida define o quanto de dano o personagem pode receber antes de morrer. Mana é necessaria para usar skills. Stamina é necessaria para se mover e atacar.

Atacar monstros consome 1 ponto de stamina. Atacar jogadores consome 2 pontos de stamina. Ser atacado por jogadores não consome stamina. Chamar os guardas consome 5 pontos de stamina. Fugir de batalhas consome 3 pontos de stamina. Cada skill tem um custo de mana diferente.

Opa, calma aí!

Parece que você não está logado, caso tenha interesse em salvar seu progresso de estudo faça login agora.