Loading repository data…
Loading repository data…
SBD1 / repository
Repositório dedicado para o desenvolvimento do jogo Moonlighter da disciplina SBD1 - 2025.1
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Moonlighter é um jogo indie de ação e aventura com elementos de gerenciamento, desenvolvido pela Digital Sun e lançado em 2018. Nele, você controla Will, um comerciante que vive na pacata vila de Rynoka. Durante o dia, Will cuida da sua loja, vendendo itens, ajustando preços e interagindo com os clientes. Mas à noite, ele se aventura em masmorras misteriosas em busca de tesouros, enfrentando monstros e coletando recursos raros.
O jogo chama atenção pela sua mecânica de vida dupla — equilibrando combate em tempo real com um sistema econômico de venda e precificação de itens — além de seus visuais em pixel art e trilha sonora envolvente.
O projeto se baseia em uma versão adaptada e simplificada do Moonlighter, executada diretamente no terminal. A ideia é recriar a essência da rotina de Will com foco em:
A aplicação será construída em Python (interface em terminal), com toda a lógica de dados estruturada em PostgreSQL, utilizando SQL puro para modelagem, triggers, views e controle de acesso.
O conteúdo da documentação do projeto Moonlighter aborda os assuntos e atividades cobradas durante a disciplina de Sistema de Bancos de Dados 1 da Universidade de Brasília do Campus Faculdade de Ciências e Tecnologias em Engenharia - FCTE.
Para acessar a documentação do projeto, Clique aqui!
O projeto Moonlighter é dividido em três ambientes principais, organizados dentro da pasta /apps. Cada um deles cumpre um papel específico na arquitetura do sistema, mantendo o projeto modular e fácil de navegar:
apps/cli: Contém o código da interface em terminal desenvolvida em Python, responsável pela interação do usuário com o sistema. Aqui é onde o jogo acontece — você executa comandos, visualiza ações e interage com o banco por meio de menus e prompts.apps/sql: Abriga toda a lógica relacionada ao banco de dados PostgreSQL, utilizando apenas SQL puro. Inclui a criação de tabelas, inserção de dados (seeds), views, triggers e controles de acesso. Esta pasta é o "coração lógico" do sistema.apps/docs: Ambiente de documentação criado com MkDocs, voltado para explicar o funcionamento do projeto, decisões de arquitetura, DER/MER, comandos SQL utilizados, e instruções de uso. É também o que será publicado no GitHub Pages para facilitar o acesso à documentação do time ou de avaliadores.Essa organização facilita a separação entre lógica do jogo, estrutura de dados e documentação, permitindo que cada parte evolua de forma independente, mas integrada.
O projeto utiliza de pacotes JavaScript para auxiliar na execução e padronização de qualidade para o time de desenvolvimento, se restringindo apenas para este uso. Portanto, é necessário que o usuário possua Node.Js na versão 22+.
O arquivo package.json dispõe de comandos que auxiliam a subir os diferentes ambientes de execução separadamente:
Para rodar a documentação em ambiente de desenvolvimento, é necessário:
Em versões de Windows 10+ ou Ubuntu 22.04 execute o comando:
pip install mkdocs
pip install mkdocs-material
npm run devDoc
Para usuários com o Ubuntu na versão 24.04 ou sistemas onde o Python está configurado para impedir a instalação de pacotes globalmente com pip, como uma medida de segurança (PEP 668) por conta do gerenciado de pacotes padrão: apt, utilize os passos abaixo:
python3 -m venv .venv
Linux:
source .venv/bin/activate
Windows:
.venv\Scripts\Activate.ps1
pip install mkdocs
pip install mkdocs-material
npm run devDoc
Antes de rodar o jogo, é necessário subir o banco de dados PostgreSQL. Para isso, utilizamos o Docker, que cria e gerencia o ambiente de forma isolada.
🛠 Pré-requisito: Certifique-se de que o Docker está instalado em sua máquina. Você pode baixá-lo em: https://www.docker.com/products/docker-desktop
Com o terminal aberto na raiz do projeto, execute:
docker compose up -d
Esse comando irá baixar as imagens necessárias e iniciar os containers do PostgreSQL e do Adminer.
Também na raiz do projeto, você pode subir os containers com o seguinte comando:
npm run db:up
Isso executa o mesmo processo anterior, mas via script definido no package.json, facilitando o uso para toda a equipe.
Após executar o PASSO 1, é necessário instalar as dependências da linguagem Python. Para isso, estando na Raíz do Projeto, rode o comando abaixo:
pip install -r requirements.txt
Agora, o seu ambiente está pronto para executar o jogo Moonlighter! Basta executar o comando abaixo:
python3 apps/cli/main.py
Aproveite a experiência!
Para acessar a documentação do projeto Moonlighter, Clique Aqui ou clique no link disponível na descrição do repositório.
O projeto utiliza o protocolo Coventional Commits nas mensagens de commit, e portanto, deve seguir o seguinte padrão:
tipo(escopo opcional): descrição breve
Para controle de qualidade, o projeto utiliza a biblioteca Husky para executar comandos verificadores em diferentes fases de interação com o Git, como o pré-commit.
Para contribuir no projeto. Realize os seguintes passos:
Selecione uma pasta de sua preferência e execute o seguinte comando para clonagem do repositório:
git clone https://github.com/SBD1/2025.1-Moonlighter.git
Para contribuir no projeto com os commits, baixe as dependências do Husky para que as verificações possam acontecer:
pip install -r requirements.txt
Acesse o tópico "Executando o projeto" para obter detalhes de como acessar os ambientes do projeto.