
OpenRPG
Mecanismo de criação de jogos no estilo RPG
Manual de utilização para desenvolvedores

    0 - Descrição técnica

    Todas as linhas que iniciam e terminam com colchetes, são
denominadas seções. E todas as linhas iniciando com um termo e um sinal
de igual, são chamadas de parâmetros. Toda seção deve possuir pelo menos
um parâmetro.

1. Arquivos fundamentais

1.1 - openrpg.cfg - Arquivo de configuração primário do OpenRPG.

Exemplo:
[OpenRPG]
title=Jogo de exemplo
load=exemplo.map
gold=100
block=block1
attack=arma1
defense=armadura1
battle_music=sounds\fight.ogg

Parâmetros

title - Título do jogo (exibido no topo da janela)
gold - quantidade de ouro ou outra moeda que o jogador iniciará o jogo.
load - Nome do primeiro mapa a ser carregado.
block - Primeiro bloco a ser carregado (deve estar definido dentro
de load)
attack - Arma de ataque inicial do jogo, definida em itens.rpg
    defense - Armadura inicial do jogo, definida em itens.rpg
battle_music - Música de fundo que tocará durante uma batalha
(suportados apenas os formatos OGG e WAV)

1.2 - characters.rpg - Arquivo de personagens

Exemplo:

[char1]
name=personagens\exemplo.wav
type=friend
dialog=personagens\dialogo1.wav
attack=0
defense=0
hp=1

Parâmetros

[char1] - Identificador do personagem que deve ser utilizado como
referência nos arquivos de configuração.
name - Arquivo de som com o nome do personagem gravado (não confundir
com identificador acima). Apenas formatos WAV e OGG suportados. Este
arquivo sempre será tocado quando o jogo se referir ao respectivo
personagem.
    type - Tipo do personagem, pode assumir os seguintes valores:
type=enemy - Inimigo
type=friend - amigo
type=leprechaun - Duende ou personagem que propõe um jogo de azar
type=vendor - vendedor de itens

    Nota: o tipo de personagem especial ("type=transport") é abordado com
maiores detalhes na seção 3.

Inimigos são personagens definidos explicitamente para batalhas.

Amigos são definidos com o intuito de alertar ou instruir o jogador
durante a aventura; o jogador pode iniciar uma batalha com um amigo caso
considere necessário.
Nota: todo personagem pode possuir hp (pontos de vida).

Leprechaun ou duende é um tipo de personagem que propõe jogos de
azar, podendo este causar danos ou benefícios ao jogador que entrar em
contato com ele. O personagem do tipo leprechaun possui sons
pré-gravados, localizados na pasta sounds, os quais podem ser alterados pelo desenvolvedor caso queira:

123_lep.wav
again_lep.wav
death_lep.wav
goodbye_lep.wav
lepgone.wav
leprechaun.wav
leptook.wav
more_lep.wav
noplaygood_lep.wav
noplaymad_lep.wav
play_lep.wav
plose_lep.wav
pwin_lep.wav
rules_lep.wav
survive_lep.wav

    Vendedores são personagens que vendem itens pré-estabelecidos ao
jogador, em troca de ouro ou outra moeda definida.

    O tipo "transport" é utilizado para mover o jogador de um bloco ao
outro por um determinado custo. Você encontrará maiores detalhes sobre
este tipo na seção 3.

dialog - Arquivo de som com a fala do personagem. Este parâmetro está
disponível para amigos e inimigos.

hp - Pontos de vida do personagem

attack - Valor máximo de ataque de um personagem, que corresponde a
quantidade máxima de pontos que podem ser subtraídos do jogador.

defense - Valor máximo de defesa de um personagem, que corresponde a
quantidade máxima de pontos de ataque do jogador que ele pode reduzir.

sound - Som que um personagem faz durante a batalha.

mad - (apenas para o tipo leprechaun), define se o personagem assumirá
comportamento inesperado, causando males ao jogador. Pode assumir o
valor 0 para falso, e 1 para verdadeiro.

mad_sound - (apenas para o tipo leprechaun), som tocado durante o mal
comportamento do personagem.

    store - (apenas para o tipo vendedor), som tocado com o
nome da loja ou local de vendas do personagem.

    products - (apenas para o tipo vendedor), define a lista de produtos
vendidos pelo personagem, separados por vírgula e definidos no arquivo
itens.rpg.

    Exemplo:
    products=arma1,arma2,armadura1,armadura2

    lastvictory - som tocado quando o jogador é morto pelo personagem.

    lastdeath - som tocado quando o personagem é morto pelo jogador.

    contains - itens que o personagem está carregando. Caso o mesmo seja
morto, estes passarão a pertencer ao jogador.

    give - (apenas para o tipo amigo), define um item que será entregue
ao jogador após ele entrar em contato com o personagem.

    Exemplo:
    give=pocao

1.3 - itens.rpg - Arquivo de itens do jogo

Exemplo:

[pocao]
name=sons\pocao.wav
type=cure
hp=25
sound=sounds\potion_a.wav
price=50

Tipos de itens

type=cure - utilizado para acrescentar pontos de vida ao jogador.
type=gold - item com valor em ouro ou outra moeda utilizada
type=weapon - define uma arma de ataque
type=armor - define uma armadura

Parâmetros

sound - som tocado ao utilizar o item.

attack - força de ataque do item como arma

defense - força de defesa do item como armadura

hp - (apenas para o tipo cure), define a quantidade de pontos de vida
que o jogador pode recuperar ao utilizar o item.

price - valor do item em ouro ou outra moeda utilizada.

2 - Construção de mapas

2.1 - Estrutura do arquivo

Um mapa pode ser criado gerando-se um arquivo com a extensão .map. A
seguir, seguem algumas sessões e seus parâmetros.

2.2 - Definição de mapa

Exemplo:
[MAP]
name=forest.sounds\forest.wav

[block1]
bg=forest.sounds\bg_myst12.ogg

A seção [MAP] possui o seguinte parâmetro:

name - arquivo de som contendo o nome do mapa gravado.

2.3 - blocos

Um bloco é uma estrutura do mapa onde o jogador pode batalhar, procurar
itens, conversar com amigos e rumar para uma direção. Cada movimento
feito pelo jogador o levará para um bloco diferente. Após definir-se o
primeiro bloco, o desenvolvedor deve criar as direções (norte, sul,
leste e oeste), que levarão o jogador para outros blocos.

Por padrão, a seção de um bloco é definida como a seguir:

[block*]

Onde o caractére asterisco é substituído por um número. Exemplo:
[block12].

    Parâmetros de um bloco

    bg - arquivo contendo a música de fundo do bloco.
    person - define o identificador de um personagem que irá fazer parte do bloco.

Exemplo de bloco:

    [block1]
    bg=musicas\bloco1.ogg
    person=guardiao1
    l=block2
    n=block3
    s=block4

    Note que você pode definir uma direção como parâmetro, sendo possível
encaminhar o jogador para outro bloco durante o movimento. É possível
também fazer com que seja necessário um item para ir em uma determinada
direção. Exemplo:

    lrequire=chave

    Em outras palavras, o jogador só pode rumar ao leste caso possua o
item chamado "chave".

    contains - insere ítens que podem ser coletados pelo jogador dentro
do bloco, utilizando o comando S.

    desc - define uma pequena descrição do bloco que será pronunciada pelo leitor de telas NVDA.

    end - define o bloco como o final do jogo. Pode assumir os valores 0
para falso e 1 para verdadeiro. O jogador ainda pode travar uma batalha
no bloco antes do término do jogo.

    map - define o bloco como entrada para outro mapa, finalizando o
atual e passando para o mapa definido no parâmetro. Exemplo:

    map=mapa2.map

    3 - Transporte

    É possível criar um meio de transporte que conduz o jogador de um
bloco ao outro. Para isso, você precisa definir um personagem em
"characters.rpg" com o tipo "transport". Exemplo:

    [transporte]
    name=exemplo\transporte.wav
    type=transport
    price=50
    sound=exemplo\transporte2.wav

    Parâmetros de um transporte

    price - define o custo que o jogador pagará pelo serviço.
    sound - define o som tocado quando o transporte estiver em
movimento; o valor pode ficar vazio.

4 - Considerações finais

O OpenRPG é constantemente implementado, e mais parâmetros novos poderão
surgir. Você pode aprender mais sobre construção de jogos com OpenRPG, lendo os
arquivos que compõem o jogo de exemplo. Em caso de dúvidas, entre em
contato através do e-mail:
lucasalexandre.bp@gmail.com
