Milennin

"With a bang and a boom!"
Veteran
Joined
Feb 7, 2013
Messages
2,767
Reaction score
1,928
First Language
English
Primarily Uses
RMMV
I was thinking about a feature that I've never seen done in an RPG Maker game, namely battle rewards based on performance. So, say you have a points system that checks which actions the player has performed during an encounter, and then reward them based on that. It could look something like this:

-Victory (based on monsters defeated): 125 EXP
-One-shot bonus: 20 EXP
-Dealt over 100 damage: 10 EXP
-Full-health finish: 10 EXP
-Poison cured: 5 EXP
Total: 170 EXP earned!!

Thoughts on such a system? Would you consider it for your game if there was a plugin that does this? (or if such a plugin already does exist, do you use it?) What other creative things could you think of for a system like this?
 

Tai_MT

Veteran
Veteran
Joined
May 1, 2013
Messages
5,534
Reaction score
4,967
First Language
English
Primarily Uses
RMMV
I could see it being easily abused. Really, you'd only want such a system in order to "grind". At which point... I simply ask, "why not just equip an item that doubles/triples money or xp"?

Just using your system:

I'd power level and fight low level monsters to gain that 20 extra XP. If that extra XP isn't worth it for my level, then it wouldn't be useful except for a random critical hit at low levels.

I'd also power level in order to nail that 100 damage consistently. But, it's only 10 XP, so... probably not worth it for my level.

Same with the Full-Health finish... 10 XP isn't worth keeping yourself healed up during combat, especially since you're essentially trading Resources for XP at that point... Which, you could probably do better without combat that forces players to play a certain way (or even worse, the players ignore what you're giving them extra XP for, because it's not enough and it isn't worth changing how you'd play the game to attain it).

Poison curing... Status ailments. I'd inflict every status ailment on my party to see what gives me the most XP for curing. If they're all pretty low... I'll just equip Status Immunity/Resist items like I normally would to avoid trading resources for XP.

I don't know if it could work. Well, it probably could, if you spent a long time designing an entire game around doing those "side objectives" in combat. You would have to ensure that the player wants to complete those side objectives 100% of the time. You'd have to ensure that the player couldn't exploit the game to complete those side objectives for the extra rewards. You'd have to make sure those extra rewards were always worth it.

I've seen a few games that use such systems. Final Fantasy 13 tried its hand at such a system. I ended up "not giving a crap" about it, because winning combat was what I cared about, not the "minor rewards" for winning combat fast and doing a lot of chains. Maybe if the game had rewarded me with 400% XP for finishing the combat quickly.... Or guarantee the rarest drops for large chains... I might've engaged with it.

But, that's the problem. Your rewards have to be substantial to warrant changing how everyone approaches combat. Then, you'd have to balance your game around those substantial rewards.
 

Fernyfer775

Veteran
Veteran
Joined
Oct 6, 2013
Messages
1,317
Reaction score
820
First Language
English
" I ended up "not giving a crap" about it,"
"But, that's the problem. Your rewards have to be substantial to warrant changing how everyone approaches combat. Then, you'd have to balance your game around those substantial rewards."

This is pretty much 100% of what I was going to say. On paper, it sounds cool, but for the most part...mehhhh. Not really worth the effort because it causes more trouble than it's worth.
 

Shinma

Lurker
Veteran
Joined
Dec 29, 2012
Messages
756
Reaction score
342
First Language
English
Primarily Uses
RMMV
I've played games similar to this and always enjoyed it. To me it gives added reason to seek out battles aside from just grinding levels. I wouldn't reward just exp, though. Maybe some gold, small value items, etc.
 

Aesica

undefined
Veteran
Joined
May 12, 2018
Messages
1,771
Reaction score
1,690
First Language
English
Primarily Uses
RMMV
Thoughts on such a system? Would you consider it for your game if there was a plugin that does this?
Nope, in fact I'd run as far away from it as possible. ;)

The way I see it, performance-based "grading" really only works in 2 different scenarios:

1) You're developing a F2P game with pay-to-win microtransactions, so you of course want to encourage your players to blow wads of cash on gacha summons or upgrade widgets until they're stronk enough to get perfect clears on all the hard battles. It actually makes perfect sense to grade battle performance in this type of game.

2) You want to encourage grinding so that the player characters' don't just win battles, but wins by totally overwhelming the enemies each time. I guess this one is a personal design choice, but it's one I'm not really fond of, not only because I dislike grinding, but also for all the reasons listed by others above.

To me, the most memorable battles are the ones where I barely scrape by--3 out of 4 party members are dead and the last one survives with single/double digit HP long enough to deal the killing blow. Obviously, a grading system would score me poorly should I win (took too many rounds, took too much damage, most of the party is dead, etc) but I still cleared the content and probably had a good time doing so.
 

Countyoungblood

Sleeping Dragon
Veteran
Joined
Dec 9, 2017
Messages
622
Reaction score
404
First Language
English
Primarily Uses
RMVXA
I was thinking about a feature that I've never seen done in an RPG Maker game, namely battle rewards based on performance. So, say you have a points system that checks which actions the player has performed during an encounter, and then reward them based on that. It could look something like this:

-Victory (based on monsters defeated): 125 EXP
-One-shot bonus: 20 EXP
-Dealt over 100 damage: 10 EXP
-Full-health finish: 10 EXP
-Poison cured: 5 EXP
Total: 170 EXP earned!!

Thoughts on such a system? Would you consider it for your game if there was a plugin that does this? (or if such a plugin already does exist, do you use it?) What other creative things could you think of for a system like this?


Could give better drops for a more intact kill.. like beating the enemy in fewer hits leaves more of their drops/equipment unbroken from combat

Another thought is bonus drops for killing portions of multiple part enemies like a dragons tail.. this was a fun bit of dark souls i enjoyed and could translate to a rpg maker game..

Semi logical rewards are good but your initial idea is doable but would need proper strategic planning. Knowing what questions to ask helps.

Limiting bonuses to at or above level enemies will reduce scumming and boosting above scope enemies promotes and rewards more challenging play.

Extra exp.. for killing much stronger enemies at all..

Extra exp for situational objectives that randomly occur.. like battle puzzles.

Its very doable its just been done wrong before and clearly left a bad taste
 

Silenity

Veteran
Veteran
Joined
Dec 17, 2013
Messages
693
Reaction score
284
First Language
English
Primarily Uses
RMMZ
I actually commissioned a plugin from Quasi 2 years ago for something similar to this.

I think I'm able to distribute it since I paid for it and his terms say his plugins can be redistributed as long as he's credited.

Basically, it would divide the exp earned from the monster between all active party members, and then bonus experience was rewarded based on actions they did in battle. I had it at 5% bonus xp per action and 10% bonus xp per kill rounded down for both.

Example:
Actor 1, 2, 3 kill a slime and get 250 exp.
250/3 = 83 exp per actor.

Actor 1 used 2 actions during the battle.
83 x 5% = 4
4 * 2 actions = 8 bonus exp + 83 base exp = 91 total experience earned for actor 1

Actor 2 used 1 action during the battle and killed the slime.
83 x 5% = 4
83 x 10% = 8
8+4+83 = 95 total experience earned for actor 2

Actor 3 didnt use any actions during the battle.
83 total experience earned for actor 3.

That was the basis of my idea and it's a simple plug and play plugin. I'm sure someone with some js knowledge could easily tweak it to their needs.

Code:
//=============================================================================
// Quasi Exp
// Version: 1.01
// Last Update: June 29, 2016
//=============================================================================
// ** Created for Silenity
//=============================================================================

//=============================================================================
 /*:
 * @plugindesc Exp change
 * Version 1.01
 * @author Quasi       Site: http://quasixi.com
 */
//=============================================================================

//-----------------------------------------------------------------------------
// Quasi Exp

(function() {
  BattleManager.gainExp = function() {
    var exp = this._rewards.exp / $gameParty.battleMembers().length;
    $gameParty.allMembers().forEach(function(actor) {
      actor.gainExp(exp + (exp * (actor._bonusExp1 + actor._bonusExp2)));
      actor._bonusExp1 = 0;
      actor._bonusExp2 = 0;
    });
  };

  var Alias_BattleManager_startAction = BattleManager.startAction;
  BattleManager.startAction = function() {
    Alias_BattleManager_startAction.call(this);
    if (this._subject.isActor()) {
      this._subject._bonusExp1 += 0.05;
      if (this._subject._bonusExp1 > 0.5) {
        this._subject._bonusExp1  = 0.5;
      }
    }
  };



  if (Imported && Imported.YEP_BattleEngineCore) {
    var Alias_BattleManager_endAction = BattleManager.endAction;
    BattleManager.endAction = function() {
      Alias_BattleManager_endAction.call(this);
      if (this._subject.isActor()) {
        console.log(this._targets);
        for (var i = 0; i < this._targets.length; i++) {
          if (this._targets[i].isDead()) {
            this._subject._bonusExp2 += 0.1;
          }
        }
      }
    };
  } else {
    var Alias_BattleManager_updateAction = BattleManager.updateAction;
    BattleManager.updateAction = function() {
      var target = this._targets[0];
      Alias_BattleManager_updateAction.call(this);
      if (this._subject.isActor() && target) {
        if (target.isDead()) {
          this._subject._bonusExp2 += 0.1;
        }
      }
    };
  }

  var Alias_Game_Actor_initMembers = Game_Actor.prototype.initMembers;
  Game_Actor.prototype.initMembers = function() {
    Alias_Game_Actor_initMembers.call(this);
    this._bonusExp1 = 0;
    this._bonusExp2 = 0;
  };
}());
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,305
Reaction score
11,735
First Language
English
Primarily Uses
RMVXA
@Silenity 'Game Mechanics Design' is not about implementation, so your useful looking plugin does not belong here. What I am wondering is whether this should be presented in a separate thread in 'Plugin Releases', though there is nothing in the actual header to say that it can be redistributed. As I don't want to de-rail this thread with a discussion, perhaps you might pm me about this.

Though I will just mention for the benefit of others reading this thread - the header in that particular script says nothing about redistribution. Perhaps you could edit your post to include a link to his terms so that there is clarity about this, and people can use it with confidence.
Thanks.
 
Last edited:

Wavelength

MSD Strong
Global Mod
Joined
Jul 22, 2014
Messages
6,007
Reaction score
5,648
First Language
English
Primarily Uses
RMVXA
This has actually been done in some form in a lot of professional games, and it's almost always been a good feature. It doesn't make battles into a "grind-fest" as some people have suggested here; instead, it creates incentives for playing battles "skillfully" instead of simply winning by virtue of higher stats.

The closest analogue I can think of is Tales of Symphonia/Tales of Vesperia, whose "GRADE" system would award you bonuses and penalties for all kinds of things you'd want/not want to do in combat - so positives for successful guarding, finishing enemies quickly, taking no damage, exploiting enemy weaknesses, using Over Limits (Limit Breaks) etc., and negatives for hitting resistances, having allies get KO'ed, failing to cure status effects in a timely manner, etc. It was enjoyable, it gave you something extra to aim for, and it felt like your skillful play was generally rewarded.

Star Ocean 3 also did something similar with its Bonus Board, which built up over several battles as you finished enemies off in exceptional ways, and shattered when you let an ally get KO'ed or critical'ed. Moving out of the RPG genre, the recent Doom remake apparently had a well-liked "Glory Kill" system which rewarded you with much better loot when you got up-close-and-personal to kill an enemy rather than using shoot-and-take-cover from afar (see this Game Maker's Toolkit video). The key is to line the rewards up with skillful play, and also, ideally, with things that are fun to do in battle. If you're giving rewards out for taking a thousand trivial cuts from enemies, like Final Fantasy 2 did, you've designed it badly.

A few years ago, I implemented a fairly similar "Battle Bonus" system in one of my unreleased games, where instead of having every bonus be available in every battle, I gave the player a single objective at the beginning of each battle - for example, "win within 5 turns", "defeat at least 2 enemies with a single skill", "win using only items", or "don't let (X character) be damaged". If the player accomplished the Bonus objective, they'd receive extra loot and points that could be used to upgrade skills. If they failed to accomplish the Bonus (or ignored it), I didn't take anything away from them. I found it to be a very fun little extra in my playtesting, and people who saw it tended to like the idea, too.

Long story short - this kind of system is good. It's not grindy, and it's not subject to abuse unless you design it poorly. Make sure you line the bonuses up with skillful play and fun actions.
 

Milennin

"With a bang and a boom!"
Veteran
Joined
Feb 7, 2013
Messages
2,767
Reaction score
1,928
First Language
English
Primarily Uses
RMMV
A few years ago, I implemented a fairly similar "Battle Bonus" system in one of my unreleased games, where instead of having every bonus be available in every battle, I gave the player a single objective at the beginning of each battle - for example, "win within 5 turns", "defeat at least 2 enemies with a single skill", "win using only items", or "don't let (X character) be damaged". If the player accomplished the Bonus objective, they'd receive extra loot and points that could be used to upgrade skills. If they failed to accomplish the Bonus (or ignored it), I didn't take anything away from them. I found it to be a very fun little extra in my playtesting, and people who saw it tended to like the idea, too.
Oh, I like this. I might have to steal that idea now... :D
 

Latest Threads

Latest Profile Posts

I feel still screenshots don't do my game justice. the characters don't move, but the filter over them does...
Wonder if this year, there be more MZ plugin than MV or that MZ is still small compare to whole MV collection
Zaj
Hey morning all! I got another quick question..I just switched to RMMZ from VX Ace..so I am wondering why default scripts(is that how u call it) of VXAce is available, but not in MZ's case? How do I figure out ahh I mean could you show me
Sometimes im the biggest fool alive... Ah well, ce la vie
The worst feeling in the world is going for a walk on a nice summer day, seeing an ice cream truck, and realizing you don't have any money with you :(

Forum statistics

Threads
111,346
Messages
1,060,372
Members
144,672
Latest member
oddRABBIT
Top