The Mystery of Super Island creation process in RPG Maker MV part 6 (EN | PT-BR)

in #hive-1402172 years ago

divmv.png


Introduction


Hi guys, how are you? Today I'm here to show you the current progress of my game.

In this post I'll show you the damage floor system and give some notices of changes to the project.

All the content shown here can be modified, there is still a lot to be improved and optimized.


Warning


Currently, the game has gained much larger proportions than I was expecting, I got excited about the development and became more than a simple project, with many systems and new features to be added, for this reason, I intend to bring the game progress monthly or when possible.

In the beginning, it was supposed to be a small project, to be finished in a month, but as I was developing, I realized that I wouldn't be able to finish it in a short time, besides, I do other things that occupy my time, this makes the development is slow, needing more time to complete.

The Mystery of the Super Island will go through a process of changes, meanwhile, I will bring small projects that I will develop in a few days, in addition, I downloaded a new engine similar to RPG Maker that allows the creation of 2.5D/3D games in the style Paper Mario, despite being an engine that is under development, it is possible to create several games on it with your current progress.


Damage Floor system


RPG Maker has a damage system, but it's not comfortable on the eyes, so I created my own with more modification options. The first step was to create an image to indicate that the player is on a floor that deals damage or debuff, to do this I used FireAlpaca using the particle brush, each negative state is represented by a color, green image (poisoned), image blue (frozen) and red image (burning).


rm1p.png


The second step was to create the three negative states that will be used in the game. In the first image, Poison was created as an example, the ideal is to create two types of negative states, one for the character on map and the other for the character in battle, the reason is the loss of HP (HP regeneration - 10%), in this example, the character will lose 10% HP each turn during the battle, but on the map, I created a system for the character to lose HP every 15 frames, but the problem is that the characteristic (HP -10%) will reduce on map as well, for that reason, I will create two negative states for each one, in addition, it is also possible to note the removal conditions, in battle the Poison effect will end in 4 turns, on map, when the character walk 50 steps, the effect ends if he is not on a poisoned floor.

In the second image I show the ice state, this will only decrease the character's attributes, but I forgot to remove the damage loss in the system I created. As you can see, the ice state will decrease all stats from (100%) to (75% and 85%), a decrease of (25% and 15%), but unlike the poison state, this cannot be removed for no potion or battle duration, as long as the player remains in the ice caves, this effect will continue.



The third step was to define which tiles would cause these negative states, for that, I used an option called (Terrain Tag), in which it is possible to define up to (7) Tags to use various types of systems. In the image I defined three numbers, the first one is the poison tile, the second two ice tiles and finally the fire tiles. Each of these Tags will serve to identify if the character is on the correct terrain.


rm3t.png


The last step was to create the damage system for the map, for that, I defined a common event in parallel process with the switch that will turn on the event defined as (damage_floor). Then I used two variables that were already created to collect the position (X and Y) of the player on the map and a command called (Get Location), this command can collect the (Event ID, Tile ID, Region ID and the Terrain Tag), to do this, you need to define a variable that will collect this information, and two more variables to collect the player's position (X and Y), which are the two variables created at the beginning of the code.

In the first image, I created a condition to check if the variable (tag) is equal to one, if it is, the poison state will be added in the player and the second condition will be activated, the second condition was created a variable called (state_onoff ), which needs to be set to (=1) at the beginning of the game, so it only needs to be set once to be used in the event, this second condition is responsible for showing the image corresponding to the negative state activated, and at the end From the code, the variable (state_onoff = 1) is set to two, it can only be called once while the negative state is active, and lastly, the player will lose one HP every (15) frames while in the poison tile.

In the second image, I created one more condition in the (Else) of the condition (tag), it will work when the character is out of the poison tile, but with the poison state active, the script checks if all team members [0 = member 1 ... 2 = member 3] are affected by some negative state (isStateAffected(state ID)), this condition only works if all members are affected. After the effect is removed, the condition (state_onoff) equal to two is activated, which will remove the image (poison_state) and set the variable value to one, with that, if the effect is removed and the character steps again on a tile that causes a negative state, the condition that shows the image will be activated once again.

For the other negative states I did the same thing, just changing the value of the condition (tag) to the corresponding value of the terrain tag of each one.



Final Result


Hope you enjoyed it, see you next time!!!

divmv.png


Introdução


Olá pessoal, como vocês estão? Hoje estou aqui para mostrar o progresso atual do meu jogo.

Nesse post eu vou mostrar o sistema de dano por chão e falar alguns avisos de mudanças no projeto.

Todo o conteúdo mostrado aqui pode ser modificado, ainda tem muita coisa para ser melhorada e otimizada.


Aviso


Atualmente o jogo ganhou proporções muito maiores do que estava esperando, me empolguei no desenvolvimento e passou a ser mais do que um projeto simples, com muitos sistemas e novas funcionalidades a serem adicionadas, por esse motivo, tenho a intenção de trazer o progresso do jogo mensalmente ou quando for possível.

No começo, era pra ser um projeto pequeno, para ser finalizado em um mês, mas a medida que fui desenvolvendo, percebi que não conseguiria terminar em pouco tempo, além disso, faço outras coisas que ocupam o meu tempo, isso faz com que o desenvolvimento seja lento, precisando de mais tempo para ser finalizado.

O Mistério da Super Ilha vai passar por um processo de mudanças, enquanto isso, vou trazer pequenos projetos que vou desenvolver em poucos dias, além disso, baixei uma nova engine semelhante ao RPG Maker que possibilita a criação de jogos 2.5D/3D no estilo Paper Mario, apesar de ser uma engine que está em desenvolvimento, é possível criar vários jogos nela com o seu progresso atual.


Sistema de dano por chão


O RPG Maker possui um sistema de dano, mas não é confortável aos olhos, por isso criei um próprio com mais opções de modificações. O primeiro passo foi criar uma imagem para indicar que o jogador está em um chão que causa dano ou debuff, para fazer isso usei o FireAlpaca usando o pincel de partículas, cada estado negativo é representado por uma cor, imagem verde (envenenado), imagem azul (congelado) e imagem vermelha (queimando).


rm1p.png


O segundo passo foi criar os três debuff que vão ser usados no jogo. Na primeira imagem, o Veneno foi criado como um exemplo, o ideal é criar dois tipos de estados negativos, um para o personagem em mapa e o outro para o personagem em batalha, o motivo é a perda de HP (HP regeneration - 10%), nesse exemplo, o personagem vai perder 10% de HP em cada turno durante a batalha, mas no mapa, eu criei um sistema para o personagem perder HP a cada 15 frames, mas o problema é que a característica (HP -10%) vai reduzir em mapa também, por esse motivo, vou criar dois estados negavitos para cada um, além disso, também é possível notar as condições de remoção, em batalha o efeito de Veneno vai acabar em 4 turnos, em mapa, quando o personagem andar 50 passos, o efeito acaba se ele não estiver em um chão envenenado.

Na segunda imagem mostro o estado de gelo, esse vai diminuir apenas os atributos do personagem, mas esqueci de remover a perda de dano no sistema que criei. Como vocês podem notar, a estado de gelo vai diminuir todos os atributos de (100%) para (75% e 85%), uma diminuição de (25% e 15%), mas diferente do estado de veneno, esse não pode ser removido por nenhuma poção ou duração de batalha, enquanto o jogador permanecer nas cavernas de gelo, esse efeito vai continuar.



O terceiro passo foi definir quais tiles causariam esses estados negativos, para isso usei uma opção chamada (Tag de terreno), nela é possível definir até (7) Tags para usar vários tipos de sistemas. Na imagem defini três números, o primeiro deles é o tile de veneno, o segundo dois tiles de gelo e por último os tiles de fogo. Cada uma dessas Tags vai servir para identificar se o personagem está no terreno correto.


rm3t.png


O último passo foi criar o sistema de dano para o mapa, para isso, defini um evento comum em processo paralelo com a switch que vai ligar o evento definida como (damage_floor). Em seguida usei duas variáveis que já estavam criadas para coletar a posição (X e Y) do jogador no mapa e um comando chamado (Get Location), esse comando pode coletar o (Event ID, Tile ID, Region ID e o Terrain Tag), para fazer isso, é preciso definir uma variável que vai coletar essas informações, e mais duas variáveis para coletar a posição (X e Y) do jogador, que são as duas variáveis criadas no começo do código.

Na primeira imagem, criei uma condição para verificar se a variável (tag) é igual a um, se for, o estado de veneno vai ser adicionado no jogador e a segunda condição vai ser ativada, a segunda condição foi criada uma variável chamada (state_onoff), que precisa ser definida como (=1) no início do jogo, com isso, ela só precisa ser definida uma vez para ser usada no evento, essa segunda condição é responsável por mostrar a imagem correspondente ao estado negativo ativado, e na final do código, a variável (state_onoff = 1) é definida como dois, ela só pode ser chamada uma vez enquanto o estado negativo estiver ativo, e por último, o jogador vai perder um de HP a cada (15) frames, enquanto estiver no tile de veneno.

Na segunda imagem, criei mais uma condição no (Else) da condição (tag), ela vai funcionar quando o personagem estiver fora do tile de veneno, mas com o estado de veneno ativo, o script verifica se todos os membros da equipe [0 = membro 1 ... 2 = membro 3] estão afetados por algum estado negativo (isStateAffected(ID do estado)), essa condição só funciona se todos os membros estiver afetados. Depois que o efeito for removido, a condição (state_onoff) igual a dois é ativada, que vai remover a imagem (poison_state) e definir o valor da variável para um, com isso, se o efeito for removido e o personagem pisar mais uma vez em um tile que causa um estado negativo, a condição que mostra a imagem vai ser ativada mais uma vez.

Para os outros estados negativos eu fiz a mesma coisa, mudando apenas o valor da condição (tag) para o valor correspondente da tag de terreno de cada um.



Resultado final


Espero que vocês tenham gostado, nos vemos na próxima!!!

Sort:  

Congratulations @teteuzinho! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You published more than 30 posts.
Your next target is to reach 40 posts.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Support the HiveBuzz project. Vote for our proposal!