Game Developer Diaries – Labirinto: Game Design Document

Hoje vou mostrar uma espécie de “mini-game-design-document” e apresentar o jogo que estou trabalhando. Resolvi usar um modelo de pergunta/resposta para ficar mais claro oquê eu planejo para este jogo e para que o leitor possa entender como foi o processo criativo. No próximo post relatarei o estado atual de desenvolvimento e as dificultades de implementação (tanto do ponto de vista da arte quanto da programação) que tive até agora.
Qual o nome do jogo? Labirinto (nome provisório)

Qual o estilo do jogo?
RPG para um jogador mimetizando a jogabilidade características de RPGs online. Usarei como referência o modo offline de Phantasy Star online, com a diferença que as “dungeons” serão labirintos tridimensionais visualizados em primeira pessoa (de forma similar à Phantasy Star, do Master System). O sistema de batalha será por turnos.

Quais recursos gráficos serão nescessários?
Gráficos 2D para representar as paredes dos labirintos, os inimigos, os personagens do jogador atacando, menus e NPCs. Alguns desses gráficos serão gerados em 3D e depois renderizados em uma imagem bidimensional.

Como vai ser o estilo gráfico? Inicialmente, nesta versão de demonstração, usarei gráficos reaproveitados de outros jogos (como os labirintos de Phantasy Star), mas, para a versão final, os gráficos serão confeccionados especialmente para o jogo. O estilo terá como inspiração o futuro e a era espacial, como na série Phantasy Star , em Xenosaga, ou Mass Effect . Tudo isso com influências fortes do traço do Mangá e inspirado por culturas antigas do nosso planeta (como a cultura Bizantina, a cultura Asteca, o Egito e a Roma Antiga, por exemplo).

Quais ferramentas serão usadas no desenvolvimento do jogo? Usarei a engine RenPy baseada em python e desenvolvida para a criação de romances visuais e jogos similares aos jogos de namoro japoneses como Sentimental Grafitti, Tokimeki Memorial ou Sakura Taisen. Escolhi essa engine devido à facilidade de seu aprendizado e por simplificar muito a exibição de imagens na tela. Meu conhecimento de programação ainda é pequeno mas, por outro lado, usar ferramentas de desenvolvimento rápido com interface visual (como RPG Maker ou GameMaker ) não era uma opção interessante porque estes programas acabam limitando muito oquê pode ser feito, além de serem relativamente complexos e tomarem um tempo para se aprender coisas muito básicas. Ou seja, muito trabalho para pouco resultado. O RenPy tem um tutorial suficientemente detalhado e, apesar de ter sido feito para diminuir ao máximo a quantidade de programação, me dá liberdade de criar projetos tão complexos quanto eu achar nescessário. Um conhecimento relativamente básico de Python já serve para aumentar sensivelmente a complexidade de um programa criado usando RenPy.

Oque o jogador irá controlar? O personagem principal. Inicialmente haverá apenas um personagem “default” que não poderá ser modificado, contudo, a idéia é que o jogador possa construir seu próprio personagem e definir sua classe. A opção de criação de personagem vai ser implementada assim que o modo de jogo principal estiver em pleno funcionamento. Na maioria do tempo o personagem do jogador não poderá ser visto, mas haverão animações na hora da batalha, bem como um retrato do personagem. O personagem poderá ser de uma dentre estas quatro raças distintas: os Humanos, os Mecha (uma civilização de robôs com inspiração no egito antigo), os Felis (uma raça de humanóides com traços felinos, mais especificamente, parecidos com leões) e os Hidro (uma raça de belos seres longevos e aquáticos com características de moluscos e plantas, além de afinidade com magia). Também será possível escolher dentre uma destas classes: Strider (uma classe de guerreiros fortes que utilizam espadas, escudos e machados), Ranger (guerreiros especializados no uso de armas de fogo e no controle de familiares), Cosmologist (dominadores da matéria, uma espécie de mago), Medic (guerreiros ágeis e velozes capazes de ataques certeiros, além de dominarem algumas técnicas de cura).

Como será a jogabilidade? O jogador cria seu personagem. Logo após é contada uma breve história introdutória. Em seguida o jogador pode, através de um mapa, selecionar pontos na cidade para visitar lojas, sua própria casa (onde será possível dormir, armazenar itens e salvar, além de outras opções), espaço-porto, terminal de monorail, saída da cidade, hospital,casas de NPCs e a Agência. Inicialmente, nem todas as áreas estarão acessíveis. Na agência o jogador poderá aceitar missões. Ao selecionar uma missão é apresentado um resumo, nome do cliente, taxa de inscrição (quando aplicável), dificuldade e valor da recompensa. Caso o personagem preencha os requisitos e aceite a missão, um briefing detalhado é apresentado pelo atendente ou pelo contratante. Informações-chave nescessárias para o cumprimento do desafio ficam armazenadas no diário do jogador. Após o briefing, o jogador deve se dirigir ao local indicado e iniciar a exploração, ele pode, se assim desejar, recrutar membros para ajudá-lo. Os cenários onde a exploração ocorre serão labirintos percorridos com visualização em primeira-pessoa onde ocorrerão batalhas aleatórias com monstros e, dependendo do desafio, um ou mais chefes. O sistema de batalha (á ser criado) será por turnos. O jogador pode contar com o auxílio de um mapa no canto da tela caso este tenha sido fornecido, caso contrário, o sistema de mapeamento cria um conforme o jogador explora. Caso o jogador seja derrotado em batalha ele é resgatado e acorda no hospital com sua energia e Pontos de Quantum recuperados. Ao cumprir o objetivo de uma missão, o jogador deve regressar à Agência e recolher sua recompensa.

Por enqüanto é isso. O detalhamento específico de cada aspecto da jogabilidade será detalhado de acordo com a implementação. Sugestões, opiniões e críticas são bem-vindas. Até o próximo post!

O URI para Trackback deste artigo é: http://neilcollins.wordpress.com/2008/06/20/game-developer-diaries-labirinto-game-design-document/trackback/

Feed RSS dos comentários deste post

Um Comentário Leave a comment.

  1. Atualiza essa pôra! Queremos ver código! Queremos ver screenshots!


Leave a Comment