Skip to content

UnMUD/UnMUD

Repository files navigation

UnMUD

O UnMUD é um Multi-User Dungeon (MUD) desenvolvido como Projeto de Pesquisa e Trabalho de Conclusão de Curso do aluno Iuri Severo, da Universidade de Brasília. Seu código teve como base o SimpleMUD, disponibilizado por Ron Penton em seu livro “MUD Game Programming”, e foi evoluído para se enquadrar na diretrizes do C++, além de seguir a boas práticas adotadas pela comunidade.

Esse projeto foi desenvolvido com o objetivo principal de tornar a base de códigos de um MUD implantável, para que outros estudantes possam explorá-la e evoluí-la conforme desejarem, dando a eles a oportunidade de jogar, testar e analisar o jogo, a fim de compreender mais profundamente seu desenvolvimento, arquitetura e outros aspectos relevantes de seu software. Devido ao seu aspecto multidisciplinar e seu potencial evolutivo, MUDs se enquandram bem nessa função de "material de estudo".

Documentação

Toda documentação referente ao projeto pode ser visto em seu site no GitHub Pages. Caso você seja novo por aqui, alguns links interessantes de dar uma olhada caso você esteja interessado em:

Área do suporte

A área de discussões do GitHub está aberta para o esclarecimento de quaisquer dúvidas relacionadas ao projeto.

Tecnologias utilizadas

O UnMUD foi desenvolvido utilizando C++ como sua principal linguagem, na versão C++XX. O código foi atualizado para seguir as diretrizes especificadas no C++ Core Guidelines e deve funcionar em versões superiores a especificada, porém é possível que haja erros de compilação em versões anteriores.

Para criar um ambiente de desenvolvimento isolado foram utilizadas as ferramentas Docker e Docker Compose. Caso você não possua essas ferramentas, é possível instalá-la seguindo suas documentações oficiais:

Também foi utilizada a ferramenta Make para compilação e linkagem dos códigos, assim como a geração de arquivo um executável. Não é necessária a instalação dessas ferramentas para execução do programa, uma vez que o ambiente de desenvolvimento é levantado de forma isolada pelo Docker.

Para análise estática de código foram utilizadas as ferramentas:

  • Cppcheck: O Cppcheck é uma ferramenta de análise estática usada para analisar códigos C/C++. Ela fornece recursos de análise de código distintos para identificar erros de programação e se concentra na detecção de comportamentos indefinidos e práticas de codificação potencialmente perigosas.
  • Clang Tidy: O clang-tidy é uma ferramenta de "linter" para C++ baseada em clang. Seu propósito é fornecer um framework extensível para diagnosticar e corrigir erros típicos de programação, como violações de estilo, uso incorreto de interface ou bugs que podem ser deduzidos por meio de análise estática.
  • Clang Format: ClangFormat é uma ferramenta desenvolvida a partir da LibFormat, uma biblioteca que implementa formatação automática de código-fonte baseada no Clang.

E para realização de testes unitários foi utilizado o framework GoogleTest, em conjunto com a ferramenta gcovr para análise da cobertura de testes.

A integração contínua e o deploy foram realizados com o auxílio do GitHub Actions.

Contribuidores

Obrigado a todos que já contribuiram!

Feito com contributors-img.