Balance im MorgenGrauen
=======================

Ein Thema ueber das immer wieder gerne gestritten wird, ist die Balance
im MorgenGrauen. Auf der einen Seite steht der (auf den ersten Blick 
verstaendliche) Wunsch der Spieler, moeglichst maechtig zu sein, auf
der anderen Seite steht der Wunsch der Magierseite, den Spielern noch
Herausforderungen stellen zu koennen. Wenn Spieler nur noch zappend
durch die Gegend rennen, dann wird das auch schnell langweilig ...


Es gibt vier 'Institutionen' der Balance:

1) Gilden-Balance

Hierfuer zustaendig ist ein Erzmagier (momentan Humni), 
der versucht, die Gilden in einem einigermassen vernuenftigen Rahmen
zu halten. Hierbei beruecksichtigt werden neben den Faehigkeiten auch
der Aufwand und das allgemeine Gilden-Feeling.

2) Objekt-Balance

Fuer die Objekt-Balance ist eine Gruppe von Spielern und Magiern zustaendig
(das sogenannte Balance-Team). Behandelt werden praktisch alle Dinge, die
den Kampf irgendwie beeinflussen (Waffen, Ruestungen, magische Objekte, etc.)
Momentan setzt sich das Balance-Team aus folgenden Personen zusammen:

  Rhoakka, Tassram, Croft, Xutelius, Soynada, Zook 
  und Humni (als verantwortlicher Erzmagier).

** out of order: 3) NPC-Balance
**
** Die NPC-Balance soll ein Ansprechpartner fuer Spieler sein, die der Ansicht
** sind, dass irgendein Monster (NPC - non player character) zu stark, unfair
** oder sonst irgendwie daneben ist. 
**
** Eine Institution "NPC-Balance" gibt es bis auf weiteres nicht mehr.
** Zustaendig fuer die Eintragung von Erstkill-Stupsen ist Arathorn. Fuer
** Beschwerden ueber Monster, die zu stark oder zu unfair sind, stehen
** die Regionsmagier oder Zook zur Verfuegung.

4) Heilungs-Balance

Die Heilungs-Balance deckt alles ab, was irgendwie mit Heilung zu tun
hat. Konkret sind das Kneipen, Heiler (auch Gift, Krankheit, etc.), feste
Heilstellen, tragbare Heilung und Sachen die Saettigung oder Alkohol
runtersetzen. Momentan zustaendig fuer dieses Gebiet ist Humni.


Alle Institutionen arbeiten besser, wenn sie sowohl von Spielern als
auch Magiern unterstuetzt werden. Speziell die NPC-Balance kommt in der
Regel NUR zum Einsatz, wenn ein Spieler einen Misstand anspricht. Also
sprecht die entsprechenden Leute an, wenn ihr irgendwo ein Problem seht!

------------------------------------------------------------------------------
 LETZTE AENDERUNG:
    13-01-2011, Zesstra
    
