
Lógica de Programação M3
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.
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 |
| Status | Prototype |
| Category | Other |
| Authors | Shinebillock, lipwyz, LobaDust |




Leave a comment
Log in with itch.io to leave a comment.