M3 - PROGRAMAÇÃO APLICADA AVANÇADA (2024/1)
A downloadable game for Windows
1. Introdução
Esse Projeto será um Visual Novel, sobre ensinar história de Florianópolis com textos interativos, e está sendo desenvolvido na Engine "Ren´py" da disciplina "Programação Aplicada Avançada".
Programação Aplicada Avançada é uma disciplina superior ao anterior "Programação Aplicada", funciona parecido com o de antes, só que mais avançada, mais programação, Inteligência Artificial e Otimização. Em resumo: Funciona a maioria da programação de Software para criar apps, sites e jogos com a IA
Trabalho de Iniciação Científica (TIC) é uma atividade acadêmica desenvolvida por estudantes de graduação sob a orientação de um professor/orientador. Geralmente realizado ao longo de um ou dois semestres, o TIC introduze os estudantes no universo da pesquisa científica, proporcionando a oportunidade de aplicar conhecimentos teóricos em investigações práticas e experimentais. É como se fosse um Pré TCC e treino para TCC no final do Curso, a diferença é que esse TIC tem menos coisas do que o TCC.
Meus objetivos neste projeto é fazer o jogo simples de jogar e um pouco fácil de entender a história de Florianópolis
2. Desenvolvimento
No começo do semestre (2024/1), o Projeto foi desenvolvida no Godot (versão 4), onde ele tem recurso chamado "Dialogic", pode baixar tanto no site da Godot, quando no GitHub e era mais fácil organizar as falas, o momento que o personagem aparece ou sai da tela. Porque no Godot de Dialogic, tem dois tipos de editor de texto, um é "Visual Editor" e o "Text Editor"
Figura 1: Visual Editor no Godot 4
O Visual Editor permite que os desenvolvedores indie/iniciante saiba qual ícone, o título para colocar no diálogo.
Exemplo:
Image - (Nome do Backgroun) - Imagem do Background (PNG e JPG)
Character join (O personagem aparece)
Text - Character1 - Reaction: Normal
Oi, seja bem-vindo ao meu projeto
Character exit (O personagem desaparece)
Figura 2: Text Editor no Godot 4
O Text Editor é o oposto do Visual Editor só tem escrito, não tem ícone e tem que digitar, igual na maioria da programação na Engine que tem na indústria de games.
Observação: Vocês podem escolher um dos dois se quiser, não tem um certo.
Fiquei boa parte do tempo do semestre desenvolvendo esse jogo no Godot, até que decidi mudar de engine, de Godot para Ren'Py, porque no Godot, não tem muitos recursos de gênero Visual Novel, procurei no site oficial procurando outros recursos e não encontrei. E por causa disto mudei de Engine, pois na Ren'Py já vem programação pronta, save game, configurações, retroceder (voltar) para frase anterior e etc...
Figura 3: Interface
O que muda é programar o diálogo, personagens, cenários e transições. Isso ajuda muito para não ter que fazer toda a programação do zero.
Com a mudança de Engine de 3 semanas antes do prazo (27/06/2024), me dificultou ainda mais o meu tempo refazer o jogo em outras Engine.
2.1. Conceito
Esse projeto será um Visual Novel, que é um jogo de texto interativo, onde o jogador interage com os personagens através de texto e pode escolher decisões que muda o rumo dos personagens e do ambiente. Haverá um personagem que é um Professor Fictício (ou seja, não tem inspiração) será um boneco de palito (apenas um teste) e a jogabilidade do jogo é apenas diálogo e decisões.
Figura 4:
Resumindo: Um jogo de texto interativo com um personagem de palito contando história de uma cidade, com imagens de artefatos, lugares, povos e etc...
2.2. Programação
Ren'Py é uma engine de desenvolvimento de criação de jogos visual novels, tem duas linguagens de programação: Python (é o que eu estou utilizando) e o Cython (resumindo: é como se fosse o Python e C e a escrita é o mesmo, mas não é tão conhecido) . Idiomas que tem no RenPy: Português, Inglês, Espanhol, Japonês, Russo, Italiano, Alemão e etc... (tem muitos idiomas disponível). Para saber mais, é só ir no RenPy Launcher, clicar "Preference" e aparece as opções de idiomas.
Figura 5: Opções de Idiomas no Ren'Py Launcher
Figura 6: Print no Visual Studio Code com a programação de Ren'Py em Phyton
Neste print no Visual Studio Code, mostra um código em Python, sobre como funciona a linguagem em Python.
"define": é uma variável de mostrar quais personagens que vão aparecer e colocar a letra inicial do nome dos personagens declarados na variável.
"image": é parecido com "define", só que para imagem (como próprio nome diz) de personagens e cenários (dependendo que tipo de imagem é).
"label start": é como se fosse "Inicio", onde o jogo começa.
As letras iniciais do nome dos personagens dito no "define" devem colocar antes do "", como a fala. Isso é para aparecer as falas dos personagens e não a imagem dele.
"show": mostra o personagem e cenário da tela.
"hide": esconde o personagem e cenário da tela.
SOBRE PROGRAMAR DECISÕES: Tem duas formas de fazer
Opcão 1: Simples
menu:
"Sim":
e "Que bom!"
"Não":
e "Ninguém tem paciência comigo"
e "Tchau!"
Nesta Opção 1 não precisa colocar uma variável para declarar que isso é uma decisão. O "menu" é como se fosse "ESCOLHA" e depois pode fazer mais de 2 escolhas (dependendo da proposta do jogo).
Escolhi a opção 1, porque é mais fácil organizar os textos do que com a variável.
Opção 2: Pouco avançado
Figura 7: Print tirado do bloco de notas (não vai pro meu jogo)
Esse print mostra o mesmo processo da Opção 1 com variável, o "init phyton: " vai no inicio do código, na linha 1, depois digita "estaBem = False" é uma variável lógico, ou seja se é verdadeiro ou falso.
== é igual ao
= vai receber
if é Se em inglês
Else é Senão em inglês
2.3. Discussão dos Resultados
Discussão crítica do planejado e do executado. Deve apontar as limitações do trabalho.
No começo foi bom de trabalhar um projeto em duas disciplinas, sem se preocupar em dois jogos em cada uma da disciplina, com a Engine Godot escolhida no começo do semestre de 2024, com o passar do semestre, eu decidi fazer uma decisão não tão boa, antes da entrega da M3 e mudei de Engine para Ren'Py. Pois no Godot, não é para jogos de gênero Visual Novel em quesito de criação do gênero, não tem recursos ou vídeos de tutorial no Youtube e no site oficial.
O que tive de contornadas foi o tempo de desenvolvimento e o planejamento no semestre de 2024/1, isso me dificultou com essa decisão muito tarde perto do prazo, isso não quer dizer que eu fiz decisão errada ou planejei mal sobre onde eu vou iniciar o desenvolvimento, eu fiz mais pela experiência em desenvolver um jogo para duas Engines.
3. Conclusão
Deve retomar os objetivos e apontar o que foi concluído.
Como dito anteriormente sobre os meus objetivos que é deixar o jogo simples de jogar. Apenas um objetivos foi concluído que é a Gameplay.
O que foi concluído:
- Programação
- Personagens
- Jogabilidade
- Decisões
Foi boa experiência, saber o acerto e erro.
Obs: O jogo não está completo, no futuro atualizarei o jogo e não sei quando
Referências
[1] - Tutorial de Ren'Py;
[2] - Site oficial da Ren'Py;
[3] - Tutorial de Visual Novel no Godot 4
[4] - Dialogic-Godot no GitHub
Ficha completa da equipe:
Nome: Eduardo da Silveira Pereira - Acadêmico - Eduardo da Silveira Pereira
...
Marcelo Dornbusch Lopes - m4rc3lo
Universidade do Vale do Itajaí - UNIVALI
César Albenes Zeferino | 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 nas disciplinas:
(i) Programação Aplicada Avançada - Professor - Marcelo Dornbusch Lopes;
(ii) Trabalho de Iniciação Científica - Professor - Dennis Kerr Coelho;
(iii) Eduardo da Silveira Pereira -Eduardo da Silveira Pereira;
Status | Prototype |
Platforms | Windows |
Author | Eduardo da Silveira Pereira |
Genre | Visual Novel |
Install instructions
Executar em dois arquivos
FVN.exe - só clicar nele
FVN-1.0-pc.rar - clicar nele, extrair para qual pasta que escolher e depois clica ok