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

Aleatorizando as coisas

O grande diferencial de um RPG bom para um RPG excelente é a criatividade do mestre, e como ele conduz a história.

Nosso jogo não tem nenhuma história e isso é proposital, não daria pra terminar esse tutorial esse ano ainda se fosse criar uma história pra ele, mas você pode ir incrementando ele com o tempo.

Como nosso jogo é Rouge-like, tudo é aleatorio, ou seja, nos mapas do jogo os monstros terão leveis aleatorios, os itens e as quests. Claro que nem tudo é aleatório, vamos ter uma base para consultar os monstros, itens, skills e quests, mas o nivel deles será aleatorio respeitando um range para não ficar muito desbalanceado.

Aleatorizando os monstros

A geração dos monstros é bem simples, vamos buscar no banco a lista de monstros disponiveis no mapa que o personagem está e vamos retornar uma lista de 5 monstros sendo que o nivel deles será aleatorio entre o nivel do personagem e o nivel do personagem + 5.

Como os monstros também tem atributos como vida, defesa e DPS, vamos usar o nivel deles para multiplicar esses atributos, assim quanto maior o nivel do monstro mais forte ele será. Os valores no banco servirão como base para multiplicar o nivel.

Aleatorizando os itens

Os itens vão seguir a mesma lógica, sendo que o monstro vai definir o nivel do item que ele vai dropar, e o nivel do item vai definir o valor dos atributos dele.

Aleatorizando as skills

As skills diferente dos itens e monstros vão ser padrão, a unica diferença é que vamos oferecer skills aleatórias até o nivel do personagem, ou seja, se o personagem for nivel 10 ele poderá escolher as skills de nivel 1 até 10 que serão oferecidas pra ele, caso ele escolha uma skill que ele já tem ele vai multiplicar os status da skill dele.

Caso o personagem tenha 5 skills diferentes só será oferecido as mesmas 5 skills para ele escolher evoluir.

Agora é com você

Eu posso trazer no futuro um tutorial ou uma parte dois desse curso de como adicionar Sockets para que os clientes se comuniquem entre si para fazer com que os clientes possam interagir, mas a ideia aqui é que vocês possam evoluir essa base e fazer isso por conta propria.

Eu pretendo lançar esse jogo em breve, assim que tiver mais tempo atualizo vocês no Discord, você pode acompanhar o projeto no github assim que tiver a versão beta eu vou disponibilizar o link para vocês testarem.

Definir as skills, itens e monstros é a parte criativa, mas que como tudo você pode pedir sugestões aos seus amigos ou até mesmo o chatGPT.

E lembre-se, o poder é de vocês.

O poder é de vocês

vai planeta

Opa, calma aí!

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