/meu-primeiro-jogo-multiplayer

Um jogo multiplayer bastante simples para testarmos o Socket.io

Primary LanguageJavaScriptMIT LicenseMIT

meu-primeiro-jogo-multiplayer

Um jogo multiplayer simples o suficiente para qualquer pessoa aprender conceitos importantes sobre arquitetura e desenvolvimento de software.

Ele foi projetado de uma forma modificável/hackeável para que você consiga implementar suas próprias ideias ou até reimplementar do zero em outras linguagens. Inclusive este repositório é um playground de experimentos e qualquer tentativa será bem-vinda.

Antes de prosseguir, é extremamente importante você assistir esse vídeo introdutório com toda explicação por trás deste projeto, inclusive todos os passos utilizados para programar ele: Assistir introdução no YouTube

Experimentos

Autor Descrição
Prova de Conceito (POC) por @filipedeschamps
Eu nunca tinha programado um jogo multiplayer e queria entender o que eu não entendia sobre o assunto para, em seguida, reimplementar um MVP com práticas melhores. Dessa experiência foi criada uma Playlist no YouTube com 12 vídeos sobre design pattern e arquitetura de software.
Rodar no Gitpod / Abrir código
Estilo Jogo da Cobrinha por @vassourita
Jogadores são como cobrinhas que crescem a cada fruta comida. Se você esbarrar em outra cobra os seus pontos e toda sua extensão do seu rabo passam a pertencer a ela.
Rodar no Gitpod / Abrir código
Minimum Viable Product (MVP) por @filipedeschamps
Versão da POC reimplementada utilizando boas práticas.
Rodar no Gitpod / Abrir código
Teleporte do Jogador no limite do Canvas por @PoorlyDefinedBehaviour
Esta versão adiciona uma estratégia interessante para a coleta de frutinhas, porque o jogador pode se teleportar de um lado para o outro apenas atravessando o limite do canvas.
Rodar no Gitpod / Abrir código
Implementação com Score @JonasFreireAlcantara
Esta versão extende a versão do Teleporte e implementa a feature de score. Inclusive utiliza a CSS da POC, o que dá outra cara para o jogo.
Rodar no Gitpod / Abrir código
Skin para Jogadores e Frutas @JonasFreireAlcantara
Esta versão ao invés de mostrar pixels siples na tela, mostra ícones mais robustos para as frutas e jogadores.
Rodar no Gitpod / Abrir código
Simples PWA @Allanksr
Esta versão é uma cópia de skin para jogadores e frutas implementado agora a Aplicação progressiva web(PWA).
Rodar no Gitpod / Abrir código
Colidindo com players, novos skins e som @doriclaudino
Trabalho impressionante que traz toda uma dinâmica nova ao jogo através de captura de itens com pontos diferentes, colisão entre players com disperção dos itens, choque na borda do jogo, vale muito a pena conferir.
Rodar no Gitpod / Abrir código
Versão Xadrez @marcosjcs
Mais um trabalho impressionante que traz agora uma dinâmica de xadrez (com layout e peças) e inclusive com a feature de pedir o nome do jogador.
Rodar no Gitpod / Abrir código
Versão stateful serverless com Cloudflare Worker e Durable Objects @boemekeld
O Lucas Boemeke recebeu acesso para a versão beta do Durable Objects da Cloudflare e substituiu o backend por isso.
Abrir / Abrir código

Como enviar o seu experimento

Este é um projeto simples e pode ser desenvolvido em qualquer lugar, mas ultimamente estou utilizando uma IDE Online chamada Gitpod e nela consigo deixar o ambiente 100% configurado (tanto o frontend quanto o backend) para você apenas sentar e programar. Inclusive, eu vou reprogramar o jogo todo por dentro dela e para você programar também, basta seguir os passos abaixo:

  1. Caso você queira só futucar o código ou ver o jogo rodando, clique aqui para ele clonar o meu workspace com o meu repositório. O acesso ao Gitpod é gratuito e ele vai pedir para você se conectar com a conta do Github.
  2. Caso queira desenvolver sua própria versão ou modificação, faça um fork deste repositório para dentro da sua conta no Github.
  3. Depois disso, simplesmente adicione gitpod.io/# na frente da URL do seu repositório para clonar o workspace já com este repositório do jogo rodando.
  4. Você vai encontrar dentro da pasta playground todos os experimentos, então crie uma pasta nova para colocar o seu experimento.
  5. Você pode escrever todo o código do zero para acompanhar os vídeos tutoriais da playlist, mas também pode copiar a pasta de um outro experimento e fazer as suas modificações.
  6. Faça o commit de suas alterações, envie para seu fork e abra um Pull Request. Para o Gitpod ter acesso de escrita no seu repositório, você deve habilitar isto nas preferências do Access Control.

Autor


@filipedeschamps