Bquest:Fase 0

De BCC Wiki

Tabela de conteúdo

Integrantes

Nome Número USP
Carlos Eduardo Moreira Santos          3313220
Fabricio de Sousa Nascimento   5714801
Rodolfo Lopes Castanheira   5639738

Algumas Considerações

Nesta primeira fase ainda há um conceito muito vago sobre nosso jogo, sabemos apenas algumas características básicas. Desta forma, o conteúdo deste trabalho é também vago. O manual do desenvolvedor, assim como a organização do software, tem como objetivo servir como prévia de nossas idéias com relação ao programa, e pouco em seu conteúdo é definitivo. Já o manual do usuário, que serve para descrever o funcionamento do jogo é mais conciso, embora acreditamos que ele só fará sentido com o programa pronto e não que servirá de base para desenvolvermos o mesmo. Feita essas considerações, segue a fase zero do Bcc's Quest. Divirtam-se ^.^.

Manual do Usuário

Introdução

Você é um bixo, calouro do IME e precisa realizar suas primeiras tarefas na faculdade. Seu objetivo é completar todas elas antes que seu tempo e/ou energia se esgotem.

Instalação

Requisitos

Programas e bibliotecas que precisam estar instalados para compilar e executar o jogo com sucesso.

Compilando

Descrição das opções para o ./configure e/ou Makefile.

Apresentação da Tela

Parte Superior

Você sempre terá a disposição as seguintes informações úteis:

  • Energia: esta é a sua energia, não deixe chegar a zero ou você perderá o jogo.
  • Tempo restante: se ele se esgotar e todas as tarefas não tiverem sido completadas, você perdeu.

Dependendo da tarefa, outros itens poderão surgir:

  • Humor: indica o humor da(s) pessoa(s) com quem você está interagindo.

Parte Inferior

  • Botão Play: aperte para executar seu circuito lógico e ver o personagem executar o que lhe foi programado.

Modo de Programação

Neste modo você definirá as ações do personagem dentro de cada cenário. À esquerda temos ações (como falas de outros personagens) e percepções (como o humor das outras pessoas) e, à direita, as suas reações.

Jogando

Teclas

Modo Cenário

Os movimentos são realizados através dos botões direcionais do tecleado. A tecla enter aciona o play ou, na tela do mapa, entra no cenário sobre o qual está seu personagem.

Modo Programação

Use os direcionais para cima e para baixo a fim de escolher o item desejado. Aperte espaço para selecioná-lo ou desmarcá-lo e repita a operação para todos os ítens escolhidos por você. Em seguida escolha o conectivo lógico:

Operações Lógicas
Operador Tecla
AND A
NAND N
XOR X
OR O
XNOR R

Atenção

  • Se sua energia estiver acabando, você corre o sério risco de cair em sono profundo e não conseguir completar suas tarefas! É preciso que você vá até uma das máquinas de café do IME e recarregue seu pique!
  • Cuidado com o tempo e com aquelas pessoas que consomem o seu. Até mesmo professores podem te alugar para conversar ou pedir favores pessoais.

Programação

Ao clicar em uma pessoa, você pode associar a coluna da esquerda com a da direita (ver em "Apresentação da Tela - Modo de Programação") e então executar play para ver se obterá sucesso em seu diálogo. Caso contrário você poderá tentar novamente. Mas cuidado: seu tempo restante está diminuindo!

Mapa

Você pode escolher em qual lugar ir, na ordem em que quiser, porém algumas tarefas não poderão ser concluídas caso você não tenha passado por determinadas outras.

Manual do Desenvolvedor

Introdução

O Manual do Desenvolvedor tem por objetivo servir como fonte de informação anexa ao programa, fornecendo uma visão geral sobre a organização do código bem como descrever as ferramentas utilizadas no desenvolvimento do mesmo.

Ferramentas

Cmake

O CMake, desenvolvido pela Kitware, é um sistema de controle de compilação, multi-plataforma e código-aberto. O CMake oferece uma alternativa mais fácil e produtiva as "auto-tools (autoconf, automake, autoheader). Além disso, é interessante notar que o CMake foi escolhido como a ferramenta de build oficial para a nova versão do projeto KDE. Por motivos didádicos, o cmake será adotado em nosso projeto como principal ferramente de compilação e automatização de testes.

Subversion

O Subversion é uma ferramenta open source para controle de versão de software. O projeto do Subversion iniciou em 2000 com a idéia de se construir um CVS melhor. Desde então, o Subversion tem alcançado cada vez mais sucesso e vem substituindo o CVS como padrão de fato para controle de versão. Na rede linux, existe disponível aos usuários um serviço de svn, onde, temporariamente (até que seja definido pelo professor da matéria) ficará nosso projeto. O endereço é:

 svn://shell.linux.ime.usp.br/fabsn/labprog

Documentação no código

Parte da documentação será composta de comentários existentes no próprio codigo. Cada módulo e biblioteca do jogo conterá uma descrição de como funciona e o que faz. Além disso, cada função deverá conter em seu início uma descrição dos argumentos que ela recebe e o que ela faz. O mesmo vale para as estruturas de dados. Essas informações serão compiladas em um manual do desenvolvedor junto com uma visão geral de como o programa funciona e de como os módulos interagem entre si. A documentação específica de cada módulo/biblioteca deverá ser criada/atualizada pelo próprio programador enquanto cria/modifica o código, de forma que ela esteja sempre consistente e atualizada.

Haverá também comentários dentro das funções, mas estes ficarão apenas no código fonte.

Organização do Software

A idéia inicial resume-se no uso do Pattern MVC (Model,View e Controller) e o uso de listenners e/ou observers. Entretanto, não conseguimos ainda enchergar o modo como esses patterns se encaixam em uma linguagem de desenvolvimento não orientada a objetos. Deste modo, adiamos a discussão de como implementar o jogo, já que, consideramos que agora na fase 0 ainda temos pouca informação para determinar a estrutura do programa. Há apenas um esboço que segue a idéia do uso de bibliotecas.

Esboço da Estrutura

  • game: Núcleo, guarda o int main()
    • libAbool.so: biblioteca de funçoes de algebra booleana
    • libController.so: Interpreta os Eventos de Teclado em Ações
      • libJogo.so: Biblioteca ÚNICA de modificacao da estrutura de dados
    • libView.so: Abstrai acesso a interface gráfica
      • libGRAFICA.so(Biblioteca Gráfica, GTK,QT e etc)
    • libIO.so: Abstrai o acesso a disco.

Telas do Jogo

Estes esboços tem como objetivo fornecer uma idéia de como será feita a ambientação do jogo, informações como número de vidas, energia, inventário de itens e outros serão adicionadas a posteriori. Ainda não foi decidido se a barra de energia da personagem estará em algum canto da tela (em cima como descrito no manual do usuário) ou se de algum modo a personagem (através da cor e/ou forma) irá indicar sua energia. Alguns movéis ainda estão em processo de desenvolvimento, e por isso se apresentam como uma figura geométrica, e seu respectivo nome.

Imagens

Logo.png
Bedroom.png Classe.png
Loadsave.png Mind.png
Vivencia.png

Funcionalidades Extras

  • Música
  • Efeitos sonoros
  • Voz
  • Imagens fotografadas
  • Salvar/Carregar
  • Tutorial

Modelagem Física/Biológica do Cadu

fr1fr2lf1lf2bk1bk2rt1rt2
Cadu fr1.gif Cadu fr2.gifCadu lf1.gif Cadu lf2.gifCadu bk1.gifCadu bk2.gif Cadu rt1.gifCadu rt2.gif

Cadu, nosso personagem principal, se move nas quatro direções básicas, apresentando uma intercalação entre as imagens 1 e 2 da determinada direção a medida em que se move.

Ferramentas pessoais