Coder Social home page Coder Social logo

castella's Introduction

/**
@mainpage Jogo Castela
@authors Rafael Miranda Lopes (_Brasília_)
@authors Guilherme Nishina Fortes
@authors Henrique Cintra Miranda de Souza Aranha (_Oito_)
@authors Gil Barbosa Reis (_Zumbi_)
@authors Giovanni de Almeida Marazzi

@section Docs Documentação
- @ref pageAbout
- @ref pageGameplay
- @ref pageCombate
- @ref pageProgramação
*/


/**
 @page pageAbout Descrição do jogo

 @section Concept Conceito geral
Um herói deverá proteger e administrar suas terras, conquistar aliados, aprimorar suas
habilidades e equipamentos e lutar contra aqueles que se opuserem a ele, em um desafio tático.


 @section Story Sinopse de Cenário e História
O jogo se passa em um cenário medieval fantástico, onde vários senhores feudais lutam pelo
poder. Alguns se aliam em torno de objetivos comuns e de similaridades culturais, a fim de garantir
a sobrevivência ou até a supremacia de seus povos, ou mesmo pela glória dos senhores.
Os heróis NPCs terão traços de personalidade e interesses que influenciam em suas
impressões a respeito de outros heróis e em suas decisões.


 @section Game Gênero e Escopo
RPG/Estratégia: Elementos de RPG como o desenvolvimento das habilidades do herói
serão um aspecto chave do jogo. A estratégia entra tanto na elaboração das habilidades do
personagem conforme ele evolui como nas próprias batalhas e na administração do seu feudo.

As batalhas serão, ao mesmo tempo, táticas e dinâmicas, pois o jogador controlará
diretamente apenas o seu personagem, enquanto os outros serão controlados por uma IA escolhida
pelo prórpio jogador.

A administração da cidade e das relações com os outros heróis (senhores feudais – vassalos,
suseranos, inimigos, amigos - ou mercenários, por exemplo) permitirá uma ampla gama de escolhas
estratégicas em relação a recursos e diplomacia.


 @section Progress Progressão
A progressão no jogo poderá ser feita de três maneiras distintas: campanha, cenário pré-
configurado e cenário configurado pelo jogador.


 @section Visual Estilo Visual
Estilo visual 2D, sendo o mapa global e os feudos vistos por cima e a batalha vista lateralmente.


 @section Target Público Alvo e Aprendizado
Foco em jogadores hardcore que gostam de estudar os detalhes do jogo, mas também deve
dar vez a jogadores um pouco mais casuais, com automatização de algumas decisões. A curva de
aprendizado deverá permitir uma rápida associação de decisões e estratégias básicas, por meio de
inserção gradual de elementos do jogo durante a fase tutorial. Depois dessa fase, vem uma longa
etapa de refinamento.


 @section Engine
A engine é feita em c++ e complementada com scripts Lua, com o auxílio
da biblioteca Luabind. A parte gráfica é toda feita usando SDL.

@ref index
*/


/**
 @page pageGameplay Gameplay

 @section Global Visão Geral
O jogo pode ser dividido nestes módulos: navegação, combate, administração e diplomacia.
Cada um deles está relacionado a um tipo de ação que o personagem poderá executar durante o
jogo. O sucesso do jogador dependerá de suas escolhas em cada um desses módulos.


 @section Navegação
A navegação poderá ser realizada em três níveis: global, regional e estrutural, referindo-se,
respectivamente, aos três tipos navegáveis – mundo, região e estrutura.

No mapa global, o jogador poderá navegar entre regiões nele indicadas – como castelos,
vilas, etc – clicando na região desejada. As regiões estarão previamente conectadas em um grafo,
por estradas pré-definidas na criação do mapa. Para mover-se entre uma região e outra, elas devem,
necessariamente, estar conectadas por uma estrada ou por uma seqüência de estradas. A viagem
poderá ser feita em mais de uma etapa, caso as regiões estejam conectadas indiretamente e os
pontos intermediários e final do percurso estejam acessíveis ao jogador. Por exemplo, pode-se
desejar andar a um castelo aliado cujo percurso consiste de uma estrada a um castelo inimigo e de
uma estrada deste castelo até o aliado; como o castelo intermediário é inimigo, a estrada estará
bloqueada (mas ainda possivelmente navegável com pagamento de pedágios ou outras condições).

Os mapas regionais consistem dos elementos pertinentes a cada tipo de região: as estruturas.
O jogador poderá navegar entre as estruturas de uma região simplesmente clicando sobre elas. Na
navegação regional o personagem do jogador não se desloca: apenas se abre a tela da estrutura
selecionada, iniciando o terceiro tipo de navegação (estrutural).

A navegação estrutural é simplesmente a escolha entre as possibilidades que aquela estrutura
específica oferece. Por exemplo, dentro de uma estrutura Taverna poderão haver mercenários para
contratar e missões para adquirir. A navegação dentro de uma estrutura assim como dentro de uma
região não implicam movimentação visual do personagem.


 @section Combate
O combate pode ser iniciado pelo jogador ou pelo computador, dependendo da situação. Ao
ser iniciado, abre-se o mapa de combate e o jogador deverá escolher a posição inicial de seu herói e
de seus companheiros. O mapa é gradeado em quadrados, no estilo Final Fantasy Tactics e os
personagens podem movimentar-se por ele de acordo com seus pontos de movimentação. Esses
pontos serão determinados de acordo com atributos do jogador e também com o peso que ele carrega.

A ação dos personagens ocorre em turnos de freqüência ponderada em relação a uma
medida de iniciativa de cada um, ou seja: personagens mais rápidos agirão mais freqüentemente.
Enquanto o jogador tem controle total do seu personagem, seus aliados são controlados por uma
inteligência artificial configurada pelo jogador ou escolhida entre algumas IA's pré-configuradas.
Antes de entrar na batalha, o jogador terá relacionado atalhos do teclado às suas habilidades, de
forma a manter a batalha em um passo mais dinâmico (reduzindo a necessidade de navegar em
menus para escolher habilidades). As estratégias dos aliados poderão ser modificadas durante a
batalha, caso o jogador decida que há uma estratégia mais interessante.

Pontos de estamina são utilizados quando o personagem se movimenta e quando ataca ou
usa uma habilidade.



 @section Administração
A administração dos recursos do jogador será feita em sua tela de região e em suas telas de
estruturas. Ele deverá usar recursos para construir novas estruturas em uma região, bem como para
melhorar as estruturas já existentes. Recursos também podem ser investidos internamente às
estruturas, de forma a, por exemplo, melhorar os itens produzidos pelo ferreiro.
Os itens produzidos por estruturas como um ferreiro serão melhorados conforme
investimentos de recursos direcionados a itens específicos, com a possibilidade de se ajustar,
também, que atributo de cada item deverá ser melhorado. Exemplificando: se quisermos espadas de
duas mãos mais leves e mais afiadas, podemos investir, em um primeiro nível, em espadas de duas
mãos e distribuir esse investimento entre seu material e sua lâmina.


 @section Diplomacia
A diplomacia se refere à relação entre o personagem do jogador e os outros líderes de
regiões, como senhores de castelos ou prefeitos de vilas. A disposição de cada líder para com o
jogador depende de suas ações tomadas durante o jogo e que tenham implicações em sua
personalidade percebida e em seu poder, e também de como essas ações se alinham com a
personalidade de cada líder NPC específico.
O jogador poderá conquistar aliados, inimigos, adquirir a proteção de um senhor suserano
ou mesmo conseguir a cooperação de senhores que desejem ser seus vassalos, assim determinando
o seu próprio reino. Qualquer região poderá fazer parte de um reino, caso um senhor de castelo
consiga influência suficiente sobre ela. O reino é a hierarquia máxima de uma unidade
administrativa/diplomática. As regiões podem livrar-se de seus reinos anteriores, caso desejem trair
os seus reinos para possivelmente associar-se a outro, ou mesmo para tomá-los à força.

@ref index
*/


/**
@page pageProgramação Programação
- Controle do jogo
		+ @ref Game.hpp
		+ @ref GameStructure.hpp

- Controle de saída
		+ @ref Screen.h
		+ @ref Scene.hpp
		+ @ref SceneControl.hpp
		+ @ref Scene_Battle.hpp
		+ @ref Scene_MapEditor.hpp
		+ @ref Scene_StartMenu.hpp
		+ @ref Scene_World.hpp
		+ @ref Window.hpp
		+ @ref Window_StartMenu.hpp

- Interatividade
		+ @ref Input.hpp
		+ @ref Button.hpp
		+ @ref Slider.hpp
		+ @ref ContentTable.hpp
		+ @ref Checklist.hpp

- Controle de arquivos
		+ @ref FileHandler.hpp
		+ @ref FileContainer.hpp
		+ @ref ScriptHandler.hpp

- Estrutura do Jogo
	+ @ref Actor.hpp
 	+ @ref Actor_Battler.hpp
 	+ @ref Item.hpp
 	+ @ref Item_Defensive.hpp
 	+ @ref Item_Weapon.hpp
 	+ @ref MapTile.hpp
 	+ @ref Map_Battle.hpp
	+ @ref World.hpp
	+ @ref Region.hpp
	+ @ref RegionGraph.hpp
	+ @ref Structure.hpp

- Integração com o Lua
 	+ @ref LuaTable.hpp
 	+ @ref LuaWBind.hpp

- Outros
		+ @ref Callback.hpp
		+ @ref simpleSDLfunctions.h
		+ @ref SoundManager.hpp
		+ @ref Timer.hpp

@ref index
*/

castella's People

Contributors

gilzoide avatar brasilia avatar

Stargazers

 avatar

Watchers

James Cloos avatar Victor Moneratto avatar  avatar  avatar Yvan Cezarino Fernandes avatar  avatar Matheus H Soares avatar  avatar  avatar Gabriel Pupo avatar Rail Tracer avatar Paulo Augusto avatar  avatar  avatar Henrique avatar  avatar Henrique Freitas avatar Lucas Silveira de Moura avatar Gustavo Ceccon avatar Gustavo Santiago avatar Henrique Loschiavo avatar  avatar Ítalo avatar Ana Spengler avatar  avatar  avatar Lucas Alexandre Soares avatar  avatar William Quelho Ferreira avatar Gabriel Simmel Nascimento avatar  avatar Daniel Sá Barretto avatar  avatar Amanda avatar Fabrício Guedes Faria avatar Jon Reis avatar

Forkers

brasilia

castella's Issues

Memleaks

Rodei no valgrind e tem altos memory leaks =/
inclusive, pra quem quiser rodar facim os testes, podem mandar o

  • Castella.sh debug pro gdb
  • Castella.sh memcheck pro valgrind, ou ainda
  • Castella.sh fullcheck pro valgrind --leak-check=full

Me ajudem a procurar os leaks!
Pode ser primeiramente cada um na sua parte, daí depois a gente começa a entrar nos outros cantos obscuros do mundo xP

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.