Proposta de trabalho

Tema: Dream BootCamp: Jogo estilo puzzle que envolve programação

Este TCC será o desenvolvimento de um jogo chamado Dream BootCamp.

História

Este jogo contará a história que cursa Ciência da Computação e que sonha em trabalhar numa empresa de software chamada CodeMakers. Para isso, ele deve se preparar para o processo seletivo dessa empresa, que consiste em resolver alguns desafios de programação que testarão a capacidade do candidato. Pensando nisso, o aluno entra num programa de preparação para esses tipos de entrevistas, chamado Dream BootCamp. Neste programa, o aluno irá aprender a resolver diversos tipos de desafios de programação, para que, no final disso tudo, ele se candidate a vaga de desenvolvedor de software na CodeMakers. Será que ele conseguirá a sua tão sonhada vaga?

Gameplay

A ideia principal deste jogo é permitir que o usuário consiga montar programas para resolver desafios de programação, usando comandos que representem bem conceitos básicos de lógica de programação, como condicionais, loops, etc. Para isso, o jogo será dividido em fases, onde cada fase terá um desafio, e em cada desafio, o usuário deverá usar os comandos disponíveis para montar um programa que resolva o problema em questão. Os desafios serão basicamente pegar os valores que virão no input, e levá-los da forma pedida para o output.

Um jogo que irei usar como base para o desenvolvimento é o Humam Resource Machine. O fluxo da gameplay e a interface serão bem parecidos com o desse jogo.

Objetivo do trabalho

Como o jogo será dividido em fases, eu pretendo fazer no mínimo umas 3 fases completas para esse jogo. Acho que é um número bom para poder exemplificar bem como funciona o jogo e mostrar o potencial dele pensando a longo prazo, caso o projeto seja continuado. Além das fases, é necessário desenvolver a tela inicial do jogo, um menu para o usuário escolher o save que ele quer usar, e o overworld do jogo, que conterá todas as fases disponíveis para o usuário escolher.

No final das contas, este trabalho será uma demo do meu jogo basicamente.

Intuito do trabalho

Meu objetivo com o este trabalho é conseguir desenvolver um jogo, usando os conhecimentos que adquiri durante a minha graduação relacionados a desenvolvimento de software. Apesar do processo de desenvolver um jogo ter as suas complicações a parte, ele não deixa de valorizar boas práticas de desenvolvimento de software no geral, que serão necessárias e deverão ser usadas neste trabalho. Um código bem organizado e limpo será essencial para decidir o quão bom o jogo poderá ser, e o quão fácil será fazê-lo.

Além de conhecimentos relacionados a desenvolvimento de software, também pretendo usar métodos ágeis para organizar as tarefas que precisarei fazer e medir os meus avanços nessas tarefas num certo período de tempo. Isso também foi ensinado durante a minha graduação, além de ser um ponto exigido e bastante usado em ambientes profissionais na área de desenvolvimento de software.

É importante citar que este jogo será feito pensando apenas no entretenimento do jogador. Apesar dele ter o potencial de ajudar as pessoas a entender conceitos de programação de uma forma mais lúdica, este não será o meu foco durante o desenvolvimento do jogo, e nem no meu trabalho escrito. Seria necessário fazer um estudo de como este jogo impactaria postivamente no aprendizado das pessoas, o que geraria um trabalho grande, e que não é o meu foco no momento (apesar de ser um tópico interessante). Talvez eu tente abordar este assunto de alguma forma no trabalho escrito, mas sem dar um grande destaque.

Cronograma

Até o momento, dediquei o meu tempo para pensar bem no game design. Queria entender bem como o meu jogo seria, e encontrar outros jogos ou projetos que pudessem me dar uma base no meu trabalho. Então após um tempo de pesquisa, consegui fechar o game design, o que gerou a ideia do jogo explicada nos tópicos acima. Todo o meu processo de pesquisa está documentado numa página do Notion pessoal, para conseguir lembrar dos motivos que me fizeram tomar as decisões que tomei para o design desse jogo. Lá também está o GDD (Game Design Document) para este jogo, que servirá como guia durante o processo de desenvolvimento. Claro que, dependendo de como as coisas forem andando, alguns pontos do design podem mudar, mas a ideia é não sair muito do que já está decidido.

Daqui pra frente, o meu foco será em começar de fato o desenvolvimento do jogo. Pretendo usar o Unity como ferramenta principal. Minhas tarefas iniciais serão entender como desenvolver os conceitos necessários para o meu jogo no Unity. Como mencionei antes, pretendo usar de métodos ágeis para organizar essas tarefas, e colocar alguns prazos para elas.

Também pretendo ir fazendo o meu trabalho escrito juntamente com o desenvolvimento do jogo. Acho que já é possível começar a escrever sobre o processo para a criação da ideia do jogo, tendo em vista que o game design está pronto (mesmo que sujeito a mudanças). Como o processo de desenvolvimento também precisa ser documentado no trabalho, escrever sobre isso durante esse processo seria essencial.

Além disso, tento manter reuniões semanais com o meu professor coordenador, para que ele fique a par da situação atual do projeto. Essas reuniões também ajudarão a decidir os próximos passos e me auxiliar em possíveis problemas que poderei ter durante o processo de desenvolvimento.