Jump to content


Battle system overhaul

This topic has been archived. This means that you cannot reply to this topic.
5 replies to this topic

#1 Mewens


    Advanced Member

  • Members
  • 83 posts

Posted 24 April 2012 - 05:44 AM

I've been tinkering with the RPG Maker VX Ace trial, and feel like I've got a handle on the basics (thanks in large part to many of the tutorials in the forums).

But I'm not a fan of the base combat system. It's not that it's terrible -- it's just that I've played this game before (you know, the basic turn-based RPG), and would like to do something that's a little different. Can anyone tell me how feasible these changes are, and where I ought to go to learn any event management/scripting that I'd need to know to implement them?

What I'd like to do:

1. Most skills aren't tied to a specific class; rather, players can assign nearly any skill to a character. Each character would have a maximum number of skills he / she / it could have assigned at a time.
2. Only certain classes can crit. The critical hit variable would be tied to a parameter and would apply to any skill that class uses. (Each class would have a similar passive skill; the rogue would get multiple hits, one of the spellcasters turns everything into area of effects, etc.)
3. Can I rename parameters such as MDF? Can I create my own parameters?
4. I have a weighted function I'd like to call when determining the benefit of parameters, but writing it into every skill will become problematic. An example: the lowly Attack skill, under my system, would look something like this: "((100-b.def)/100)((X + (X(((a.atk/a.level)-1)^(1/3)) - (X(((b.agi/b.level)-1)^(1/3)))/2)", where X is the damage variable for the skill. You can see the problem, especially since X will typically be a constant multiplied by a. and b. levels. If I could create a set of weighting functions, it'd be much cleaner -- ((100-b.def)/100)(X + X(a.atk'w) - (X(b.agi'w)), for example. (This is all pseudocode, obviously, since I'm not fluent in Ruby. Heck, I'm not _anything_ with Ruby.)
(In case you're wondering, every parameter is sharply constrained by a class, giving base-stat magic-leaning classes significant bonuses for magic skills, ditto for physical abilities. There's significant diminishing returns at higher points of ability, while penalties disappear quickly; theoretically, it presents a situation where players can mix-and-match without too much penalty while still rewarding purists. Also, if that bizarre DEF-based damage reduction is bothering you, DEF will be a pretty rare parameter; it'd max out around 40 with items and most classes won't gain it as they level up.)

I know some of this is pretty ambitious, but I figure I should know what I can and can't do before I invest too much time into a project.

Afloat Games, the blog where I talk about my setting and my game.

#2 Yato


    (aka Racheal)

  • Early Adopter
  • 602 posts

Posted 24 April 2012 - 08:30 AM

I'm just going to answer the easy question.

3. You can rename any parameter in the terms tab of the database. Attack, defence, magic and magic defence are all params that don't actually do anything unless you use them in a damage formula. There's not a simple way to add more variables per se (that I know of anyway), but you can easily convert one of those.

Edited by Racheal, 24 April 2012 - 08:31 AM.

sig-HB.png HFbar.png


#3 kirinelf



  • Members
  • 80 posts

Posted 24 April 2012 - 10:27 AM

1. Most likely a script is required.
2. Critical rate is a Feature assigned to classes, so it's covered by the default editor.
3. Answered by Racheal.
4. A script is needed. It's fairly simple, although I can't remember it off the top of my head. I'm not a coder either though. xD

#4 Touchfuzzy



  • Lead Eagle
  • 4,377 posts

Posted 24 April 2012 - 02:36 PM

1. Can be done through equipment, the only thing you would need a script for is adding as many equipment slots for "skills" that you want.
2. You can already adjust crit rate for classes using the Features section.
3. Check the terms tab to rename parameters. Just keep in mind that by default Agility determines turn order and Luck determines status effect rates, though this is easy to change in the scripts. All other stats have no affect other than what you put in the skill equations.
4. You can do all kinds of crazy stuff with the equation boxes because they just execute in the ruby code. You could probably get someone who is fluent in scripting (not me) to create a method that would let you cut down your equations if they are all going to have the same format.

Also, this goes in support.


#5 Lone Wolf

Lone Wolf


  • Early Adopter
  • 272 posts

Posted 24 April 2012 - 03:13 PM

Couldn't be easier to create weighting functions, actually.

class Game_Battler
def def_p
def atk_
  (((self.atk / self.level) - 1) ** (1/3))
def agi_
  (((self.agi / self.level) - 1) ** (1/3))
Haven't actually tested these, since I'm not at an RGSS interpreter at the moment, but they should be sound. Paste this block into your script materials section and these functions can be referenced in battle formulas like regular stats (i.e. "a.atk_" for a's weighted attack). I didn't make formulas for the other stats, but these can be used as a template without too much extra knowledge of Ruby.

Edited by Lone Wolf, 24 April 2012 - 03:22 PM.

#6 Mewens


    Advanced Member

  • Members
  • 83 posts

Posted 24 April 2012 - 03:55 PM

Thanks all for the replies!

Clearly, I'm still learning the ins and outs of the program; glad to see that nearly everything I want to do isn't that difficult.

And Lone Wolf, thanks -- that's exactly what I needed. I'm totally new at this, so seeing an example is a huge help (the in-game Ruby help system is a little too technical for someone as utterly new as me). No worries if it's not perfect -- it's a starting place that I can understand!
Afloat Games, the blog where I talk about my setting and my game.