On SRPG Development

Kilmoran

Warper
Member
Joined
Nov 20, 2012
Messages
2
Reaction score
0
First Language
English
Primarily Uses
 While I have seen many posts about this being difficult and yet done in the past so perhaps one day it will be done here, I have attempted to look in to resolving certain issues with going about creating a game type such as this on my own. Some I have resolved, others I have not, but I am trying o get an idea as to where the engine limitations may be versus my own, so I am going to ask some questions that perhaps others may know the answer or the gist of an answer to.

  1. What is a good practice for separating the characters a player controls?



The game itself is obviously designed around one party and one player character being controlled at a time (when speaking of movement pre battle of course). SRPGs tend to have movement occur as part of the positioning for battle per unit. I have conceived of multiple approaches to handling this, from creating event doppelgangers to switching between each allied unit as the player to only using the player character (transported around and changed to each character) for the players turn and then allowing the enemies to interact with only events since the player is no longer in control of what happens when it is not their turn (at least traditionally). However, there are multiple holes in each concept and i'm not sure if i'm on the right track in considering how to resolve that problem.


 2. How would one handle graphical and game-wise measured tile based movement limitations?


I have already resolved the issue of how to have movement counted and linked it to a stat in my prototyping, have end turn conditions that restored it, I've had "NPC" events that are able of doing this as well as the player character, etc. But when it comes to graphically displaying the range of movement i'm not entirely certain how to go about this. Obviously it would be based on their possible movement range which I have the variable for and controls for how many times a unit can move and all of that is a matter of application, it's more the concept of having a map based visualization for it that i'm stumped on at the moment.


3. Detection of units within a certain range?


This question I have seen spoken of as one of the hardest things to do, particularly when it comes to ranged units. My question is not about a canned solution someone can give me so much as a methodological approach towards finding my own solution. I'm unaware of anything within the system itself that detects anything within or without of a certain range. If I was made aware of this, I could work within that to find a solution I would imagine.


 That will be all for the time being. Note I did not ask about AI or handling the flow of combat or anything related to how to make the entire game so much as specific points of approaching creation within this specific system. I do know that the general answer is "It is not designed for SRPGs" but I assume that a community that has before made similar systems have that functionality any how, as well as the imagination that permeates the community as a whole that I will not receive a "Dead End" answer from everyone. Thanks to any who reply constructively. 


 P.S. As an extra note, so far I have not required any JS. I'm not at all suggesting nor desiring to avoid JS, but if there are solution that are not simply "rewrite the engine to do what you want" I would like to hear them up to the point they are feasible.


Reply: Thanks for all of the answers that I have been given here. It has made me reconsider the use of RPG Maker for this project (I have been looking in to Godot as well). My primary concern has been the fact that an SRPG is simply not supported by RPG maker and that trying to manipulate the system in order to make it is going "against the design" of RPG Maker while at the same time realizing that the engine still has a vast majority of the features that I can use to easily make the game other wise (i'd say a good 80% of RPG Maker is entirely useful for this project out of the box). With the answers I've been given, I feel that perhaps it is not so... entirely against the nature of RPG Maker MV as I imagined due to the power of JS. I am still not sure, but I am more confident in the possibility than I was.
 
Last edited by a moderator:

Pine Towers

Knight Hospitaller
Veteran
Joined
Nov 11, 2015
Messages
467
Reaction score
225
First Language
Portuguese
Primarily Uses
RMMV
My humble opinions...

  1. I would go for a cursor approach. Maybe using Tsukuhime "party leader that doesn't show on menu" for the cursor, and use events to "store" each player character.
  2. Is there a way to call a picture centered on the selected event, and scale the picture by x, being x the range of the movement and attack? Another way is call different pictures based on range instead of trying to scale a single image.
  3. There is a way to get X and Y of events and store them. So, check X and Y of EventA and EventB and check if aX - bX and aY - bY is within range of the attack?
 

Astfgl66

Veteran
Veteran
Joined
Jan 5, 2016
Messages
722
Reaction score
578
First Language
French
Primarily Uses
Hi!


I tried doing the very first basic step of such a system: the player movement. 


You can see a gif displaying the result here:




First, I made a very simple plugin to flash a square on the map.


Then, I scout the whole map and color blue the tiles that are within movement range. I took region in account for simulating elevation. ie: moving from region 1 to region 2 consumes 2 movement points. Moving inside a region consumes 1 movement point). 


You can see here moving from dirt (region 2) to grass (region 1) consumes 2 movement points. 


Sadly I think this part can't be done without a bit of scripting.


However this is no replacement for a pathfinding script. It's very basic and was done just to get an idea of how it could work.


But should you write your pathfinding script, probably the most difficult part of the system with the AI, displaying the info to the player is easy.



I didn't really try it with more characters but I found that making the player the character currently moving was the most simple. It handles camera movement by itself.


Detecting all events inside range would be very possible and actually quite easy.


What I'd do would be to search the map for all points that are within a certain range of the player and then check those points for an event. If an event is there add its id to a list.


You then display the list to the player and he picks the target (or your ai picks targets). There indeed are very easy script calls to get the coordinates of the player and the event and calculating distance is just a matter of substractions.


Most of this will be possible using event commands but much easier using the script box and a tiny bit of javascript.


Displaying movement possibilities on map or the target list however will not be possible without javascript I'm afraid. (Or a maddening amount of pictures...)


Proper pathfinding will simply be impossible without scripting.


You could of course use a picture and modify its scale to display range around the player. That would work. But for movement, if you want to take into account and display accurately what tiles can be moved to, pictures will not cut it.
 
Last edited by a moderator:

Pine Towers

Knight Hospitaller
Veteran
Joined
Nov 11, 2015
Messages
467
Reaction score
225
First Language
Portuguese
Primarily Uses
RMMV
You could of course use a picture and modify its scale to display range around the player. That would work. But for movement, if you want to take into account and display accurately what tiles can be moved to, pictures will not cut it.
You're right. I haven't thought about different terrain interactions like a swamp/mud or even elevation.
 

Johan Liebert

Villager
Member
Joined
Apr 6, 2016
Messages
12
Reaction score
1
First Language
French
Primarily Uses
Ok first of all  i must say that i was a bit scared when I started eventing my srpg 2 weeks ago because many peolpe told me that it would be a nighmare and such but I can tell you with a bit of dedication, this can easily be done. However in addition of using other plugins you will have to learn a bit of javascript but do not worry just start with rmmv script calls list; In fact it's not hard as it may seem.


Now :


1- Player controls: I would suggest you to create doppelgangers of all characters in your party & the actual player graphic should be reserved to the cursor.


2- Graphical grid: I did mine with pictures, by displaying a picture everywhere the player can move. I used the BindPictureToMap plugin to fix those to the map. I should add that i had to tweak rpg_object.js to bypass rmmv picture limits. I can easily use 250 pictures just for the grid.


3-Detection of units: i'm assuming you are referring to ennemies trying to detect actors. Well i'll try my best to explain my approach. I do not know if you are aware of arrays(Variables which can store many other variables)  but i stored the event Id of all the events representing my actors in an array. With that  i could easily retrieve the coordinates of those events and then compare the distance between the ennemy and each actor (my party can allow a max of 4 actors so it's not so teddious as it may seem plus i used script calls, yes again to do that). You can then use a probabilistic approach to choose the target so that the ennemy will not always go for the nearest actor.


Of course the actual steps are a lot deeper since this is already IA ; I just tryied to give you an idea of what i did.


Finnaly i would say that if you want to create your own system (not only battle) start to plan out what you want to do; i know it may not  be the advise you want to hear but just start with the general steps in a to do list and breakdown those steps. Not only you will be more efficient but it will also boost your confidence with each steps you have accomplished.


Secondly never give up. Rpg maker is very powerfull despite the limitations. You should always try to do 'lateral thinking' to find workarounds to solve your issues. You should not be afraid of javascript since all you want to do is create your system wheter it's events or script. Neither should limit you.


Sorry for the mistakes and such but its actually 4oclock in the morning here and my first langage is french so let me know if i wasnt clear enough.
 

Astfgl66

Veteran
Veteran
Joined
Jan 5, 2016
Messages
722
Reaction score
578
First Language
French
Primarily Uses
@Johan Liebert I'm a bit curious. While I can totally see how you'd display the grid to the player using individual pictures as tiles (I was doing the same thing, just with only one picture), I'm curious as to how you implemented pathfinding. If you did, mind elaborating?
 

Johan Liebert

Villager
Member
Joined
Apr 6, 2016
Messages
12
Reaction score
1
First Language
French
Primarily Uses
I just used script calls to move each battler to the desire position.


var move_battler = $gameMap._events[$gameVariables.value(180)];// this retrieves the actual battler's event id
move_battler.moveStraight(move_battler.findDirectionTo($gameVariables.value(202), $gameVariables.value(203)));
// with this one you move 1 tile at a time so i did a loop which allowed me to check the remaining steps


Of course this is not ideal but i just need to implement all the core functions before polishing everything.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

rux
Just 80% of my motivation on game making lmao, anyone got tips on how to not be unmotivated?
I've signed up for a job training program for people with Asperger's Syndrome. I went to a "test run" today so they could see how well I did with simple jobs, and I amazed them. Most new people do it in 30+ minutes, while I finished in a mere 15 minutes. Gives me time to work on a screenplay for Studio MDHR...
People,I have seen that Someone from China/Chile and London is doing a Vaccine Against COVID-19.
Doing anything that yield good result in the long run is like sowing seeds. With proper care, they will grow and bear fruits. I'm excited for tomorrow. :D

Forum statistics

Threads
105,455
Messages
1,013,840
Members
137,105
Latest member
twilightprincess
Top