Difference between revisions of "User:Moritheil"

From Tales of Maj'Eyal
Jump to: navigation, search
m (Undead design philosophy: edit for clarity)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Add-ons for the total beginner =
+
=Guides=
There is something you should take care of before we talk about how to make things work: Have an idea.  
+
[[User:Moritheil/Guides|Add-ons]] for the total beginner - LUA/C aren't so hard that they are off-limits to someone who never programmed before.
  
All things exist first as visions.  Everything in the world around you - a chair, a knife, a fork - first existed as an idea in someone's head. Then they imprinted that vision onto reality, possibly adjusted for feedback.  So the process is idea -> acquire skills -> implementation.
+
Playable [[User:Moritheil/Guides|Vampire Race Guide]] - since no one else wrote one.
  
Making things just because you can or because they are easy to make, if you are new to making things, is not exactly a guarantee of quality. Work on committing the vision to paper (or notepad) before you open up an editor and start writing code. That way it should be clearer if you simply lack the ability to implement your idea (frustrating, but common to all creative types - writers, painters, poets included!) or if you actually lack clarity with the very concept you are trying to implement (in which case, other people in the coding forum cannot help you!)
+
[[User:Moritheil/Guides|Color]] - a running compliation of what colors are used in TOME4 and what they are used for. Good for consistency for add-on makers.
  
Basically the theory of writing your own races/classes is that you call variables into local variables and reference those local variables, then order results.  This accords generally with good coding practice, but is a good reminder for non-coders.  Also remember that if some way to do a thing already exists, try to respect the existing structure for uniformity across the game (and to enable correct behavior with future versions!)
 
  
You will usually want to use something like
+
=Races=
* local lev = self:getTalentLevelRaw(t)
+
Split off at the [[User:Moritheil/Races|Races]] page - Death Knights, Wights, and Vampires (the last by astralInferno, but for some reason not documented on the wiki)
* local levs = self:getTalentLevel(t)
+
  
to call the talent (or raw talent) level of racials when writing races.
 
  
List of things that you will want to know:
+
==Undead design philosophy==
* self.STAT_CON, self.STAT_STR, etc. are the variables referencing player character's stats.
+
* Don't forget to write behavior for what happens when you un-upgrade as well! (And if you're writing variable level behavior instead of uniform upgrades, remember to reference the PREVIOUS level it was upgraded to!)
+
* [[Callback]] is a very helpful page.
+
  
Good design practices
+
While the default races of ghoul and skeleton are very flavorful, they have serious issues matching power to theme.
* If you want something special to happen when you cap a racial talent, try handling it with more local variables (i.e. mastery = false/true) as this handles upgrades/reverse upgrades more gracefully!
+
* Communicate with the user! Display visible game log messages about what happens when you use specials, if procs fire and miss, etc. That way you (and your users) will know with certainty that your talents are working (and interacting with other details) correctly.
+
* Format your log messages with color!
+
  
= Color =
+
Ghoul, for example, is described as an ideal melee race, but many of its talents act in ways that contradict this. I'll give you an example: the ghoul body talent caps incoming damage as a percentage of total hit points.  While that sounds great - damage reduction is always wonderful - it in effect becomes weaker the more CON and HP you have (as it kicks in less), and is stronger for classes that do not increase HP very much.  For example, Archmage has a great kit and its sole weakness is to being one-shot.  Capping an incoming blow at some percentage of your total HP is more like an anti-oneshot mechanism than a true tanking ability.
A color page already exists; however, it does not list what those colors are natively used for in TOME. [[Colors]] include:
+
* #1133F3# cold
+
* #STEEL_BLUE# ice
+
* #LIGHT_STEEL_BLUE# temporal
+
* #GREY# darkness
+
* #PURPLE# arcane
+
* #YELLOW# mind
+
* #LIGHT_GREEN# slow status
+
* #aaaaaa#0 physical
+
  
{{race
+
What would be a true tanking ability? Something that limits your *overall* damage you take per round, for example, suppose it increases your resistance to all with each hit you take.  So the first hit you take per round would do 100% damage to you (modified by your other resists) then the next would do 80% and so on.  This diminishing return on enemy hits basically makes taking a dozen hits not much different from taking 5 or 6, which gives more of the "feel" of a tank and definitely encourages you to max out on CON and HP.  Another way to do it would be to give some flat damage threshold that increases with racial level, for instance, something along the lines of the psychic barrier abilities that block the first 40 HP worth of damage from physical/nature etc.  Again, this rewards you for bringing as many HP to the table as possible, since if all shots on you are reduced by a significant flat amount then survival is a question of how many HP you have to tank the damage that bleeds over.
|name=Death Knights
+
|metarace=[[Undead]]
+
|locked=[[Unlockables#Races|No]]
+
|life_per_level=12
+
|exp_penalty=+50%
+
|constitution=+5
+
|magic=+4
+
}}
+
  
=Project: Death Knights=
+
You should still die if you pick a fight with greater multihued wyrms and try to facetank them - but the point of being a tank is, even grossly outnumbered, you shouldn't be one-rounded. It should take some time for you to die, unless you are well and truly out of your league (say, you're level 20 and pick a fight with Lin in Angolwyn!)  If it can't one-shot you, it shouldn't be easy for it to one-round you.
  
A custom race add-on for TE4, meant to offer users a different playstyle and a different take on the main story.
+
Skeleton's issues aren't really with its tankiness, but with the idea of a skeleton mage being a cool but poor substitute for a lich.  There exists no alternate pathway in necromancy to give undead some of the abilities of the lich.  As a story-based decision, that is fine, but the awkwardness comes when you can't benefit from your own abilities that benefit minions - you ARE a skeleton mage; you should benefit too!  Especially if you can't go the lich route, you should have some alternate mechanic that lets you improve your form.
  
==Description==
+
Vampire (by astralInferno) is a little more intuitive and rewarding to play but it's a tremendous drain on Category points; I talk about that over at the Vampire Mage Guide. Basically, it's neat as hell but power-wise it's actually behind the elves, and it has a really nasty exp penalty that starts to make a big difference in mid and late game.  It gives the illusion of offering you more options than it actually offers, which gets unpleasant after you've sunk a substantial amount of your resources in and realize you won't get to cherry pick from the full suite of necromancer trees for whatever synergizes with what you were building. Part of that is just bad documentation, though, which I aim to fix here on the wiki.
Perhaps you were mortal once - long, long ago. But that time has passed out of all reckoning. Your service to a higher power was devoted and faithful, and when the veil of mortality parted for you, you were returned from the other side. Powerful and implacable, you traveled the seas of reality at the behest of your patron - She who granted you Eternity. Worlds burned in your wake. However, due to an unforeseen conjunction - or perhaps due to taking the favor of your mistress for granted - you have been stranded in this strange world, stripped of most of your might.
+
  
As undead, Death Knights have access to a wide range of immunities:
+
UPDATE!
* Poison immunity
+
* Bleeding immunity
+
* Fear immunity
+
* No need to breathe
+
  
The spirit of the death knight has been summoned using the medium of a local corpse, but fundamentally, Death Knights do not belong in Eyal. Their very natures clash with the fabric of reality, making it hard for anything to affect them and making it hard for them to act upon other things.
+
Shibari (the dev) was nice enough to speak to me and a few others about our concerns on undead balance.  Apparently many players had similar conclusions - they loved the flavor of the undead, but not how that flavor translated into gameplay. He agreed fully on the major points of how ghoul mechanics work, noting that while the ghoul innate IS damage reduction, it is not a tanking ability.  Additionally, he understood that the loss of access to major infusions like heroism and mobility were crippling for the undead, and while 50% stun resistance can be nice, it is inferior to the ability to call up 100% immunity when it really matters.
  
Note: Undead are unnatural creatures and may not use [[infusions]] or be any [[Wilder (Metaclass)|Wilder]] classes. They do not gain the [[Harmony (category)|Harmony]] talent tree from eating the [[Heart of the Sandworm Queen]], but they may consume a corrupted heart to gain the [[Vile life (category)|Vile Life]] talent tree.
+
Shibari's preferred approach basically leaned towards making runes better (and hence competitive with infusions), reasoning that we could figure out how to balance undead races in and of themselves after the underlying rune/infusion balance issues were solved. He pointed to the high number of useless runes (vision etc.) that a player gets and noted that their design didn't really take into account that runes are vital and core to survival in combat rather than optional things that produce a nice occasional boost.  He also suggested slightly downgrading stun to remove the cooldown-destroying effect, or else splitting it into a commonly found stun and a rare/boss only greater stun which would operate the way stun does now.  "The mechanic is fine," he noted, "as long as it isn't everywhere."
  
==Racial Talents==
+
== Thoughts on High Wights ==
{{:Deathknights_(category)}}
+
  
{{Ability box
+
Two things have informed my work with High Wights: one, the need to make a thematic choice that separated them from other undead (otherwise, why not play a ghoul?) and two, the need to make a viable melee race.
|image=Golem power.png
+
|name=Deathknights
+
|category_type={{ct|Undead}}
+
|category={{c|Deathknights}}
+
|require={{TalentReq/UndeadsReq1}}
+
|use_mode=Passive
+
|desc=
+
Your very substance and spirit are alien to this world. The laws of physics struggle to deal with your presence. You have trouble affecting this world, and being affected by it.
+
Increases your physical damage resistance by {{gtl|5|75|variable}}%.
+
Decreases your global action speed by 10% per level.  
+
}}
+
+
  
 +
It is well known that at higher difficulties long-range sniping classes with escapes, like Archmage, Alchemist, Temporal Mage, etc. dominate the game and melee struggles to keep up. This is generally not because melee is incapable of dishing out damage, but because it is incapable of taking the extra hits needed to get close or escape.  In particular, once a jump is used to close in, it is unavailable to either escape to cover or jump to the next target, which can lead to regular, agonizing deaths for classes with no inborn ways to scout. Peeking around the corner with an Arcane Eye hat, they see a reasonable sized group of trash mobs + a boss, they jump in and engage… and an alchemist rare walks around the corner at the far end of the room. Many other games have noted this design problem: melee classes are reduced to "coward mode" in terms of player choices and gameplay rather than giving the feel of being bold and in-your-face. A quick review of the forum notes the recurring theme that at higher difficulties of play it would not be amiss to give melee players an extra 100 or 200 hit points to start (and some don't even feel it would be enough!)
  
{{Ability box
+
Thematically, the choice to make wights psionic was not arrived at quickly, but once the idea occurred, several things clicked.  One, that is a clear power source that separates wights from other undead, and two, it is a neutral power source with respect to magic vs. antimagic. This blends well with the conception of wights as more natural than other undead in that they arise spontaneously, yet still unnatural. Pains have been taken to make sure that the psionic powers given to wights are inherently defensive, not offensive - the intent of the design is to make them psionically tough, not to make them a blaster mage race.
|image=Cold flames.png
+
|name=Touch of the Deathless
+
|category_type={{ct|Undead}}
+
|category={{c|Deathknights}}
+
|require={{TalentReq/UndeadsReq2}}
+
|cooldown=100
+
|desc=
+
Death comes for all beings - and, as a Death Knight, you hasten this process with your mere touch. Your touch executes an already injured enemy and consumes its soul.
+
Eventually, upon as you master the use of these souls, you may pass for a denizen of this world.  
+
}}
+
  
 +
Of course, in keeping with our general design aesthetic, we make use of the existing tools and mechanics in the game - it would not do to rewrite combat for one particular race, even if that would result in a more balanced melee experience!
  
{{Ability box
+
=Classes=
|name=Sacrifice is the Way
+
Split off at [[User:Moritheil/Classes|Classes]] page - Pirates!
|category_type={{ct|Undead}}
+
 
|category={{c|Deathknights}}
+
== Arrr (Why Pirates?) ==
|require={{TalentReq/UndeadsReq3}}
+
They're fun!
|use_mode=Passive
+
 
|desc=
+
Pirates have long been able to capture the imagination of game players. While historical pirates were not all that nice, piracy was a different way of life that appealed to many outside the rigid structures of classical society.
Death is power, and none know this better than you. As you kill creatures in this reality you mark them as sacrifices to your patron, slowly reestablishing your solidity.
+
 
Increases hit points based on the amount of enemies you have slain.
+
In terms of design within TOME4, Pirates represent my attempt to express that melee classes suffer not only from range and mobility issues vs. long range classes like the Archmage, but also from multiple ability dependence. Classes like the Archmage derive a huge portion of their strength and ease of use from basing everything off one stat.  Allowing a melee class to operate primarily off one stat should in theory go a long way towards fixing the severe power imbalance between the two at higher difficulty levels.
Every (100, 90, 75, 50, 20) victims grants you +1 max hp, to a maximum of 10, 50, 100, 500, 1000 hp.
+
Note: this is meant to reference the number of kills stat trackable under achievements, and thus it will be retroactive.
+
}}
+
  
 
= Acknowledgements =
 
= Acknowledgements =
Line 114: Line 59:
  
 
Ster for his unapologetic, in-your-face style of telling you what he thinks is good or bad
 
Ster for his unapologetic, in-your-face style of telling you what he thinks is good or bad
 +
 +
Shibari and stuntofthelitter for talking in depth about what they see as design issues and how they believe balance issues should be handled
  
 
darkgod for making TOME and taking a relaxed attitude to others creating add-ons!
 
darkgod for making TOME and taking a relaxed attitude to others creating add-ons!

Latest revision as of 07:04, 18 February 2017

Guides

Add-ons for the total beginner - LUA/C aren't so hard that they are off-limits to someone who never programmed before.

Playable Vampire Race Guide - since no one else wrote one.

Color - a running compliation of what colors are used in TOME4 and what they are used for. Good for consistency for add-on makers.


Races

Split off at the Races page - Death Knights, Wights, and Vampires (the last by astralInferno, but for some reason not documented on the wiki)


Undead design philosophy

While the default races of ghoul and skeleton are very flavorful, they have serious issues matching power to theme.

Ghoul, for example, is described as an ideal melee race, but many of its talents act in ways that contradict this. I'll give you an example: the ghoul body talent caps incoming damage as a percentage of total hit points. While that sounds great - damage reduction is always wonderful - it in effect becomes weaker the more CON and HP you have (as it kicks in less), and is stronger for classes that do not increase HP very much. For example, Archmage has a great kit and its sole weakness is to being one-shot. Capping an incoming blow at some percentage of your total HP is more like an anti-oneshot mechanism than a true tanking ability.

What would be a true tanking ability? Something that limits your *overall* damage you take per round, for example, suppose it increases your resistance to all with each hit you take. So the first hit you take per round would do 100% damage to you (modified by your other resists) then the next would do 80% and so on. This diminishing return on enemy hits basically makes taking a dozen hits not much different from taking 5 or 6, which gives more of the "feel" of a tank and definitely encourages you to max out on CON and HP. Another way to do it would be to give some flat damage threshold that increases with racial level, for instance, something along the lines of the psychic barrier abilities that block the first 40 HP worth of damage from physical/nature etc. Again, this rewards you for bringing as many HP to the table as possible, since if all shots on you are reduced by a significant flat amount then survival is a question of how many HP you have to tank the damage that bleeds over.

You should still die if you pick a fight with greater multihued wyrms and try to facetank them - but the point of being a tank is, even grossly outnumbered, you shouldn't be one-rounded. It should take some time for you to die, unless you are well and truly out of your league (say, you're level 20 and pick a fight with Lin in Angolwyn!) If it can't one-shot you, it shouldn't be easy for it to one-round you.

Skeleton's issues aren't really with its tankiness, but with the idea of a skeleton mage being a cool but poor substitute for a lich. There exists no alternate pathway in necromancy to give undead some of the abilities of the lich. As a story-based decision, that is fine, but the awkwardness comes when you can't benefit from your own abilities that benefit minions - you ARE a skeleton mage; you should benefit too! Especially if you can't go the lich route, you should have some alternate mechanic that lets you improve your form.

Vampire (by astralInferno) is a little more intuitive and rewarding to play but it's a tremendous drain on Category points; I talk about that over at the Vampire Mage Guide. Basically, it's neat as hell but power-wise it's actually behind the elves, and it has a really nasty exp penalty that starts to make a big difference in mid and late game. It gives the illusion of offering you more options than it actually offers, which gets unpleasant after you've sunk a substantial amount of your resources in and realize you won't get to cherry pick from the full suite of necromancer trees for whatever synergizes with what you were building. Part of that is just bad documentation, though, which I aim to fix here on the wiki.

UPDATE!

Shibari (the dev) was nice enough to speak to me and a few others about our concerns on undead balance. Apparently many players had similar conclusions - they loved the flavor of the undead, but not how that flavor translated into gameplay. He agreed fully on the major points of how ghoul mechanics work, noting that while the ghoul innate IS damage reduction, it is not a tanking ability. Additionally, he understood that the loss of access to major infusions like heroism and mobility were crippling for the undead, and while 50% stun resistance can be nice, it is inferior to the ability to call up 100% immunity when it really matters.

Shibari's preferred approach basically leaned towards making runes better (and hence competitive with infusions), reasoning that we could figure out how to balance undead races in and of themselves after the underlying rune/infusion balance issues were solved. He pointed to the high number of useless runes (vision etc.) that a player gets and noted that their design didn't really take into account that runes are vital and core to survival in combat rather than optional things that produce a nice occasional boost. He also suggested slightly downgrading stun to remove the cooldown-destroying effect, or else splitting it into a commonly found stun and a rare/boss only greater stun which would operate the way stun does now. "The mechanic is fine," he noted, "as long as it isn't everywhere."

Thoughts on High Wights

Two things have informed my work with High Wights: one, the need to make a thematic choice that separated them from other undead (otherwise, why not play a ghoul?) and two, the need to make a viable melee race.

It is well known that at higher difficulties long-range sniping classes with escapes, like Archmage, Alchemist, Temporal Mage, etc. dominate the game and melee struggles to keep up. This is generally not because melee is incapable of dishing out damage, but because it is incapable of taking the extra hits needed to get close or escape. In particular, once a jump is used to close in, it is unavailable to either escape to cover or jump to the next target, which can lead to regular, agonizing deaths for classes with no inborn ways to scout. Peeking around the corner with an Arcane Eye hat, they see a reasonable sized group of trash mobs + a boss, they jump in and engage… and an alchemist rare walks around the corner at the far end of the room. Many other games have noted this design problem: melee classes are reduced to "coward mode" in terms of player choices and gameplay rather than giving the feel of being bold and in-your-face. A quick review of the forum notes the recurring theme that at higher difficulties of play it would not be amiss to give melee players an extra 100 or 200 hit points to start (and some don't even feel it would be enough!)

Thematically, the choice to make wights psionic was not arrived at quickly, but once the idea occurred, several things clicked. One, that is a clear power source that separates wights from other undead, and two, it is a neutral power source with respect to magic vs. antimagic. This blends well with the conception of wights as more natural than other undead in that they arise spontaneously, yet still unnatural. Pains have been taken to make sure that the psionic powers given to wights are inherently defensive, not offensive - the intent of the design is to make them psionically tough, not to make them a blaster mage race.

Of course, in keeping with our general design aesthetic, we make use of the existing tools and mechanics in the game - it would not do to rewrite combat for one particular race, even if that would result in a more balanced melee experience!

Classes

Split off at Classes page - Pirates!

Arrr (Why Pirates?)

They're fun!

Pirates have long been able to capture the imagination of game players. While historical pirates were not all that nice, piracy was a different way of life that appealed to many outside the rigid structures of classical society.

In terms of design within TOME4, Pirates represent my attempt to express that melee classes suffer not only from range and mobility issues vs. long range classes like the Archmage, but also from multiple ability dependence. Classes like the Archmage derive a huge portion of their strength and ease of use from basing everything off one stat. Allowing a melee class to operate primarily off one stat should in theory go a long way towards fixing the severe power imbalance between the two at higher difficulty levels.

Acknowledgements

Mex for his guides, which include his way of thinking (very often the reason why someone says a thing is more valuable than the assessment itself!)

astralInferno for inspiring me to mod

Rexorcorum for doing the rare and too often thankless work of making icons for the add-on community

Ster for his unapologetic, in-your-face style of telling you what he thinks is good or bad

Shibari and stuntofthelitter for talking in depth about what they see as design issues and how they believe balance issues should be handled

darkgod for making TOME and taking a relaxed attitude to others creating add-ons!