OK, so I have a question for all of you who have some real experience with developing a MOBA or RPG Game... when you are trying to balance character classes with their many attributes from magic, basic damage, armor, speed etc... is there some kind of traditional or standard rpg cookbook / formula or something we should be following to help us properly balance a game that have multiple different classes and attributes to deal with? I've played RPGs for a very long time since Nintendo Zelda, and Final Fantasy to PlayStation JRPGs (FF Series, Suikoden, Wild Arms, and more..) to MMORPGs like Lineage II and Guild Wars. So I think I can hold my own with figuring out how to properly balance RPG character classes, enemies etc... but i'm wondering what resources are out there or known game design formulas that work and shouldn't be broken if at all... share your thoughts. ^_^
(((SkillADamage / Cooldown) * SkillADifficulty) + ((SkillBDamage / Cooldown) * SkillBDifficulty) + ((SkillCDamage / Cooldown) * SkillCDifficulty) + (DPS * TankinessCofficent)) / 4 = BalanceValue. So in more simple words..... I got no idea.
But to be honest then you should just play test a lot (with a large an audience as possible) and save all info using something like GameAnalytics. Then you find whats OP and what UP.
It's actually really easy to make characters balanced, you just make them all the same. No one can really complain that checkers is unfair. Balance just doesn't do anything to make interesting character. Worse yet, there is no way to balance qualitative properties with formula. How do you quantify something like a skill that prevents other characters' magic? This is why it's much more interesting to design based on counter-play, where you are actively looking for and building strategies to counteract other strategies. Say for instance, that magic users might be able to buy equipment that counteracts the magic seal, but it still comes with negatives, like being stuck in place so that now the player has to go all out and rain death down so that they don't get picked off.
personally i use an excel file, have different profile, enemies player etc, write their stats, then add some skills and attack with formula to define if i have this attack on player what will be the damage, how long player need to kill enemies, how much damage enemies will deal during the time we attack him. then i just have to balance stats/ formulas
I didn't think about an excel sheet, might be a great way to lay everything out! I think i'll definitely use that tool to help! Thanks alot!
I would recommend this setup then. Using it at work now for a adventure game. Its so good: Google Spreadsheet + https://www.assetstore.unity3d.com/en/#!/content/11818 Our designer just change numbers in our various spreedsheets (we got like 15+ all with 25+ columns) and then it changes things in-game.
What I often do is write a combat simulator... it uses a simple (or sometimes not-so-simple) AI for all the characters on both sides of the battle, and just runs battles over and over, gathering statistics about the outcome. Then I run a bunch of scenarios for whatever it is I'm trying to balance. For example, are three level-1 characters roughly equivalent to a level-3 character? Set that up, run it 100 times, and see. Or, is this new monster with the Silence spell and Claws of Rending going to fit well on the 10th level of the dungen? Pit it against 100 randomly generated level-10 parties and see how it works out. Or, to use your example, is a lone spellcaster balanced against a lone fighter? Generate 100 random fighters and 100 random spellcasters of the same level, and see how it goes. (Though if it follows classic patterns, I would expect the spellcaster to get creamed at low levels, and to turn the fighter into a thin smear on the back wall at high levels.)
That's Awesome! I think I can actually do this with my current game in development. I can just setup my Player Characters to borrow the Enemy AI Script that should force my Player Characters to Auto Fight with Monsters or with each other.... since my Character Script is used across all Players and Enemies, I have a Option where I set what Team the Character is On to determine if we can attack it or not... So I'll just set the Player Character on Opposite Teams, add the Enemy AI Script and Set them into Aggressive Mode which will force them to Auto Attack their Enemy in Range. So yea I could totally use this, that's an awesome idea and way to do it... Thanks JoeStrout, i'll let you know how it goes.
Another useful tool and idea... pretty cool! that will beat the hell out of going to each character prefab and adjusting their attributes one at a time, field by field via the inspector! I already find myself doing this and it's painful lol.
This is actually what I'm doing for my project. Since I got my battle system in a workable, if unpolished state, I can actually start it!
Balancing a MOBA is very tricky, particularly if you've got a large spread of players at different skill levels. Remember that you shouldn't aim to achieve perfect balance between every hero - a game with perfect balance is boring, and top MOBAs like LoL actively try to design around this. For a multiplayer MOBA, I don't think the AI simulation would give you any meaningful data, unless your game is way simpler than all the others. It's capped at your skill level naturally, so even if you could code AI that played exactly as you would, that would only give you meaningful data at your skill level, and your playstyle. Like others have said, analytics is probably the best way to go for this - even simple stuff like champion win rate is a good indication of how balanced a certain champion is.
TTKt = HPt / DPSa. (Time to kill for the target is a function of the targets HP divided by the DPS of their attacker (assuming one attacker.) That doesn't account for skill, damage mitigation calculations, simply dodging attacks, or the other player ragequitting. That's only raw stats, and in a multiplayer game it gets blown to hell and back a few times over. It's not quite worthless, it's a starting point, though. I think @GoGoGadget is correct, analytics are probably the right tool for working a MOBA out. EDIT: BFGames, you're doing it wrong. In that equation being a better tank would actually make you a better DPS, people who play DPS characters with that balance equation will gripe harder than a StarCraft II fan being told all units in the game are being replaced with pretty princesses (I wouldn't though, that would probably make the game worthwhile. But, I'm silly.)
Yes, my comments about the combat simulator were aimed more at a turn-based RPG sort of game. These are much easier to drive with AI and get results similar to human players. In a MOBA or fighting game, there really is no substitute for getting a bunch of playtesters (including expert players), and basing your balance on that. In fact I read an article about this recently... ah, I think it's this one. Very interesting stuff. Especially how your playtesters will gripe bitterly when you inevitably have to nerf some overpowered hero. But if you don't, people will quickly learn that that's the only character worth playing, and the other 19 characters will be stuck on the bench.
I know. There was some good stuff hidden in the joke, thus why it was funny! I still want someone to implement a tankiness coefficient that alters DPS output, though. That'd be hilarious.
I was thinking about your sim idea and yea I recently releazed it might only work best for Turn Based Combat system. I'm currently working on Real-Time MOBA combat system. So yea, Analytics will probably be the key here to getting it right. I don't want to overpower any characters i want each to have equal advantage disadvantage but also need to take play style and skill into account... It's going to be tricky for sure.
Thing is, that equation assumes that it is about two entities that are pretty much just wailing on each other. It's useless in games that are fundamentally spatial like chess and checkers, or games that have qualitative relationships like rock-paper-scissors. If players can describe characters as being OP and have to use the word "but" a lot, you probably are close to being well balanced.