A downloadable project

Introdução

Nossa atividade na disciplina de Lógica de Programação tinha como objetivo aprofundar nosso entendimento sobre o projeto-base de jogos fornecido pelo professor. Como equipe,  analisamos cuidadosamente cada parte do código, discutimos seu funcionamento e compreendemos como ele se conecta aos conceitos vistos nas aulas. A partir desse estudo, nós buscamos identificar aspectos que possam ser aprimorados ou atualizados, sempre justificando nossas decisões com base nos conteúdos trabalhados durante o módulo.

Além de entender o projeto, também fomos responsáveis por documentar detalhadamente todo o código. Isso significa explicar, com clareza, o que cada trecho faz, qual é sua função no sistema e como contribuiu para o jogo como um todo. Nossa intenção era produzir uma documentação completa, que permitiria que qualquer pessoa — mesmo quem nunca tenha visto o projeto — conseguisse compreender sua estrutura e lógica. Depois disso, desenvolvemos três melhorias, aplicando o que aprendemos e demonstrando nossa capacidade de evoluir o projeto de forma técnica e criativa.

Por fim,  desenvolvemos uma apresentação em slides sobre o projeto e essa página no Itch.io. 

Projeto Base

Com o objetivo de nos testar e colocar em pratica os conteúdos ensinados ate então, esse projeto nos colocou em uma posição para testar nossa compreensão não só teórica mas também pratica dos conceitos ensinados e como utiliza-los em um código real. 

O código base que nos foi apresentado, usa a maioria dos conceitos que estudamos nesta disciplina. Ele utiliza de operadores simples como "if", "while" e "for", os quais foram ensinados no começo da disciplina para funções complexas.

No segundo terço do semestre, manipulação de arquivos e funções/métodos foram nos ensinados e neste projeto eles foram amplamente utilizados, servindo como as pontes entre blocos de código que não fariam sentido sem eles.

Desenvolvimento

Primeiro, nós analisamos o código e buscamos entender sua estrutura, identificando possíveis pontos de melhoria — não no código em si, mas na gameplay do jogo. A partir dessa análise inicial, começamos a observar elementos que poderiam ser aprimorados para tornar a experiência mais interessante.

Com isso, passamos a gerar ideias sobre quais modificações poderíamos implementar, discutindo possibilidades e avaliando quais delas realmente contribuiriam para a evolução do projeto. As melhorias definidas pela equipe foram:

  • Troca de classe, adicionando personalização ao jogador;

  • Vilarejo para cura, onde o jogador pode recuperar vida e se preparar para os desafios seguintes;

  • Armadilha, criando novos obstáculos e aumentando o nível de estratégia da gameplay.

Após definirmos as modificações que seriam implementadas, começamos a aplicá-las diretamente no código. Iniciamos pela implementação do vilarejo, adicionando-o à pool de salas possíveis de serem sorteadas para o jogador durante a exploração.


Logo em seguida, criamos um evento específico para o vilarejo, permitindo que o jogador se cure enquanto explora. Dentro dessa sala especial, nenhum inimigo pode aparecer, garantindo um momento seguro de recuperação. Ao entrar no vilarejo, o jogador recebe 5 pontos de vida, fortalecendo-se antes de prosseguir para os próximos desafios. Por último, adicionamos a cor magenta como uma das opções de cor para texto, sendo utilizada em ocasiões de cura.

Depois da implementação do vilarejo, nós partimos para a criação da armadilha. Para isso, adicionamos o inimigo “trap” à pool de inimigos, permitindo que o evento de armadilha ocorra ocasionalmente durante a exploração. Em seguida, modificamos o evento de inimigos para garantir que ele não aconteça dentro dos vilarejos. Também implementamos a lógica da armadilha: caso ela seja acionada, o jogador sofre um dano fixo e não recebe recompensas. Caso contrário, o evento segue como uma batalha normal.


A implementação da troca de classes foi a mais difícil das três. Primeiro, modificamos o ícone original do jogador e adicionamos mais três ícones disponíveis, permitindo que o jogador obtenha uma nova classe durante a exploração. Dessa forma, ele passa a ter opções de escolha, podendo selecionar o ícone .

Depois, adicionamos um novo evento à pool de acontecimentos. Nesse evento, o jogador é oferecido a oportunidade de trocar de classe; ao escolher uma das três classes disponíveis, o ícone exibido no menu principal é automaticamente alterado para o da classe selecionada.

Para que o ícone do jogador pudesse ser modificado no menu principal, alteramos o que antes era um ícone estático para uma variável. Dessa forma, o ícone passou a ser dinâmico e, portanto, possível de ser alterado conforme a classe escolhida pelo jogador.

Por último, comentamos exaustivamente todo o código, documentando cada parte para facilitar a compreensão da estrutura e do funcionamento do projeto como um todo. 

Considerações Finais

O principal objetivo da atividade aqui documentada foi aprofundar nossos conhecimentos em relação ao conteúdo da disciplina, analisando cuidadosamente um código escrito pelo professor, discutindo seu funcionamento e compreendendo como ele se conectava aos conceitos apresentados em aula. Esse processo nos permitiu não apenas entender a lógica do projeto-base, mas também exercitar habilidades práticas de leitura, modificação e documentação de código.

Ao final do processo, conseguimos implementar com sucesso as três modificações propostas: o vilarejo de cura, a armadilha e o sistema de troca de classes, cada uma contribuindo para uma experiência de jogo mais divertida e dinâmica. Também realizamos a documentação detalhada do código e adaptamos trechos importantes para permitir maior flexibilidade no funcionamento do jogo. Esses resultados mostram que os objetivos iniciais foram alcançados de forma consistente.

Durante o desenvolvimento, buscamos sempre trabalhar de forma colaborativa, seja presencialmente ou on-line via Discord. Por isso, as dúvidas e dificuldades surgiram principalmente de maneira coletiva, e não de indivíduos isolados.

Por exemplo, na compreensão da lógica geral do código-base, tivemos dificuldade inicial para entender como os eventos eram organizados e como as salas eram sorteadas. Superamos essa etapa dividindo o código em partes menores e discutindo cada trecho em grupo, até que todos compreendessem claramente seu funcionamento.

Outra dificuldade foi na implementação do vilarejo, ao tentar integrá-lo sem gerar conflitos com os eventos de inimigos. Ajustando as condições responsáveis pelo funcionamento do vilarejo e realizando diversos testes, o que permitiu garantir sua funcionalidade de forma estável.

Mas, como dito na parte de desenvolvimento,  a implementação da troca de classe e de ícone foi a mais difícil, devido o sistema responsável pela HUD não inicialmente atualizar o ícone representando o personagem.

  • Ainda assim, o projeto apresenta algumas limitações. Algumas funcionalidades poderiam ser aprimoradas com mais tempo, como tornar os eventos mais variados,  ou expandir a escolha de classes com habilidades específicas. Além disso, certas partes do código poderiam ser reorganizadas para facilitar manutenção futura. Apesar disso, o desenvolvimento realizado representa uma melhoria em relação ao projeto original e reforça o aprendizado obtido ao longo da disciplina.
  • Referências

     Microsoft 1 - Documentação da linguagem C# - link: https://learn.microsoft.com/pt-br/dotnet/csharp/

    Microsoft 2 - Estrutura geral de um programa em C# - link: https://learn.microsoft.com/pt-br/dotnet/csharp/fundamentals/program-structure/

    Tutorials Point - C# Tutorial - link: https://www.tutorialspoint.com/csharp/index.htm

    Equipe

    João Vitor Campos

    Luiz Felipe Matos de Menezes 

    Penélope Lobato Mercadante  

    ...

    Professor

    Marcelo Dornbusch Lopes  - m4rc3lo

    Universidade do Vale do Itajaí - UNIVALI

    Maurício de Campos | Diretor Escola Politécnica

    Giorgio Gilwan | Coordenador do Curso de Design de Jogos

    Rafael Kojiio | Coordenador Gamelab UNIVALI

    * Projeto  desenvolvido como requisito parcial para obtenção de aprovação na disciplina de lógica de programação, curso de Design de Jogos.

    ** O conteúdo aqui tem direito reservado e pode conter inconsistências conceituais.

    Updated 1 day ago
    Published 8 days ago
    StatusPrototype
    CategoryOther
    AuthorsShinebillock, lipwyz, LobaDust

    Download

    Download
    TextRpgM3(V2).zip 303 kB
    Download
    TextRpgM3 - Executavel.zip 82 kB

    Leave a comment

    Log in with itch.io to leave a comment.