Importance of races and factions

Why are races so important in roleplaying games? What are “factions” used for in online multiplayer roleplaying games? What are the pro’s and con’s?

What are factions for?
----------------------
Factions are for storing who likes or dislikes whom to which degree.

Why factions and not races?
---------------------------
Races as they are implemented now only store simple information if
a race hates another race or likes another race. You could call
factions enhanced races as they store *how much* one faction likes
or dislikes another one.

How would factions work?
------------------------
a.)
NPCs would still be of a race, but that race would have fixed numerical
data containing relations to other factions.
Player characters would have a race too that would define their numerical
data at creation but their data is changeable individually.
b.)
The amount and name of factions should be configurable.
Let's pretend we have set up three factions, human, undead and orc.
Let's pretend that the relation can range from -100 to +100.
Humans(players) are created hating undead and orcs, but undead more then
orcs and love other human. So they would have ORCS -50, UNDEAD -100 and
HUMAN +100 upon start.
Undead hate humans and orcs alike. HUMANS -100, ORCS -100, UNDEAD +100.
Orcs hate humans and dont care about undead. HUMANS -50, ORCS +100.
Now pretend Yeshe is a player created in human faction.
c.)
If Yeshe sees someone else *his* factions are checked to see if this
someone would be blue, grey or red to him.
If this someone else is an NPC it would react to Yeshe accordingly. Other
humans would be blue (and helping), orcs and undead red and attacking.
d.)
If Yeshe kills a player or NPC, the players or races faction settings are
checked to see how that influence Yeshes factions.
If Yeshe kills an orc: His faction with orcs will get worse, his faction
with humans would get better but are already *over* the negative value of
the orcs so nothing happens.
If Yeshe kills an undead: His faction with undead don't change cause they
are already at minimum, his factions with humans don't change cause they
are already at maximum and his factions with orc actually get a bit better!
If Yeshe kills a human: Faction with orc and undead will raise, with human
will drop.
So if Yeshe kills enough undead he would be able to run around in an orc town!
c.)
How much and how high/low Yeshe relations change upon a kill depends on the
victims faction settings, too.
Yeshe could raise his faction with orcs by killing humans but could never get
over +50 faction with orcs that way. Killing undead could get his faction with
orcs to a maximum of +100.
If the victims faction is +-30 Yeshes factions are altered 1 point, +-60
alters 2 points and +-100 3 points.

What else would be needed?
--------------------------
a.) Quests
The scriptengine should be able to read and set faction data.
So one could set up quests that can only be done if the player has superb
faction with a special race.
Or one could set up a repeatable easy quest the give one factionpoint with a
race and such allow a player to "work up" into a town.
b.) Criminal flagging
Had to be altered so that doing a criminal action like attacking or stealing
*temporarily* lowers the relation to the faction of the victim very low.
Of course it could have have a slight permanent impact on faction too =)
c.) Guards
They would come in when they are called (by voice or by an attack) and check
if there are people around that they hate (also temporary) and kill them.
d.) Fame
Would stay the way it is. You may have already noticed that there are
similarities between how the fame system works and how I'm concepting
the faction system =)
d.) Titles
Fame titles stay the same. Karma titles would have to be set dynamically
according to the race of the one who looks at the person.
e.) Helping
For future enhancements it would be good if NPCs would be able to "help"
characters that they like. May it be that they join in a fight, may it
be that they heal if wounded...

Yeshes conclusion
-----------------
I think I have shown the possibilitys of factions which would be a great
enhancement to UOX. Plus it still would be easily possible to build a
shard that behaves like OSI.
Yes, UOX would require some lesser and greater changes and running
it would need more memory.
For every faction, numerical data of one signed integer needs to be stored
with every player. That can get quite a lot very fast. But that is why one
has a server running the shard and not an old workstation, imo =)
I think that the pros of such a system totally outweigh the cons and as UOX
is rewritten at the moment anyway, this would be a great opportunity to
build a basis for great future shards!

Abaddons comment on this
-------------------------
Many of the ideas that you have proposed in the document are similar to
ideas that I've had in regards to races already.  I'd already thought of
moving from a straight enemy/ally/neutral scenario to shades of
enemies/allies, with much the same limits ( +/- 100 ) as you had.  I
wouldn't want to call them factions though, as that's not truly accurate I
don't think.  By constraining to +/- 100, it reserves only a single byte for
racial relationships, much like it is now with a single boolean.  So memory
requirements in that regard will not change.  There are other plans I have,
to introduce new features and possibilities, have greater control over the
appearance and behaviour of races, and other things like that.  Already the
guards only come on voice/criminal action, and a guard is reused if a crime
occurs in it's vicinity.  It would be fairly simple to extend it a bit
further to cope with racial enemies I believe.

By extending races I'll need to extend the abilities of the JS engine to
read/write race data.  But I already had ideas in place on how to extend
that (exposing full information about races).  The up/down rate of your
system is probably very fast, and should be constrained a bit more.
Truthfully, I haven't come up with a good system on how to achieve that yet.
  Potentially a running counter for each race, in regards to # of kills, and
when the counter hits a controlled limit the relation changes.  Same as your
idea, except yours would have a limit of 1 ;)   To my mind, none of this
information would actually be stored with the player.  The actions of a
player of one race influence the way the other race sees the player's race.
Big bad ugly orc bandit on the highway would get a bad rep for orcs
everywhere :) 

Counterbalancing things like you have suggested is a difficult prospect.
Fairly simple and straightforward I think on low race counts, but it becomes
a nightmare as the race count increases.  Granted, it's only O(n) most
likely, and not O(n^2), but it does mean a linear scale with time.  So it
would need to be evaluated on requirements / possible features / benefits
analysis I think.

In general, it's a good set of ideas, many of which I have already thought
of/want to use in a future enhancement to races I feel.

Kommentieren ist momentan nicht möglich.