Upload
andrey-alvarenga-duarte
View
270
Download
2
Embed Size (px)
DESCRIPTION
Trabalho de conclusão de curso para o curso técnico de Tecnologia da Informação do SENAI. O projeto é um jogo desenvolvido com RPG Maker VX e PHP.
Citation preview
SERVIÇO NACIONAL DE APRENDIZAGEM
ESPÍRITO SANTO
THE CAVE CRAWLER
ANDREY ALVARENGA DUARTE
MONOGRAFIA DE CONCLUSÃO DO CURSO DE INFORMÁTICA
Orientador(a): Thalison Jânio Pelegrini
Vitória, 15 de junho de 2015.
ANDREY ALVARENGA DUARTE
THE CAVE CRAWLER
Trabalho de conclusão de curso apresentado como parte das atividades para obtenção do título de técnico, do curso de Informática do Serviço nacional de aprendizagem do Espírito Santo.
Prof orientador: Thalison Jânio Pelegrini
Vitória, 2015
Errata
Folha Linha Onde se lê Leia-se
Autoria: Andrey Alvarenga DuarteTítulo: The Cave Crawler
Trabalho de conclusão de curso apresentado como parte das atividades para obtenção do título de técnico, do curso de Informática do Serviço nacional de aprendizagem do Espírito Santo.
Os componentes da banca de avaliação, abaixo listados, consideram este trabalho aprovado.
Nome Titulação Assinatura Instituição
1
2
3
Data da aprovação: ____ de _____________________ de ________.
Dedico esse trabalho a todos os grandes
amigos que me ajudaram com ideias e
sugestões e a todos os incríveis jogos que
criaram minha paixão por progamar.
Agradecimentos
Agradeço a todos que me auxiliaram no
desenvolvimento e escrita desse trabalho,
nada disso seria possível sem eles.
Agradecimentos especiais:
Ao meu orientador, Thalison.
Ao Igor, que me ajudou sempre que pode.
Ao João Vitor e ao João Pedro, que jogaram
mais horas do que qualquer um em busca de
erros.
E ao meu pai, por criar em mim a curiosidade
por informática.
Now go and do not falter, my child!
Hero's Shade- The Legend of Zelda
ResumoO TheCaveCrawler consiste em um projeto para a criação de um jogo de RPG homônimo
que utiliza programação web e desktop. O segundo objetivo do projeto é a criação de umapágina para o jogo que possui funcionalidades como cadastro de usuários, notícias, rankings eoutros. É importante ressaltar que estes objetivos devem ser cumpridos dentro do tempo limitede entrega e com o menor custo possível.
As ferramentas utilizadas são o RPG Maker, uma ferramenta baseada em Ruby, para odesenvolvimento do jogo e PHP para a interação entre jogo-servidor e programação para apágina web.
O jogo consiste em um RPG clássico de “Dungeon Crawling”, gênero caracterizado pelouso de um personagem customizável que explora uma masmorra ou algum local perigoso embusca de tesouros. Neste gênero é comum o uso de “Permadeath”, uma regra de jogo que fazcom que o personagem utilizado possua apenas uma chance o que faz com que o jogadorprecise criar um novo personagem a cada vez que seja derrotado, criando um grande potencialde repetição. Com isso em mente, o jogo é baseado na competição entre os jogadores, que temsuas pontuações obtidas a cada jogo comparadas e colocadas em um ranking que pode seracessado através da página do jogo.
Palavras-chave: jogo, Ruby, RGSS, RPG, TheCaveCrawler.
AbstractThe TheCaveCrawler project consists in the creation of an homonyme eletronic RPG
game that utilizes Web and Desktop programing. The second objective of it is the creation ofa webpage about the game that has some funcionalitites like User Signup, Rankings, News,etc. It’s important to mention that these objectives must be achieved within the deadline and atthe lowest possible price.
The used tools are: RPG maker, a game engine that uses Ruby. PHP for client-serverinteration and web programing.
The game consists in a classic “Dungeon Crawler” RPG, a genre that is characterized bycostumized characters exploring dungeons or other dangerous places in a search for treasures.In that genre, a common rule is “PermaDeath”, it states that if a character dies, it ispermanently dead and the player must create another one starting the game again, that kind orule creates a great replay potential for the game. With that in mind, the game will be based inthe competition between players, who will have their scores compared in the end of eachcharacters life. These scores will be posted on a Ranking in the game webpage.
Keywords: game, Ruby, RPG, TheCaveCrawler.
Lista de abreviaturas e siglas ● RPG: Role Playing Game
● RPGMK: RPG Maker
Sumário
1 Game Design e Requisitos...................................................................................11
1.1 Conceitos básicos do jogo.............................................................................................11
1.1.1 Requisitos para a Jogabilidade...............................................................................................11
1.1.2 Decisão do gênero do jogo......................................................................................................11
1.1.3 Criação do enredo.................................................................................................................... 12
1.2 Ferramentas e Funcionalidades requeridas...................................................................12
1.2.1 Funcionalidades requeridas....................................................................................................12
1.2.2 Escolha das ferramentas..........................................................................................................13
2 Desenvolvendo o jogo..........................................................................................14
2.1 RPG Maker....................................................................................................................14
2.2 A criação do jogo e suas etapas....................................................................................14
2.3 Criação do Conteúdo de Personagem...........................................................................14
2.3.1 Criando Classes de personagem.............................................................................................15
2.3.2 Criando Habilidades................................................................................................................. 15
2.3.3 Criação de itens........................................................................................................................ 16
2.4 Criação de adversários e seus conteúdos.....................................................................19
2.4.1 Monstros comuns..................................................................................................................... 19
2.4.2 Chefes........................................................................................................................................ 20
2.5 Criação de mapas..........................................................................................................22
2.5.1 Estrutura dos andares..............................................................................................................23
2.5.2 Eventos...................................................................................................................................... 24
2.6 Funcionalidades de apoio..............................................................................................25
2.6.1 Webkit........................................................................................................................................ 25
2.6.2 Diagramas de caso de uso.......................................................................................................26
2.7 Implementação do enredo e Polimento.........................................................................31
3 Desenvolvendo o Banco de Dados.....................................................................33
4 Desenvolvendo o Site...........................................................................................34
4.1 Levantando Requisitos..................................................................................................34
4.2 Desenvolvimento de Funcionalidades............................................................................34
4.2.1 Casos de Uso das Funcionalidades........................................................................................34
4.3 Design do layout............................................................................................................36
4.4 Hospedagem.................................................................................................................37
5 Considerações finais............................................................................................38
IntroduçãoEste projeto pretende mostrar que é possível para o desenvolvedor iniciante e
independente criar jogos sem grandes custos e conhecimentos avançados através de
ferramentas simples e de fácil acesso. Para isso, misturamos os conhecimentos de
programação Desktop, através do RGSS, com programação Web, através do PHP. O projeto
se inspira em jogos indies da atualidade e utiliza conceitos dos antigos jogos RPG.
No contexto atual do desenvolvimento de jogos a criatividade e inovação são fatores
muito importantes para o sucesso de um jogo, mas ao mesmo tempo vem crescendo a
aceitação de jogos com temáticas retrô, onde velhos conceitos como o RPG e o Dungeon
Crawling são revisitados e misturados com novas tecnologias.
Sendo assim, o projeto visa explorar as formas de desenvolvimento de jogos
independentes através da criação de um jogo que se utilize dessas tendências para obter uma
ideia do funcionamento dessa industria e dos bastidores do desenvolvimento de um jogo.
Para alcançar os objetivos traçados é preciso encontrar formas de facilitar o
desenvolvimento sem que haja necessidade de grandes gastos ou conhecimento em
desenvolvimento de jogos obtendo a maior quantidade de dados sobre as fases e as
dificuldades de planejar, desenvolver e publicar um jogo.
11
1 Game Design e Requisitos
1.1 Conceitos básicos do jogo
Inicialmente é preciso definir como é o jogo em sua essência, quais são seus objetivos, de
que forma é jogado, de que forma os jogadores são atraídos à jogar, qual é o enredo e coisas
do tipo. Tudo isso para maximizar o tempo de jogo dos jogadores e popularidade do jogo,
características extremamente necessárias para o sucesso de jogos desenvolvidos de forma
independente.
1.1.1 Requisitos para a Jogabilidade
A escolha da forma como o jogo é jogado é feito com base em alguns requísitos.
O jogo deve possuir:
1) Jogabilidade simples de ser aprendida, possibilitando que tanto jogadores
iniciantes quanto jogadores experientes possam jogá-lo sem dificuldade;
2) Grande potencial de replay, tornando possível aproveitar ao máximo o
conteúdo criado na fase de desenvolvimento, já que o tempo disponível para tal é
curto.
3) Competitividade entre jogadores, fazendo com que o jogo se espalhe por
grupos de amigos.
4) Um nível de dificuldade razoável, aumentando ainda mais o tempo de jogo e a
competitividade.
A decisão de utilizar tais requísitos veio do estudo de jogos de sucesso na atualidade,
como os jogos para plataforma portátil que prezam pela simplicidade e jogos competitivos
que motivam o jogador a jogar novamente por melhores pontuações e posições de ranking.
1.1.2 Decisão do gênero do jogo
Tendo em mente os requisitos levantados para a jogabilidade, o gênero de jogo escolhido
é o RPG, devido à características como:
● Customização/Evolução de personagem – Contibui para o replay do jogo, permite que
o jogador um personagem diferente toda vez que jogue.
● Combates por turno – Aumenta a simplicidade, já que o combate ocorre através de
comandos simples. Além disso é mais simples de ser codificado, deixando disponível
mais tempo para a criação de conteúdo.
12
● Grande quantidade de itens – Faz com que jogadores busquem por itens escondidos ou
raros, aumentando o tempo de jogo e motiva o jogador a subir de nível para poder obter
itens mais fortes.
1.1.3 Criação do enredo
Devido à escolha do gênero de jogo, torna-se necessário criar um enredo que justifique a
a trajetória do jogador. A história deve ser algo que faça referência à busca por melhores
pontuações e a necessidade de subir posições, e assim surge a ideia de utilizar como foco da
história um personagem que sobe uma torre repleta de armadilhas e monstros em busca de um
suposto tesouro escondido no topo.
1.2 Ferramentas e Funcionalidades requeridas
Após a criação do conceito básico, é necessário verificar quais são as ferramentas e os
sistemas requeridos para tornar possível o jogo planejado.
1.2.1 Funcionalidades requeridas
As principais funcionalidades para a execução do projeto estão divididas em três grupos,
que são:
a) Grupo 1 – Jogo
● Possibilitar o envio das pontuações dos jogadores.
● Combates em turnos.
● Mapas gerados de forma procedural.
● Login de usuário para armazenamento de pontuações em contas.
b) Grupo 2 – Banco de dados
● Armazenamento de contas e pontuações para compração.
c) Grupo 3 – Site
● Cadastro de usuários para armazenamento de pontuações.
● Exibir ranking de pontuações.
● Download do jogo.
13
1.2.2 Escolha das ferramentas
Tendo em mente as funcionalides requeridas pelo projeto, as ferramentas são escolhidas
com base em três características:
a) Facilidade de uso
b) Adequação ao projeto
c) Preço
Dessa forma foram escolhidas as seguintes ferramentas:
● Jogo:
◦ RPG Maker VX ACE (Criação do conteúdo, mapas e combate).
◦ RGSS WebKit (Para interação do RPGMK com o HTML).
◦ PHP (Interação do HTML com o Banco de dados).
◦ RUBY (Programação dentro do RPGMK).
● Banco de dados:
◦ MySQL Workbench (Projetar o banco de dados).
◦ PHPMyAdmin (Administrar o banco de dados).
● Site:
◦ Notepad++ (Codificar HTML, Javascript e PHP).
14
2 Desenvolvendo o jogoApós o planejamento e o levantamento de requisitos é preciso iniciar o desenvolvimento
do jogo. Para isso vamos utilizar o RPG Maker VX ACE.
2.1 RPG Maker
O RPG Maker é uma ferramenta que possibilita a criação de jogos com temática RPG, ele
possui uma grande biblioteca de sprites e tilesets para criação de mapas, itens, classes e
personagens. Além disso, possibilita que sejam criados tanto jogos simples, com pouca
programação, como jogos complexos. com muita programação. Essa programação é feita em
uma linguagem própria chamada RGSS, baseada em Ruby.
Por ser uma ferramenta simples e barata é ideal para o uso no projeto.
2.2 A criação do jogo e suas etapas
Por possuir vários sistemas e grande quantidade de conteúdo, o ideal para o
desenvolvimento de um jogo é dividí-lo em partes. No caso do TheCaveCrawler, a divisão de
etapas é feita da seguinte forma:
1) Criação do Conteúdo de personagem.
2) Criação de Itens.
3) Criação de Adversários e seus conteúdos.
4) Criação de mapas.
5) Funcionalidades de apoio.
6) Implementação do enredo e polimento.
A cada etapa é preciso que sejam executados testes, para evitar o surgimento de bugs que
atrapalhem o jogo.
2.3 Criação do Conteúdo de Personagem
Nesta fase é iniciado o projeto e inicialmente o desenvolvimento se resume a definir as
possíveis escolhas que o jogador pode tomar em relação ao seu personagem. As características
clássica de um personagem de RPG são:
● Classe (Cavaleiro, Bruxo, Ladrão, etc..)
● Atributos (Força, inteligência, agilidade, etc...)
● Habilidades (Curar, Usar magia, etc...)
15
No sistema do RPG Maker existe um modelo padrão para a criação de personagens. Neste
modelo, cada personagem possui no mínimo:
● Uma classe.
● Oito atributos (Vida, Pontos de Magia, Agilidade, Ataque, Ataque mágico, Sorte
Inteligência, Defesa e Defesa mágica).
E essa é a base da criação de personagens, sendo que os atributos e habilidades estarão
vinculados à classe.
2.3.1 Criando Classes de personagem
As classes de personagem são baseadas em três arquétipo de personagens de RPG. Nestes
jogos é comum existir o personagem que é treinado em combate corpo-a-corpo, o personagem
inteligente treinado em magia e o personagem rápido que utiliza subterfúgios para superar
obstáculos. Sendo assim, as três opções de classes são: Cavaleiro, Bruxo e Ladino.
Atributos principais de cada classe:
● Cavaleiro: Vida, Ataque e Defesa.
● Bruxo: Pontos de magia, Ataque mágico e Defesa mágica.
● Ladino: Agilidade, Sorte e Inteligência.
Outra decisão em relação às classes é que o ladino, por ser um personagem ágil, não
pode usar escudos, mas para compensar, este pode equipar duas armas ao mesmo tempo.
2.3.2 Criando Habilidades
Para que cada classe possúa uma jogabilidade única é preciso que possuam habilidades
que as diferenciem umas das outras, assim, a forma como são criadas as habilidades são de
extrema importância. Outro ponto importante que deve ser observado ao serem criadas as
habilidades é a recompensa por nível que o jogador avança, quando o jogador recebe ao
menos uma habilidade nova por nível é comum que este se sinta mais motivado a avançar no
jogo, em busca de novas habilidades e melhorias do personagem. Com isso em mente, cada
classe possui uma habilidade nova a cada nível até nível 3 (nível médio em que o jogador
atinge o chefe final).
2.3.2.1 Cavaleiro
O conjunto de habilidades do cavaleiro é planejado para que ele possa melhorar a sua
habilidade de luta com ataques simples, que é o seu ponto forte. Além disso, essa dá a ele uma
16
possibilidade de cura e aumento na defesa, permitindo a ele sobreviver a ataques de inimigos
mais fortes.
● Habilidades:
• Recuo Estratégico: Permite ao personagem recuar e recuperar vida.
• Postura Agressiva: Aumenta o ataque mas diminui a defesa.
• Postura Defensiva: Aumenta a defesa mas diminui o ataque.
2.3.2.2 Bruxo
O conjunto de habilidades do bruxo dá a ele a maior quantidade de dano de todas as
classes, porém antes de conseguir a segunda habilidade o bruxo é o personagem mais frágil de
todos.
● Habilidades:
• Míssil mágico: Conjura um míssil de magia que causa dano.
• Barreira mágica: Cria uma proteção em volta do mago, aumenta a defesa.
• Lançar Chamas!: O Mago lança chamas pelas mãos e causa dano de fogo a
todos os inimigos.
2.3.2.3 Ladino
O conjunto de habilidades do ladino dá a ele formas de sobreviver aos perigos como
inimigos e armadilhas. No nível 3 o ladino recebe uma habilidade de combate, tornando
possível que ele derrote inimigos fortes em conjunto com sua habilidade de esconder.
● Habilidades:
• Esconder: Aumenta a defesa e diminui a chance de acerto dos inimigos.
• Detectar armadilhas: Dá 50% de chance do ladino perceber armadilhas no
mapa antes de ativá-las.
• Ataque rápido: Ataca duas vezes rapidamente.
2.3.3 Criação de itens
Os itens do jogo são divididos em 3 tipos:
● Consumíveis – Itens que são gastos aos serem usados.
● Armas – Itens equipáveis para melhorar a Ataque ou Ataque mágico.
● Armaduras - Itens equipáveis para melhorar a Defesa ou Defesa mágica.
17
2.3.3.1 Consumíveis
Os consumíveis são itens que ao serem usados são gastos, entre eles estão as poções de
cura e ponto de magia, que são extremamente importantes para a sobrevivência do jogador.
Além das poções existem também os tomos, estes são ótimos para aumentar a customização
dos personagens, dando a eles habilidades diferentes:
• Poção – Recupera a vida do jogador.
• Elixir – Recupera os pontos de magia.
• Tomo do Ladino - Ensina a habilidade “Esconder” ao personagem. Caso ele já
conheça essa habilidade, melhora ela.
• Tomo do Bruxo - Ensina a habilidade “Míssil mágico” ao personagem. Caso ele já
conheça essa habilidade, melhora ela.
• Tomo do Cavaleiro - Ensina a habilidade “Postura defensiva” para magos e “Postura
agressiva” para ladinos. Caso seja um cavaleiro, ensina a habilidade “Fúria”.
2.3.3.2 Armas
Foram criadas várias armas para possibilitar a customização dos personagens.
18
• Adaga – Arma inicial do ladino.
• Espada longa
• Cajado – Arma inicial do Bruxo.
• Arco e flecha
• Espada Curta - Arma inicial do Cavaleiro.
• Florete
• Bola de cristal
2.3.3.3 Equipamentos
Os equipamentos foram divididos em três tipos: Armadura de corpo, Escudo e
Acessórios.
As armaduras em ordem crescente de defesa são:
• Roupas de viagem – Armadura inicial de todas as classes.
• Armadura de couro
• Meia armadura de placas
• Armadura de placas
Os escudos em ordem crescente de defesa são:
• Escudo de braço – Um escudo leve.
• Escudo médio – Um escudo mais pesado.
Os acessórios são equipamentos muito importantes para a costumização do personagem
já que adicionam grandes bônus ou permitem que personagens usem habilidades diferentes:
• Anel da Cura – Um anel que permite o uso da habilidade “Curar”.
• Luvas da maestria – Uma luva que melhora a habilidade de luta corpo a corpo do
personagem.
• Botas anti-armadilha – Botas que permitem o uso da habilidade “Detectar
Armadilhas”.
• Água-benta – Faz com que os ataques do personagem causem mais dano à criaturas
morto-vivas.
19
2.4 Criação de adversários e seus conteúdos
Uma das partes mais importantes na criação do jogo é a criação dos adversários, que são
responsáveis por boa parte dos desafios enfrentados pelo jogador.
Adversários são divididos em dois tipos: Monstros comuns e Chefes.
2.4.1 Monstros comuns
Monstros comuns são fracos ou medianos em força e oferecem razoável ou pouca ameaça
ao jogador, mas também não possuem grandes recompensas. Os monstros comuns são:
2.4.1.1 Gosma
Descrição: A gosma é uma forma gelatinosa que se arrasta pelos corredores da torre.
Batalha: A gosma é o inimigo mais fraco do jogo, possui 80 pontos de vida e apenas
raramente usa a habilidade “Míssil mágico”. Quando está com 20% ou menos da vida ela se
divide em duas gosmas menores com 20 pontos de vida cada.
20
Recompensas: Ao derrotar a gosma o jogador recebe 7 pontos de experiência e 10
moedas de ouro. Existe 10% de chance de encontrar uma Poção e 20% de chance de encontrar
um Elixir ao derrotar a gosma.
2.4.1.2 Goblin
Descrição: O goblin é uma criatura verde que rouba acentureiros desavisados.
Batalha: O goblin possui 85 pontos de vida e uma quantidade razoável de ataque que o
torna medianamente perigoso. Existe uma pequena chance de durante a batalha o goblin usar a
habilidade “Esconder”.
Recompensas: Ao derrotar o goblin o jogador recebe 17 pontos de experiência e 15
moedas de ouro. Existe 10% de chance de encontrar uma Poção e 6.6% de chance de
encontrar Botas Anti-Armadilhas ao derrotar o goblin.
2.4.1.3 Esqueleto
Descrição: Os esqueletos de aventureiros derrotados ainda andam pela torre.
Batalha: O esqueleto é o mais forte entre os inimigos comuns, possui 95 pontos de vida e
as vezes usa a habilidade “Ataque rápido”. Além disso, ele possui a capacidade de usar
“Defender” para ganhar um bônus de defesa contra o próximo ataque.
Recompensas: Ao derrotar a gosma o jogador recebe 20 pontos de experiência e 20
moedas de ouro. Existe 10% de chance de encontrar uma Poção, 6.6% de chance de encontrar
um Tomo do cavaleiro e 6.6% de encontrar as Luvas da maestria ao derrotar o esqueleto.
2.4.2 Chefes
Os chefes são adversários maias raros de serem encontrados. Oferecem um grande risco
ao jogador, mas também possuem uma grande recompensa.
2.4.2.1 Os irmãos Goblin
Descrição: Inicialmente a batalha é iniciada e apenas dois dos irmãos goblins estão
visíveis o jogador os enfrenta normalmente até o quarto turno quando um terceiro irmão
goblin gigante chamado “Robbie” entra na batalha.
Batalha: Os primeiros irmãos goblins são goblins comuns. Já Robbie possui 150 pontos
de vida e 20 pontos de ataque, o tornando o segundo monstro com mais ataque do jogo.
Apesar da grande quantidade de ataque, Robbie possui uma chance de 20% de errar o ataque
devido ao seu grande tamanho.
21
Recompensas: Ao derrotar os irmãos goblin o jogador recebe 17 pontos de experiência e
15 moedas de ouro por cada goblin mais 30 pontos de experiência e 50 moedas de ouro por
Robbie. Além das chances de itens dos goblins, existe 100% de chance de encontrar um Tomo
do cavaleiro, 50% de chance de encontrar uma Armadura de placas e 50% de encontrar um
Escudo médio ao derrotar o os Irmãos Goblin.
2.4.2.2 O Arcanista Enlouquecido
Descrição: O arcanista é um aventureiro que ficou preso por um tempo inimaginável na
torre. Após tantos anos a loucura tomou conta de sua mente e agora ele vaga por seus
corredores em busca de alvos para seus experimentos.
Batalha: O Arcanista é uma espécie de Bruxo, possui 130 pontos de vida e uma grande
quantidade de ataque mágico, tornando suas magias altamente perigosas. Apesar da grande
quantidade de ataque mágico, a defesa contra ataques corpo-a-corpo é baixa. O Arcanista
conjura sempre “Míssil mágico” como ataque, quando está com 75% ou menos pontos de
vida, ele também pode usar “Curar” e ao chegar a 50% ou menos pontos de vida ele também
conjura “Lançar chamas”.
Recompensas: Ao derrotar o Arcanista Enlouquecido o jogador recebe 50 pontos de
experiência e 50 moedas de ouro. Além disso, existe 100% de chance de encontrar um Tomo
do Bruxo, 50% de chance de encontrar uma Bola de Cristal e 50% de encontrar um Anel de
cura.
2.4.2.3 O Mímico
Descrição: O mímico é uma criatura que vive dentro de baús vazios, ao ter o baú aberto
por algum aventureiro ou goblin desavisado, o mímico ataca com seus dentes afiados.
Batalha: O mímico é uma criatura morto-vivo, possui 135 pontos de vida e uma grande
quantidade de defesa e sorte, o que faz com que possua uma grande chance de conseguir
ataques críticos, que causam grande dano ao jogador. Apesar da grande quantidade de defesa,
o Mímico é altamente vulnerável a magia e ataques de jogadores equipados com Água benta.
O Mímico frequentemente usa “Barreira mágica” para se proteger e ao atingir 50% ou menos
de vida, ele pode conjurar “Fúria”.
Recompensas: Ao derrotar o Mímico o jogador recebe 50 pontos de experiência e 50
moedas de ouro. Além disso, existe 100% de chance de encontrar um Tomo do Ladino, 50%
de chance de encontrar uma Florete e 50% de encontrar as Botas Anti-Armadilha.
22
2.4.2.4 A Quimera
A Quimera é o chefe final da torre e por isso é extremamente poderosa.
Descrição: Ao ver o jogador a Quimera avança em sua direção e o ataca. Ela possui
corpo e cabeça de leão, Asas de morcego, Cauda de cobra e Chifres de cabra.
Batalha: A Quimera é extremamente poderosa, possui 500 pontos de vida e uma grande
quantidade de defesa física e mágica, além disso, possui 10% de chance extra de executar
ataques críticos, que causam grande dano ao jogador. A Quimera possui algumas ações
especiais:
• Curar – Cura a Quimera, 60% de chance de ocorrer.
• Atacar com cauda – Ataca com a cauda de cobra, causa envenenamento, acontece com
frequência.
• Rugido assustador – Ruge de forma assustadora, atordoa o jogador, 60% de chance de
ocorrer.
• Ataque rápido – Ataca duas vezes rapidamente, 30% de chance de ocorrer.
• Fúria – Aumenta em 50% o ataque e diminui em 50% a defesa, ocorre quando a
Quimera possui menos de 50% dos pontos de vida.
• Defender – Aumenta a defesa para o próximo ataqe recebido, 60% de chance de
ocorrer.
• Recompensas: Ao derrotar a Quimera o jogador recebe 300 moedas de ouro, 200
pontos de experiência e termina o jogo.
2.5 Criação de mapas
Nessa etapa são criados os mapas e inseridos os “eventos” responsáveis pelos
personagens que representam as criaturas, baús e armadilhas da torre.
Seguindo um dos requisitos, os mapas são criados de forma que a cada vez que o jogador
inicie um jogo, as posições de tais eventos e a própria estrutura do mapa sejam modificadas.
A respeito da quantidade de andares, para manter o tempo de jogo razoável, a torre possui
3 andares, sendo que existira em média um chefe por andar e o último chefe no terceiro.
23
2.5.1 Estrutura dos andares
Os andares são criados de forma procedural através de um algorítmo de criação de
labirintos incluso no próprio RPGMK, assim, são criadas salas interligadas por corredores.
Para tornar possível a distrubuição dos eventos de forma que não apareçam em locais
indesejados do mapa (como um baú aparecer no meio de um corredor) os locais do mapa são
divididos com “áreas”.
O algoritmo responsável pela distribuição dos eventos é detalhado nas Funcionalidades de
apoio.
Para que exista a diferenciação dos mapas a cada vez que o jogador inicie um novo jogo,
existem 4 versões de cada andar, assim a cada vez que um jogador passa de andar ele é
enviado a uma dessas 4 versões do mesmo mapa.
24
2.5.2 Eventos
Eventos são objetos colocados no mapa que podem interagir com o jogador ao serem
acionados. No RPGMK os eventos contém comandos que se se assemelham à uma linguagem
de algorítmos genérica, assim, é possível utilizá-los para modificar coisas no jogo, iniciar
batalhas, abrir lojas, etc.
Os eventos presentes nos mapas são:
• Inimigos – Inimigos possuem os gráficos correspondentes a cada inimigo. Eles são
programados para perseguirem o jogador e ses comandos se iniciam ao tocar o mesmo.
• Armadilhas – Armadilhas ficam escondidas até que o jogador toque nelas, nesse
momento são reveladas e causam dano ao jogador. Podem ser geradas em qualquer
área do mapa.
• Baús – Baús possuem gráficos de baús de madeira que se abrem ao serem ativados.
Eles são ativados através do botão de ação. Não são gerados em corredores.
• Subida – A subida possui o gráfico de uma escada, ela é ativada pelo botão de ação e
leva o jogador ao próximo andar. Não é gerada em corredores.
25
• Descida – A descida possui o gráfico de uma escada descendo, ela é ativada pelo botão
de ação mas não permite a descida do jogador. Não é gerada em corredores.
2.6 Funcionalidades de apoio
Aqui são detalhadas as funções mais técnicas do jogo, como a distribuição dos eventos
pelo mapa e o login do jogador. Além disso, é explicada a forma como funciona o WebKit,
que é responsável pela comunicação do jogo com os arquivos PHP no servidor.
2.6.1 Webkit
O WebKit é um Add-on desenvolvido pela comunidade de desenvolvedores do RPGMK
e foi inicialmente criado por Guilherme Bicalho e editado por vários outros desenvolvedores,
atualmente é distribuído em Creative Commons 3.0.
Basicamente a sua função é criar uma comunicação HTTP para o uso do RGSS, ele
permite que o desenvolvedor crie uma função que leia o conteúdo de uma determinada página
web. Assim, em conjunto com arquivos PHP em um servidor é possível criar a comunicação
do RGSS com um Banco de dados.
26
Esse sistema é utilizado para várias funcionalidades dentro do jogo:
• Login – Permite ao usuário acessar o jogo com uma conta pessoal.
• Envio de pontuação – Envia a pontuação do jogador ao sevidor.
• Verificação de versão – Verifica a versão do jogo com o servidor.
• Obter Notícias – Obtem as notícias do servidor.
• Verificar Ranking – Verifica os Ranking de pontuações.
2.6.2 Diagramas de caso de uso
Aqui estão listados os diagramas de caso de uso das funcionalidades de apoio do jogo.
Diagramas de caso de uso são importantes para enteder a funcionalidade de sistemas e a
forma como interagem com o usuário.
● Sistema de login
Caso de uso: Sistema de login.
27
Fluxo principal:
● O usuário preenche os campos de nome de usuário e senha.
● Sistema verifica se a senha e nome são existentes e correspondem.
● Sistema verifica versão do cliente do jogo.
● Sessão de jogo é iniciada.
Fluxo alternativo:
● Caso o usuário não preencha os campos, é pedido que ele os preencha.
● Caso o nome de usuário não exista, um erro alerta o usuário disso.
● Caso a senha não corresponda, um erro alerta o usuário disso.
● Caso a versão do jogo esteja errada, um erro alerta esse problema e indica um link
para download da nova versão, o cliente é fechado.
● Envio de pontuação
Caso de uso: Envio de pontuação
Fluxo principal:
● O cliente do jogo obtém a pontuação do jogador.
28
● O cliente verifica que o servidor está acessível.
● O cliente se certifica que o usuário continua logado.
● A pontuação é enviada ao servidor.
Fluxo alternativo:
● Caso o servidor não esteja acessível, o cliente alerta isso com uma mensagem de erro
e a pontuação não é enviada.
● Caso o cliente verifique o jogador não está logado, a pontuação não é enviada ao
servidor.
● Verificação de versão
Caso de uso: Verificação de versão
Fluxo principal:
● O cliente obtém seu número de versão.
● O cliente obtém o número de versão do servidor.
● Os números correspondem.
29
● Sessão de jogo é iniciada.
Fluxo alternativo:
● Caso o cliente ou o servidor não tenham versão, o cliente alerta esse problema com
um erro e um link para o download do jogo, o cliente é fechado.
● Caso os números não sejam correspondentes, uma mensagem de alerta informa o link
para download da nova versão, o cliente é fechado.
● Obter notícias
Caso de uso: Obter notícias
Fluxo principal:
● O cliente verifica que o servidor está acesível.
● O cliente obtém as notícias do servidor.
● As notícias são exibidas
Fluxo alternativo:
● Caso o servidor não esteja acessível, as notícias não são exibidas.
30
● Caso não existam notícias no servidor, nenhuma notícia é exibida.
● Verificar Ranking
Caso de uso: Verificar ranking
Fluxo principal:
● O cliente verifica que o servidor está acesível.
● O cliente obtém as pontuações do servidor.
● Pontuações são ordenadas.
● Pontuações são exibidas.
Fluxo alternativo:
● Caso o servidor não esteja acessível, as pontuações não são exibidas.
● Caso não existam pontuações no servidor, o ranking não é exibido.
31
● Posicionar evento
Caso de uso: Posicionar evento
Fluxo principal:
● O cliente gera uma posição aleatória no mapa.
● O cliente verifica se essa posição está em uma área válida para este evento.
● O cliente posiciona o evento.
Fluxo alternativo:
● Caso a área da posição não seja válida para o evento, o processo é reiniciado.
2.7 Implementação do enredo e Polimento
Por fim, para finalizar o desenvolvimento é inserido o enredo do jogo através de cenas
programadas e um sistema de geração de história do personagem. Nesse sistema, o jogo gera
aleatóriamente uma história de 3 paragrafos de acordo com a classe do personagem, existem
no total 12 parágrafos que são ordenados de forma que façam sentido com a história.
32
Logo depois é feito o polimento, onde são corrigidos bugs e é feito o equilíbrio das
classes, para que não exista uma classe que seja muito mais forte que as outras. Além disso, é
escolhida a cor de fundo das janelas, imagem da tela de login e menu, fonte gráfca dos textos
e trilha sonora.
33
3 Desenvolvendo o Banco de DadosPara o desenvolvimento do banco de dados devem ser seguidos os requisitos do projeto, o
banco deve ser reponsável por armazenar:
● Nome de usuário e senha
● Pontuações e o nome dos jogadores que as fizeram
● Notícias
● Variáveis e switches do RPGMK para funcionalidades diversas.
Com isso em mente, o banco é desenvolvido em MySQL, através do MySQL Workbench
e possui a estrutura:
As tabelas foram organizadas da seguinte forma:
● Accounts – Guarda o nome de usuário e senha das contas dos jogadores.
● Score – Guarda as pontuações e o nome de quem as fez.
● News – Armazena o título, corpo e id das notícias.
● Switch – Armazena as Switches do RPGMK.
● Variables – Armazena variáveis do RPGMK.
34
4 Desenvolvendo o SitePara facilitar o acesso do jogo e fornecer um local onde os jogadores possam baixar o
cliente do jogo é necessária a criação de um site.
4.1 Levantando Requisitos
Para que o site cumpra a sua função de propagar e facilitar o acesso ao jogo, são
necessários certas funcionalidades:
● Cadastro de usuário – Permite aos usuários criarem contas de jogadores.
● Download do jogo – Permite que seja feito o download do jogo.
● Visualização de ranking – Dá a opção aos jogadores de visualizarem o ranking de forma
mais clara.
● Layout atraente – Aumenta a atratividade do jogo.
Com esses requisitos como objetivo é possível dividir o desenvolvimento do site em duas
etapas: Desenvolvimento de funcionalidades e Design de layout.
4.2 Desenvolvimento de Funcionalidades
As funcionalidades do site são feitas assim como no jogo, através de Scripts PHP que
interagem com o banco de dados, o que facilita a criação de um banco de dados
compartilhado.
4.2.1 Casos de Uso das Funcionalidades.
Aqui estão os casos de uso das funcionalidades do site.
● Visualização do Ranking
Caso de uso: Visualização do Ranking
35
Fluxo principal:
● O site verifica que o servidor está acesível.
● O site obtém as pontuações do servidor.
● Pontuações são ordenadas.
● Pontuações são exibidas.
Fluxo alternativo:
● Caso o servidor não esteja acessível, o ranking não é exibido.
● Caso não existam pontuações no servidor, o ranking não é exibido.
36
● Cadastro de usuário
Caso de uso: Cadastro de usuário.
Fluxo principal:
● O usuário preenche os campos de nome de usuário e senha.
● Site se certifica que senha e nome são válidos.
● Conta é inserida no banco de dados
Fluxo alternativo:
● Caso o usuário não preencha os campos, é pedido que ele os preencha.
● Caso o nome de usuário já exista ou seja inválido, um erro alerta o usuário disso.
● Caso a senha não seja válida, um erro alerta o usuário disso.
4.3 Design do layout
Para o design do layout se tornar algo atrativo é preciso fugir ao modelo padrão de
páginas estáticas.
37
Com isso em mente, o layout do site é feito de forma que tanto seus gráficos quanto a
forma como usuários navegam por ele sejam o mais próximo possível do jogo.
Os gráficos de background, gráfico do mouse e sprite de personagem são todos retirados
dos gráficos do próprio jogo. Além disso, o controle do personagem que se encontra sobre o
background do site pode ser feito com as setas do teclado. Ao tocar as estruturas assinaladas
com placas que estão no background, o personagem abre as páginas correspondentes a elas.
4.4 Hospedagem
Para que o site e o banco de dados funcionem da forma esperada, é preciso que estes
sejam hospedados em um servidor.
Os parametros usados na escolha do Host são:
1) Custo
2) Tempo online
3) Funcionalidades oferecidas
Assim, o mais indicado é um plano de hospedagem gratuito, e por isso a escolha é o plano
gratuido do “Hostinger.com”. Esse plano possui as características necessárias para rodas o
banco de dados e os scripts PHP e resiste ao stress esperado para o público do jogo.
O domínio escolhido é também um domínio público gratúito:
“www.thecavecrawler.hol.es”.
38
5 Considerações finaisApós todas essas etapas é possível jogar e distribuir livremente o jogo. Mas não só a isso
precisa limitar-se o futuro, durante o desenvolvimento, houve sempre o cuidado de manter o
projeto aberto modificações, de forma que seja possível no futuro adicionar novas
funcionalidades e conteúdos, as ideias para o futuro do projeto são o único limite do que ele
pode ser tornar, afinal, com criatividade e um pouco de esforço é possível adequar qualquer
ideia que venha a ser concebida para a melhoria do jogo.
Além disso, as funcionalidades criadas para esse projeto não serão limitadas apenas a ele,
assim como ele utiliza recursos cirados pela comunidade e distribuídos sób a licença de
Creative Commons, os recursos criados para ele, como o sistema de ranking, distribuição de
enventos e envio de pontuação, serão publicados sob a mesma licença para que outros
desenvolvedores possam utilizá-los e melhorá-los como quiserem.
Referências bibliográficasBECKER, Fernando, FARINA, Sérgio, SCHEID, Urbano. Apresentação de trabalhos escolares. Orientação para datilografia e digitação. Porto Alegre: Multilivro, 2000.CHEMIN, Beatriz Francisca. Guia Prático da UNIVATES para trabalhos acadêmicos. Lajeado: UNIVATES, 2005.FARINA, Sérgio. Referências bibliográficas e eletrônicas. São Leopoldo: UNISINOS, 1997.ROCHA, José Antonio Meira da. Modelo de Trabalho de Conclusão de Curso (TCC). Modelo de documento digital do programa OpenOffice 2.0 disponível em <http://www.meiradarocha.jor.br/uploads/1021/196/modelo_de_projeto_de_TCC-2006-06-12a.sxw>. Acesso em: 12 jun. 2006.THUMS, Jorge. Acesso à realidade: técnicas de pesquisa e construção do conhecimento. Porto Alegre: Sulina/Ulbra, 2000. Divulgação do WebKit para RGSS disponível em<http://forums.rpgmakerweb.com/index.php?/topic/2990-rgss-webkit/>. Acesso em: 15 jun. 2015