MudBytes
» MUDBytes Community » Game Creation » Building and World Design » Balancing fully made areas?
Pages: << prev 1, 2, 3, 4, 5 next >>
Balancing fully made areas?
Elervan
Apprentice




Group: Members
Posts: 36
Joined: Jun 17, 2008

Go to the bottom of the page Go to the top of the page
#1 id:39987 Posted Dec 29, 2009, 7:48 am

Hello,

I am wondering if anyone has some advice on how to balance a fully made world that has been touched and changed over 13 years.  Basically as it stands equipment and npcs are not even close to being somewhat balanced.  Not to mention a player could level from 1 to 90 in just 5 areas.  But to go through each area one-by-one and re-edit every object, npc would take forever.  Is there a better way of doing this?  As it stands the mud is between 15,000 and 30,000 rooms most full of npcs and objects.

-- Elervan

ATT_Turan
Conjurer




Group: Members
Posts: 199
Joined: Jun 10, 2009

Go to the bottom of the page Go to the top of the page
#2 id:39988 Posted Dec 29, 2009, 9:07 am

Going through and re-editing each entity would be the thing to do, if you want to avoid changing your  game mechanics (or write new areas). Optionally, some MUD's load their mobs and objects with statistics generated by their level - with the exception of special effects added to items, every level 5 weapon will do the same damage and every level 12 mobile will have the same hit points, armor and damage. This should be very easy for your coder to implement, and the only thing you'd have to worry about then is finding any objects that had unbalancing bonuses added to them (which, hopefully, is nowhere near every object).

David Haley
Wizard






Group: Members
Posts: 7,841
Joined: Jun 30, 2007

Go to the bottom of the page Go to the top of the page
#3 id:39989 Posted Dec 29, 2009, 9:08 am

If you don't want to edit everything by hand, then you need to figure out some method of automatically generating new (hopefully balanced) statistics for NPCs and objects. You could have some sort of table that takes as input the desired level of the 'thing' (object, NPC), some basic parameters (item type, material, NPC class, NPC race, ...) and then generated statistics for it. You would then run this process on every 'thing' that you want to balance.

A problem with this process is that it can make everything overly similar; you can throw in random noise if you'd like some variety.

You can also run the process automatically on everything, and then tweak a few particular mobs/objects by hand if need be.

As for the process of figuring out what is "balanced" and what isn't, that's really up to the particulars of your game design and is a rather complex question.

Some people get all fidgety and uncomfortable with this idea as it removes so-called "creative freedom" from the building process, but IMHO, for the bigger picture, you really want consistency first and foremost and can allow creative expression through other means.
.........................
-- d.c.h --
BabbleMUD Project (custom codebase)
Legends of the Darkstone (head coder)
http://david.the-haleys.org
.........................

Skol
Wizard






Group: Members
Posts: 551
Joined: May 17, 2006

Go to the bottom of the page Go to the top of the page
#4 id:39992 Posted Dec 29, 2009, 9:50 am

This is assuming a RoM game, if not, just use the concepts ;).

What I did to do the same in my game was to enforce 'dice sizes' in weapons, along with a max/min average damage due to weapon type.

The 'blah' of it is: while (pObj->value[1] < minimum_dice[pObj->value[0]]) pObj->value[1] ++;
That should give you the idea anyway, basically while it was too small of a die (v1) for that weapon type (v0) it increased v1 by 1. Then do average damage vs level of the item, reduce or increase v2 (# of dice) until it's within the desired range etc. I did the same in OLC so that if someone wants to build one outside of the range, he has to get an implementor to do so for him (keeps the insane weapons in check).

In your case, you'd want to do so in olc_save.c where it saves the items to the area file. Definitely back-up all of your areas first.
Ps. the above code is 'blah//' code, use your actual values/code etc.  should give an idea though.
.........................
-=-=-=-=-=-=-=-
Skol/Dave/Zivilyn

http://www.ansalonmud.net/images/ansalon_banner_2008.jpg
www.AnsalonMUD.net

Ansalon & Rom Builders Guide
Rom Area Sanctuary

quixadhal
Wizard






Group: Members
Posts: 2,626
Joined: Oct 17, 2007

Go to the bottom of the page Go to the top of the page
#5 id:39993 Posted Dec 29, 2009, 10:17 am

Two words.  Log Files. :)

Start adding code to log all kinds of events, such as how much damage happens on each side of a fight, how long it takes for a player to kill a mob, how many times they kill various mobs, what drops off them (if it's semi-random)....

Then pour over the logs.  If you can, write a script to push the data into SQL so you can query for trends and outliers.  If you realize players are killing 20X the number of uruk-hai as regular orcs, there must be a reason... they're either too easy, or worth too much.

There's no simple way to properly re-balance a game that's drifted, but collecting data so you can see how things are out of balance is the first step.
.........................
https://lh3.googleusercontent.com/-vYoSYr4luwg/UdpJ_fYLt8I/AAAAAAAAAUw/B-8sQAoGOtA/s800/MUDBYTES_zps028f0a68.gifhttps://lh5.googleusercontent.com/-S1rE61rTCMM/UdrboSwRJsI/AAAAAAAAAYI/MVUkOP_baKs/s800/kool-aid_zpsf0068bff.png

Runter
Wizard






Group: Developer
Posts: 3,414
Joined: Jun 1, 2006

Go to the bottom of the page Go to the top of the page
#6 id:39994 Posted Dec 29, 2009, 11:51 am

In my opinion there is only one good way to balance.

You need to test stats out and create a table of 1 to 1 relationships between stats.    For example, if you had a stat like strength that gives 2 attack power for every strength you could figure out that strength is slightly better than 2 points of strength.  Depending on how many other things strength contribute it could perhaps be more.  The closer the approximation you can get for the value of a stat the easier it is to generate balanced stats and draft items in an intelligent, value based way.  Of course it may be more difficult for you to get an approximation for how valuable 1% critical strike bonus is vs 1 attack power.    In these cases it may take extensive actual testing to produce charts,  benchmarks, and medians for various fights.  This is the real scientific work that goes into serious balancing.

It gets more difficult when dealing with stats from different disciplines.  For example, tank attributes vs healing attributes vs DPS attributes.  It really depends on your game how you balance these in relationship.  But in many games if the sets are completely segregated it doesn't even matter.  For example, warriors can't wear priest items and so on.

In any event, it's always better to have one informed person designing and tweaking balance of stat relationships than each individual area designer.  (These people, indeed, are often the last people who should be controlling this in a balanced game.)

Kline
Wizard






Group: Members
Posts: 854
Joined: Dec 14, 2007

Go to the bottom of the page Go to the top of the page
#7 id:39997 Posted Dec 29, 2009, 1:02 pm

AckFUSS has an autoobj/mob build command (and tables, etc, you could steal) that auto-stats items and mobs based on level and other factors (gear slot, rare flags, special mob flags, etc). I'd suggest a similar system then write an imm command/at-boot script to just run it on everything once, after you hand set levels.
.........................
AckFUSS -- Check it out.
NAMS -- Re-inventing the wheel since 2012.

Top-notch VPS hosting @ prgmr.com (I get no referral bonuses; check them out!)

quixadhal
Wizard






Group: Members
Posts: 2,626
Joined: Oct 17, 2007


This post has spawned the following topics
Go to the bottom of the page Go to the top of the page
#8 id:40000 Posted Dec 29, 2009, 2:50 pm

I know code that "auto-balances" things is popular in several of the Dikurivatives, but personally I can't stand it.  It's not too bad if you can just fill in the values yourself to override it, but some of them have the auto-mangler ignore hand-set values and just enforce the generic numbers.  While that does give you "balance", it also makes things very generic and predictable.  If your builders can't make special items or mobs that are outside the "norm" for the area, you're rewarding the mass production of uninspired and uncreative stuff.

Of course, I also dislike the idea of level restrictions on items, but that's another topic. :)
.........................
https://lh3.googleusercontent.com/-vYoSYr4luwg/UdpJ_fYLt8I/AAAAAAAAAUw/B-8sQAoGOtA/s800/MUDBYTES_zps028f0a68.gifhttps://lh5.googleusercontent.com/-S1rE61rTCMM/UdrboSwRJsI/AAAAAAAAAYI/MVUkOP_baKs/s800/kool-aid_zpsf0068bff.png

Skol
Wizard






Group: Members
Posts: 551
Joined: May 17, 2006

Go to the bottom of the page Go to the top of the page
#9 id:40002 Posted Dec 29, 2009, 3:28 pm

Quix, totally agree on the logging. I did that with experience gains (set it as something imps could toggle on/off) and had it give exp warnings on wiznet (Dikuriv) to Imps. I turn it on when we put in new areas to simply watch and see, usually only goes off if there's way too easy mobs of higher level.

On a similar note you could do the same for damage vs level, store the weapon's #, room #, wielder, etc etc. Or, have it simply check where it computes the weapon's damage (prior to adding in other factors, strength, eq bonuses etc).

Looking back, I didn't end up putting in the 'implementor required' check on 'insane' weapons, but the OLC does warn the person when they build stats if it's 'too buff'.
.........................
-=-=-=-=-=-=-=-
Skol/Dave/Zivilyn

http://www.ansalonmud.net/images/ansalon_banner_2008.jpg
www.AnsalonMUD.net

Ansalon & Rom Builders Guide
Rom Area Sanctuary

Kline
Wizard






Group: Members
Posts: 854
Joined: Dec 14, 2007

Go to the bottom of the page Go to the top of the page
#10 id:40008 Posted Dec 29, 2009, 4:52 pm

re: Quix. My auto-system sets defaults based on some coded values from a few tables, but they are always editable afterwards. It's just to give people a good baseline to start from, as my idea of an "average" weapon may be a far cry from yours ;)
.........................
AckFUSS -- Check it out.
NAMS -- Re-inventing the wheel since 2012.

Top-notch VPS hosting @ prgmr.com (I get no referral bonuses; check them out!)

Tyche
Wizard






Group: Members
Posts: 2,046
Joined: May 23, 2006

Go to the bottom of the page Go to the top of the page
#11 id:40025 Posted Dec 30, 2009, 4:40 am

There's a Merc snippet by Erwin that might be a helpful tool in balancing.  What it does is run through objects in the mud, produce a comma delimited list of their stats and writes the output to a file.  You can import the file into a spreadsheet where you can sort, filter, and analyze to your hearts content.  You can use similar technique with mobiles, and statistics you may or may not track on players.  That was the basis of what I used to balance LE mud.
.........................
Proud member of Team Hetero
http://jlsysinc.gotdns.com/ladybug_laugh2.jpghttp://jlsysinc.gotdns.com/teensymud_250x80.pnghttp://jlsysinc.gotdns.com/palin_calendar.jpg
For now we see through a glass, darkly; but then face to face: now I know in part; but then shall I know even as also I am known.

Scandum
Wizard






Group: Members
Posts: 1,973
Joined: Aug 7, 2006

Go to the bottom of the page Go to the top of the page
#12 id:40039 Posted Dec 30, 2009, 12:37 pm

Lola has an area checker that tests a given area for anomalies. It checks for invalid mobile stats, bad descriptions / flags, and also generates a level estimate for objects and compares it to the actual level. It's very useful for builders, for example:
Code (text):
>edit area check gahld
[6408] Lvl 14    Object's con apply is too high.
[6414] Lvl 25/ 31 Object has more than 3 wear locations.
[6418] Lvl 15    Object's dam apply is too high.
[6400] Mobile should have equal or less than 171020 hitpoints.

Total of 4 errors found.
.........................
TinTin++ Mud Client - I can't believe it's not butter!

Mabus
Sorcerer






Group: Members
Posts: 255
Joined: Aug 24, 2006

Go to the bottom of the page Go to the top of the page
#13 id:40040 Posted Dec 30, 2009, 1:36 pm

Scandum said:
Lola has an area checker that tests a given area for anomalies.

CoffeeMud has a "deviations" command that allows checking areas.
Quote:
help deviations
Command : DEVIATIONS
Usage  : DEVIATIONS [MOBS/ITEMS/BOTH] [MASK]/ROOM/AREA
Example : deviations mobs area
Short(s):
A command for showing items in a room or area, and how they deviate from
established norms for their type and level.

Code (text):
deviations mobs area

Deviations Report:

Name                Lvl  Att  Dmg  Armor Speed Rejuv alignme Worn
a giant spider      21  +14    +5  +15  0%    240  -10000    0   
a giant spider      20  +15    +6  +10  0%    240  -10000    0   
a speckled hyena    17  -8    -2  -6    0%    240  1        0   
a giant spider      24  +15    +2  +3    0%    240  -10000    0   
a giant spider      23  +12    +3  +5    0%    240  -10000    0   
a giant spider      24  +13    +2  +3    0%    240  -10000    0   
a giant spider      21  +14    +5  +15  0%    240  -10000    0   
a giant spider      23  +12    +3  +15  0%    240  -10000    0   
a giant spider      21  +15    +5  +15  0%    240  -10000    0   
a spotted hyena      16  -5    +2  -6    0%    240  1        0   
a giant spider      21  +14    +5  +15  0%    240  -10000    0   
a speckled hyena    18  -1    -3  -4    0%    240  1        0   
a speckled hyena    16  -4    0%  -4    0%    240  1        0   
a speckled hyena    17  -4    +1  -5    0%    240  1        0   
a giant spider      21  +14    +5  +15  0%    240  -10000    0   

Handy.

We do a lot of "randomize on load" with our MOBs, so some deviations will exist.
.........................
-Mabus
Insomniac Coder

http://throes.slayn.net/images/ToCBanner.gif


Kline
Wizard






Group: Members
Posts: 854
Joined: Dec 14, 2007

Go to the bottom of the page Go to the top of the page
#14 id:40041 Posted Dec 30, 2009, 2:52 pm

Mabus said:
CoffeeMud has a "deviations" command that allows checking areas.


Thanks! This is something I will add to AckFUSS! I hadn't though of laying out data like that, but it seems useful for certain.
.........................
AckFUSS -- Check it out.
NAMS -- Re-inventing the wheel since 2012.

Top-notch VPS hosting @ prgmr.com (I get no referral bonuses; check them out!)

shasarak
Sorcerer






Group: Members
Posts: 421
Joined: Nov 28, 2007

Go to the bottom of the page Go to the top of the page
#15 id:40157 Posted Jan 4, 2010, 2:53 am

While it's probably not directly applicable to the original poster, one strategy for making a world more balanced is to make it self-balancing, with the effectiveness of any given skill, item or mob inversely proportional to its frequency of use.

So, for example, suppose a fireball spell is initially a little over-powered; people realise this and start to cast fireballs all the time. The game detects that the fireball spell is being used more often, and the more it is cast (not just by any one character but by everyone) the more the game dials back the damage the spell causes. This effect isn't permanent - if a spell isn't used much for a month or two then it becomes correspondingly more powerful as a result. This results in an interesting dynamic shift in the effectiveness of tactics - at the moment fire mages may be at a disadvantage because too many fire spells have been cast lately by all the newbie fire mages, and ice mages are in the ascendancy; but the more the ice mages use their temporarily enhanced powers, and the more ice mage characters are created in an attempt to cash in, the more the effectiveness of their magic declines.

It's not difficult to come up with a thematic justifcation for this - disruption to the channels between our plane and the plane of fire caused by excessive energy flow, etc.

This idea can be extended to equipment and mobiles: the more that copies of a particular weapon are used, the less effective all weapons of that type become; or, the more often a particular type of mob is killed, the less experience anyone gets from killing one, etc.

Doing this also encourages exploration - mobs and items in rarely-visited areas are automatically more valuable than those in more frequently looted locations.
.........................
Hand over the chocolate and nobody gets hurt.

Pages:<< prev 1, 2, 3, 4, 5 next >>