Criando um RPG (Parte 2)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Criando um RPG (Parte 2)

Mensagem por Math Maker em Sab 12 Mar 2011, 02:00

Nome: RPG - Parte 2
Descrição: Iniciando um Personagem
Nivel de dificuldade: Iniciante (somente nomenclatura de arrays, que serão usadas somente mais para frente, e podem ser estudadas neste exelente tutorial do usuário saim: http://gmbr.forumeiros.com/t14235-tutorial-arrays?highlight=arrays)
Requerimentos: Game Maker 8 Lite/Pro, ou outra versão do programa compatível com projetos da versão em questão.

Tutorial Math Maker

Construindo um RPG no Game Maker

Parte II – Construindo um personagem


Sequência de aulas no seguimento RPG
Spoiler:


Primeiramente, o substantivo personagem virou comum-de-dois-genêros (estava desatualizado no meu tutorial anterior), assim o título está correto.

Considerações (IMPORTANTES):
Spoiler:
Espero fazer um tutorial compreensível a todos, sendo objetivo e claro. E sempre estarei aberto a todas as dúvidas. Algo que quero (estarei abandonando a linguagem mais formal) passar aos leitores deste tutorial, é a inexistencia da "programação correta", a "programação robô". Não se limitem a minha forma de programar, as funções que eu uso, ao nome para com as variáveis que eu uso etc. Acha que este sistema funciona melhor dessa forma? Ótimo, teste, comprove e depois se quiser poste para dividir tanto comigo quanto com os outros usuários. Se for mudar nome de variáveis lembre-se de mudar todas as sua referências. Meu objetivo aqui além de mostrar como fazer um RPG é trazer autônomia aos Makers, coisa que faz muita falta hoje em dia infelizmente.

Somente agora estou postando a segunda parte de meu tutorial sobre RPG, pois a escola está exigindo muito (chovendo pesquisas). No carnaval fui curtir (mesmo odiando carnaval). Assim sendo venho agora postar a segunda parte desta sequência de tutoriais (que não tenho previsão de termino).

Ao final de cada tutorial estarei postando uma engine com tudo que foi feito no mesmo. Se pretende seguir meus tutoriais guarde os projetos que construiremos pois eles serão re-utilizados futuramente, numa constante evolução do projeto. Se perdeu seu projeto basta pegar a engine, assim facilitamos tudo.
_________________________________________________________________________________________________________________________________________________________________________
Preparação

Agora vamos ao tutorial. Antes de iniciar um personagem definitivamente, devemos planejá-lo:

Personagem
Ray
Sexo
Masculino
Idade
21
Sprites (frente)
Sprites (costas)
Sprites (direita)
Sprites (esquerda)
[size=7]Sprites retirados do pacote gráfico integrante do RPG Maker VX

Bem pequena nosso planejamento não é mesmo? Somente precisaremos destes dados por enquanto, mas futuramente estaremos aumentando as linhas e colunas desta tabela. Também aqui não escreveremos uma história para o personagem (sua alma).

Também usarei estes dois sprites:


Sprites padrões do Game Maker 8

Agora iniciaremos nosso projeto no Game Maker (GM). Estarei dando o título ao projeto de “Math Maker – Tutorial RPG”. Faremos a preparação gráfica da seguinte forma:



_____________________________________________________________________________________________________________________________________________________________________
Scripts > banco_dados

Agora na pasta Scripts criemos um script chamado "banco_dados". Neste script ficará a base de nosso RPG, os dados. Agora estaremos inserindo somente dados de nosso personagem, mas futuramente colocaremos itens, classes, monstros etc. Criemos esta relação de váriaveis (vars):

Var
Valor
global.nome[0]
"Ray"
global.sexo[0]
0
global.hp[0]
120
global.nvl[0]
1
global.expe[0]
0
global.expe_up[0]
100

Em script ficará da seguinte forma:

Código:
{
global.nome[0] = "Ray";
global.sexo[0] = 0;
global.hp[0] = 120;
global.nvl[0] = 1;
global.expe[0] = 0;
global.expe_up[0] = 100;
}
Estarei sempre postando a definição de cada var para que vocês não fiquem perdidos:
Definições:
Spoiler:

global.nome[0] - Váriavel do tipo array na qual é posto o nome do personagem "0" em forma de string.
global.sexo[0] - Variável do tipo array na qual é posto o sexo do personagem "0" em froma de constante. 0 para masculino e 1 para feminino.
global.hp[0] - Váriavel do tipo array na qual é posto a energia vital do personagem "0" em forma de valor real.
global.nvl[0] - Variável do tipo array na qual é posto o nível atual do personagem "0" em forma de valor real.
global.expe[0] - Variável do tipo array na qual é posto a experiência total do personagem "0" em forma de valor real.
global.expe_up[0] - Variável do tipo array na qual é posto a experiência total necessária para o avanço de nível do personagem "0" em forma de valor real.
Para aqueles que não tem experiência em RPG, a definição de experiência:
Spoiler:
Num RPG, interpretamos personagens, uma dessas interpretações se baseia em sua evolução. Na maioria dos RPG esta evolução ocorre por meio de um dado chamado experiência (exp). Com o aumento do valor dessa características (por meio de caça a monstros, repitições de atividades etc) se aumenta uma caracteristica chamada nível, certos atributos se baseiam no nível, como força, velocidade, destreza, etc. Atributos mais elaborados começarão a ser mais explorados no próximo tutorial.
________________________________________________________________________________________________________________________________________________________________________
Scripts > level_up

Criemos agora outro script, com o nome "level_up". Este script será responsável pela evolução de nosso personagem. As funções aqui utilizadas não serão explicadas em si, para isso existe o "help" do GM e o serviço de tradução da Google. Se mesmo usando dessas duas ferramentas e não consseguir entender o funcionamento da função, poste e estarei respondendo. A lógica de funcionamento do script sempre será explicada. Este script ficará dessa forma:

Código:
{
if(global.expe[0] >= global.expe_up[0]){ global.nvl[0] += 1;

global.expe_up[0] = global.expe_up[0] + 200*(global.nvl[0]-1); }}

Este script é o "rascunho" do sistema de nivelamento que planejo para o futuro.

Lógica: No script usa-se uma condicional "if" que monitora quando a experiencia torna-se igual a experiencia necessária para passar-se de nível. Com tudo, precisa-se aumentar o valor na experiencia necessária para se aumentar de nível novamente, assim se torna a var global.expe_up igual a ela mesma mais duzentas vezes o nível atual, assim se cria um sistema de exponenciação que tornará a constante evolução do RPG cada vez mais difícil.

Por enquanto o nivelamento ficará dessa forma.
________________________________________________________________________________________________________________________________________________________________________
Scripts > Movimento

Criemos mais um script chamado "Movimento". Este script será temporário, será usado somente para o teste de outros sistemas, e futuramente será substituido por um sistema de movimento em grid que será fudamental para a interação com NPC (os quais serão trabalhados bem mais a frente). O script é bem simples:

Código:
{
if(keyboard_check(vk_right)) { sprite_index = ray_spr_d; x += 5; }
if(keyboard_check(vk_up)) { sprite_index = ray_spr_c; y -= 5; }
if(keyboard_check(vk_left)) { sprite_index = ray_spr_e; x -= 5; }
if(keyboard_check(vk_down)) { sprite_index = ray_spr_b; y += 5; }}

Condicionais simples para o teclado junto com deslocamento x e y e mudança do sprite, sem segredos.
_______________________________________________________________________________________________________________________________________________________________________
Scripts > script_control

Criemos um script chamado "script_control". Esse será responsável por enquanto pelos desenhos que usam das funções da família "draw". O script:

Código:
{
draw_text(20,20,string(global.nvl[0]));}

Este código simplismente desenha o nível do personagem "0" na canto superior esquerdo da tela.
_____________________________________________________________________________________________________________________________________________________________________
Objects > Control

O primeiro objeto desse tutorial. Este se chamará "Control". Este objeto não possui um sprite (pois o mesmo sumiria com o uso da família draw). Ele usará de dois eventos:

Create: Execute Code > {banco_de_dados();}

Draw: Execute Code > {level_up();script_control();}

Nesses objetos somente executamos os scripts que fizemos anteriormente.
______________________________________________________________________________________________________________________________________________________________________
Objects > Ray

O objeto do personagem. Seu sprite será "ray_spr_b", e isto definirá que ele começará olhando para baixo. Este objeto possui um único evento:

Step: Execute Code > {movimento();}
_________________________________________________________________________________________________________________________________________________________________________
Objects > Esqueleto

Este objeto será o primeiro monstro de nosso RPG, ele simplismente morrerá na colisão com o personagem, sem perda nenhuma, somente adiciona experiência. Danos serão explorados no próximo tutorial juntamente com força e defesa. No evento:

Colisão com obj Ray: Execute Code > {global.expe[0]+=150;instance_destroy();}

O personagem ganha experiência e o monstro morre, um esboço de batalha.
______________________________________________________________________________________________________________________________________________________________________
Rooms > room00

A única room do jogo. Use a background "grama", insira o obj Control em algum ponto da tela, insira um Ray em algum lugar e mais vários Esqueletos em posições aleatórias.
_____________________________________________________________________________________________________________________________________________________________________

O Projeto desse tutorial está pronto! Cool. Teste e confira, quanto mais esqueletos criados, maior o level que poderá ser alcançado. Este projeto é o esqueleto de que ele será futuramente. Não possui nada em questão de acabamento como movimento do player (nunca para quieto), uma fonte para o nivel junto com uma string. Essas coisas eu deixo como tarefa para a próximo tutorial que já terá esse acabamento feito. Assim você faz como acha que fica legal, mas estarei disponibilizando este projeto com um acabamento melhor no próximo tutorial de todas as formas.

Resultado final sem nenhum acabamento:



Projeto do tutorial:
Código:
http://www.4shared.com/file/mCKsPVKY/Math_Maker_-_Tutorial_RPG__Sem.html

É isso ai galera, espero que tenham gostado. Se sim, você deve querer ver a continuação deste tutorial, então comente que está é a única forma de incentivo que pode me dar . Críticas negativa ou positivas estou aceitando, mas tente fazer críticas construtivas, e se puderem dêem uma nota de 0 à 10 para meu tutorial. Aos mais experientes, por favor, apontem pontos do tutorial que acham que podem ter ficado confusas para os iniciantes, por comentário ou PM. Dúvidas pesso que postem aqui mesmo, pois sua dúvida pode ser também a dúvida de mais dez usuários.

Próximo tutorial: Banco de dados mais detalhado, com características mais profundas do personagem junto com dados de inimigos. Até lá! study


Última edição por Math Maker em Sex 01 Abr 2011, 16:28, editado 7 vez(es) (Razão : Váriavel com o nome errado.)

Math Maker

Número de Mensagens : 107
Idade : 21
Data de inscrição : 26/02/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Gostei !

Mensagem por Joker em Sab 12 Mar 2011, 22:44

Cara Muito Bom Seu TUTO COMPLETO GOSTEI MUITO !!!!!!

Joker

Ranking : Sem avaliações
Número de Mensagens : 206
Idade : 21
Data de inscrição : 08/11/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://the-jokergames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por Markituh em Sab 12 Mar 2011, 23:21

Naah, RPG Maker ou Game Maker? Happy Usar sprites do RPG Maker realmente confunde, ainda não vi a primeira parte da sua aula, vou dar uma olhada. De qualquer modo, ótimo compartilhar esse tutorial, apesar de não ter interesse em fazer um RPG Happy" Só entrei aqui mesmo para te avisar sobre o erro... Abraços!

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por Math Maker em Sab 12 Mar 2011, 23:25

Mad Realmente me confundi, kkkkkkkkkk. Vlw pelo aviso.

Math Maker

Número de Mensagens : 107
Idade : 21
Data de inscrição : 26/02/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por dharrison em Dom 13 Mar 2011, 02:14

Math Maker, como sempre, demonstrando grande potencial e explicações detalhadas de ótimo aproveitamento!! pirat

Dei uma olhada +/- no tuto, muito interessante!
Eu sou pessimo pra fazer jogos de Plataforma e RPG, no momento eu me limito a Shooters, mas com um tutorial desse as coisas podem começar a mudar Happy

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por _riqueikki_ em Dom 13 Mar 2011, 12:12

Gostei disso,desta aula,poxa...nunca pense colocar RPG MAKER em Game Maker XD

Shocked

_riqueikki_

Número de Mensagens : 79
Idade : 21
Data de inscrição : 11/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.essb-nero.blogspot.com

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por Math Maker em Dom 13 Mar 2011, 12:16

Obrigado pelo apoio dharrison. Estou simplismente "apaixonado" no GM, grande versatilidade em criação de Games e Sofwares (estou penssando em criar um game em plataforma). Mas o que mais faz eu querer continuar nesse Maker é essa exelente comunidade. Pena a escola estar gastando quase todo meu tempo... Quando puder darei continuidade e este tutorial, e verei se faço um tutorial de games ao estilo de Age of Empires (tempo real) ou Civilization (turnos).

_riqueikki_, o GM não tem um pacote de gráfico de grande porte, eu não sei desenhar e não gosto de ficar procurando sprites na net. Então decidi adptar os gráficos do RPG Maker, e até que ficou legal. Também estou usando tilesets dele (minha engine de NPC)

Obrigado a todos pelos comentários.

Math Maker

Número de Mensagens : 107
Idade : 21
Data de inscrição : 26/02/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por Math Maker em Ter 15 Mar 2011, 20:08

Aviso

Este é um aviso formal que terá efeito no desenvolvimento dessa seqüência de tutoriais (RPG). Estarei iniciando um pesado estudo sobre física para competir na Olimpíadas de Física. Terei minha obrigações correndo simultaneamente a: estudo (outras disciplinas) e trabalho. Perante o aviso, ficarei praticamente inativo no fórum, então não poderei estar postando a continuação dessa aula até o fim do estudo. Obrigado.

Math Maker

Número de Mensagens : 107
Idade : 21
Data de inscrição : 26/02/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por iFaé em Ter 15 Mar 2011, 20:22

cara seu tuto fikou mto massa!!!

iFaé

Ranking : Nota D
Número de Mensagens : 455
Idade : 19
Data de inscrição : 02/02/2011
Notas recebidas : D - D - D - B
Reputação : -14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://matheusfaegames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por andreh em Seg 21 Mar 2011, 14:28

Seu tuto ficou mto show, e acho uma boa ideia vc fazer um tuto parecido com Age of Empires, é um dos melhores jogos que existe.
Com certeza estudo em primeiro lugar, mas estudar como um condenado não faz bem, é bom ter um tempo de lazer.

andreh

Ranking : Nota C
Número de Mensagens : 183
Idade : 20
Data de inscrição : 09/03/2011
Notas recebidas : C
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por †Des† em Qui 31 Mar 2011, 12:14

Como la no post da Introdução, você é ótimo para explicar, e o tutorial ficou incrivel! Consegui reproduzir perfeitamente aqui xD

Parabéns pelo tuto, continue com o ótimo trabalho, e mais importante, boa sorte nos estudos, sei que não é facil estudar e ter uma vida de Maker também, eu faço faculdade e nao é mole não.

†Des†

Número de Mensagens : 29
Idade : 23
Data de inscrição : 21/12/2008
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por saim em Qui 31 Mar 2011, 14:34

Quando vi "nível de dificuldade: iniciante" pra um tutorial de RPG, pensei: esse cara não pode estar falando sério. Mas me enganei, você realmente consegue explicar de forma compreensível, bem didático.
Só uma sugestão: coloque, logo no começo, os links pras outras partes, inclusive aquelas que forem sendo feitas depois. Assim, fica fácil pra seguir o tutorial, passo-a-passo.

Ah, e obrigado pela menção ao meu tutorial! Happy

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por Math Maker em Qui 31 Mar 2011, 15:00

andreh

Obrigado pelo comentário. Este projeto de tutoriais não seguirá uma mecânica Age of Empires, mas, planejo criar algo no seguimento pois é outro estilo de jogo que gosto muito. Com tudo, uma rede de tutorial (um jogo desse estilo leva uns dez tutoriais pelo menos) fica complicado, mas mais futuramente posso postar uma engine (não é um bixo de sete cabeças este estilo também). E não estou somente me afundando nos estudo igual um louco, tenho também lazer, mas priorizo família, namorada e relaxar nos fins de semana. Mas estou meio que "treinando" para não ter que dormir muito, dai sobra um tempo. kkkkkkkkkkkkkk.

+Des+

Vlw pelo comentário. Vejo que alcancei meu objetivo de momento, conseguiu reproduzir o tutorial sem problemas (e se surgiram, conseguiu contorná-los, excelente também!). Obrigado pelo mútuo apoio!

saim

Vlw pelo comentário, e pela comunidade inteira, obrigado pelo seu tutorial que faço uma menção com enorme prazer. Sobre o dificuldade do tutorial, estou esforçando para que seja acessível a todos (neste caso, sendo inciante, a todos mesmos, salvo D&D), mas a coisas sempre irão aumentando a dificuldade, que significa evolução coll2 . Gostei da dica, vou editar os tutoriais.

É isso galera, vou tentar continuar com o tutorial, mas nem vou dar o projeto como ativo por que estou em época de provas, então... Vlw ao apoio de todos, e espero conseguir a mesma qualidade futuramente.

O tutorial perdeu o selo 100% qualidade, é pela paralisação do projeto ou algo em especial?

Math Maker

Número de Mensagens : 107
Idade : 21
Data de inscrição : 26/02/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por †Des† em Sex 01 Abr 2011, 12:52

Math Maker escreveu:e se surgiram, conseguiu contorná-los, excelente também!

Sempre surgem duvidas xD como eu, que não sou muito ativo no GM sou mais RM (por enquanto), teve umas horas que o codigo para executar os scripts tava dando errado, ai fui ver sua engine de npc, que usava o "execute script" em vez de "execute code". Tá funcionou perfeito dai, mas eu ainda queria deixar exatamente como o ensinado e só depois fui descobrir que o codigo para executar um script tem q haver o nome exato desse script, e eu achando q nao era case sensitive xD

No aguardo dos próximos tutoriais, abrass!

†Des†

Número de Mensagens : 29
Idade : 23
Data de inscrição : 21/12/2008
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Criando um RPG (Parte 2)

Mensagem por Conteúdo patrocinado Hoje à(s) 02:41


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum