Soul Points é um projeto simples de jogo multiplayer desenvolvido para pratica principalmente a tecnologia de WebSocket.
Como mecionado, o jogo é simples e conta com uma tematica em que os jogadores são almas e ficam coletando outras almas, seja a de outros jogadores mais fracos ou almas puras que surgem no mapa.
Além disso, o jogo conta com um sistema de autenticação, que permite cadastrar e logar com um usuario, como também salvar a quantidade de pontos de alma foram coletados antes de sair.
Antes de tudo, este projeto usa o serviço do MongoDB, então será necessario criar ou usar um banco de dados com ele. O nome do banco de dados é "soul-points" e possui três coleções, sendo elas: "users", "players" e "pureSouls".
As configurações sobre a conexão com banco de dados se encontra em ./server/db/dbConnect.js
e caso mude o banco de dados as classes em ./server/services
devem ser verificadas, já que são elas que fazem a conexão com o banco de dados.
Agora começando, após ter o projeto em sua maquina, seja por download ou clonagem, devera fazer os seguintes passos:
- Instalar as dependecias com
npm install
- Criar um arquivo
.env
na raiz do projeto. - Dentro do
.env
criar duas variaveis com os nomes:JWT_SECRET_KEY
eMONGO_DB_CONNECTION
- Atribua
JWT_SECRET_KEY
com algum valor qualquer - Atribua
MONGO_DB_CONNECTION
com o valor da string de conexão fornecida pelo MongoDB Driver.
- Atribua
- Levante o servidor com
npm run dev
no terminal
Com esses passos o servidor já estará funcionando localmente!
Soul Points conta com algumas mecanicas que estão concentradas na pasta GameController (./server/GameController), dentre elas estão:
- O Movimento do Jogador com as teclas de seta ou WASD
- Colisão com outros Jogadores e Almas Puras, que tem efeitos diferentes:
- Colidir com Jogadores com mais pontos de alma que você ou com a mesma cor cancela o Movimento
- Colidir com Jogadores com menos almas e cor diferente faz com que o Jogador em Movimento ganhe todas os pontos almas do Jogador Colidido, que por sua vez é destruido
- Colidir com Almas Puras sempre faz com que ela seja Destruida e o Jogador em Movimento recebe seus pontos de alma
- Ser Destruido significa que os dados são removidos do Estado do Jogo, caso um Jogado seja Destruido ele recebe uma tela de Game Over
- As Cores dos Jogadores são alteradas baseadas na quantidade de pontos de alma que ele possui. A quantidade de pontos de alma para trocar de cor é definido pela propriedade pointsToChangeColor.
Todas as mêcanicas são cambiáveis e suas alterações podem ser feitas dentro de ./server/GameController
.
- HTML
- Tailwind
- JavaScript
- Node.js
- Express
- Socket.io
- MongoDB
- JSON Web Token
Meu nome é Alexandre Coelho, sou autor deste Readme, sou aluno da Universidade Estadual de Santa Cruz e da Alura. No momento estudo Desenvolvimento Web e este foi um dos projetos que tive ideia de fazer enquanto estudava WebSockets na Alura.
Para este projeto deve agradecimento especial a Filipe Deschamps, que mesmo não sabendo me ajudou a salvar este projeto com uma playlist dele de meia decáda atrás, na qual ele tinha um projeto muito similar com minha propria ideia.
Por fim, tentei seguir boas práticas na criação do projeto em si e por em prática algumas ideias que tinha em minha mente. Qualquer opnião ou contribuição será aceita como de grande ajuda!
Agradeço por sua leitura e a seguir deixo alguns links de redes minhas: