Procrastination

The first idea of the game was to make a clicker stat-builder, e.g. you click on a button and gain experience which results in leveling up and getting higher stats. After one "release" (as in a somewhat working program) I changed the idea to be an automatically running builder where the player choosing between different attack options.


Hard work often pays off after time, but laziness always pays off now.

Irresponsibility

My new project is a single player strategy RPG where you control up to 15 characters at the same time and battle monsters on, to start with, gridded map.

No single raindrop believes it is to blame for the flood.

Friday, November 27, 2009

Developoment tools

This is something I’ve been very reluctant to start with but it has to be done eventually; I need to create a tool to create and change all my attribute files. The basic idea is rather simple but the actual structure gets rather complicated and the whole program is a project in itself, also it is a lot of GUI work which I personally hate to do.

For starters there will be one main window which will be the whole workspace for the development program, under this there is not really any need for menus so the next part will be folders; kind of like the new Word 2007 where you have folders for each set of tools you can use in the program. The folders are the different types of files I need to manipulate, namely; characters, weapons, shields, armors and enemies. The window you get will have some similarities; the main one is the file list where you get all the files that are included in the set you are currently watching, for this there will also be an add and remove button. Another similarity will be that there attributes and that you can change these attributes and add new attributes.

Attributes themselves will come in a tree structure, where branches are usually a true or false and leaves usually have a value, this is to narrow down the size of each file and remove the need to have all values in all files. Attributes can furthermore be shown as radio buttons (for limited string or integer options), tick boxes (for Booleans) or fields that accept either strings (for example names) or normally only integers (for values). When a new attribute is added a popup window will show to ask if it is a branch or a leaf; branches will generally be true or false with default value false, leaves will generally be integers with suggested default value 1 (0 can be dangerous to use as it might result in divisions by 0 by mistake). After something is added the program will go through all files that are included in the list for that type and add the new attribute, one special file will save all default values. When a file changes a branch from false to true the attributes and their default values under that branch will be fetched from the save file.

Example structure for a weapon:

•Item_type : (fixed)
•Name : (String field)
•Type : (radio buttons)
•Damage_type* : (radio buttons)
oDamage_subtype : (radio buttons)
•Hands : (radio buttons)
•Min_damage : (integer)
•Max_damage : (integer)
•Range : (integer)
•Speed : (integer)
•Primary_attributes : (box)
oAttribute* : (box)
*Attribute** : (integer)
•Secondary_attributes : (box)
oAttribute*** : (box)
*Attribute : (integer)

* Damage_type will be devided into: Physical, Magical and Elemental, with sub types being for Physical: Slashing, Piercing and Blunt, for Magical: Dark (Black), Light (White), Arcane and Gravity, and for Elemental: Fire, Earth, Water and Wind.
** Primary attributes are: Strength, Agility, Intelligence, Endurance and Vitality (I might not include these attributes in items at all).
*** Secondary attributes are: Block, Parry, Dodge, Accuracy, Critical_strike, Armor, Resistance and Power.

Actions

Since beneficial skills works pretty much the same way as damaging skills this apply for those too, I will still call it attacks here though.

For all types of attacks there will be a set of target area, each attack will mainly have one target area; in rare cases an attack can have two target areas. These target areas are as follows:

· Single hit – the intuitively normal area, one hit on one target.

· Multiple hits – also very intuitive but it comes in flavors. Basically it is a single attack done multiple, but a finite number of, times and will roll attacks several times.

o Multiple hits/single target – all hits are directed at the same target, efficiently doing lots of damage to one target.

o Multiple hits/multiple targets – hits several targets, randomly or by choice.

· Slashing hit – one single attack that hits multiple, but a finite number of, targets. This also comes in flavors.

o Slashing hit/multiplying – a slash that rolls one attack and does the same damage to all targets it hits, e.g. the total damage done will be the attack multiplied by the amount of targets.

o Slashing hit/dividing – a slash that rolls one attack and divides it equally among all targets it hits, e.g. the total damage will be like one attack and the individual target damage will be the attack divided by the amount of targets.

· Area of effect (AoE) – one single attack that damages all targets within an area, this can hit an infinite amount of targets.

o AoE dividing – one roll divided on all targets it hits.

o AoE re-rolling – one roll for each target it hits.

· All targets – much like the AoE attack but with the area being the whole map. All target attacks can have specifics such as of target group: all hostiles, all friendly, or a unit type: all humanoids, all beasts, or a combination: all hostile beasts.

Attacks will also have effects, one attack can have more than one effect but rarely more than a few:

· Instant damage – the most obvious way to hurt an enemy target (or heal a friend), the damage will be instantly deducted from the targets health.

· Damage over time (DoT) – damage that ticks each turn for a certain amount of turns.

· Damage over actions (DoA) – damage that only occurs when the unit does something, the amount of damage taken will depend on the action.

· Damage after time (DaT) – damage that lies dormant until a certain amount of time has passed. E.g. there is time to remove the DaT before the damage actually happens, but because of the easy to save you completely from it this damage is often massive.

· Damage after action (DaA) – damage that lies dormant until the target does an action, by not doing anything a target can avoid damage until it can be removed. Because of the easy to save you completely from it this damage is often massive.

· Slow (or other speed effects) – increases the period between actions and the time it takes to do timed actions, but not cooldowns.

· Interrupt – break any action that takes time and set time until next action to full.

· Attribute effects – decrease (or increase) any secondary attribute of the target.

Wednesday, September 2, 2009

Tanking 3

The reason there are so many jobs mentioned that can somewhat tank or handle themselves alone in different situations is that I want to encourage diversity in play style, having a group with no multiple target tank and use several characters with jobs that can handle single or few targets on their own will allow you to go through levels that has several targets that needs to be taken down at the same time. Another option would be to use several “summoners” such as Beastmasters, Rangers, Hunters, Warlocks, Necromancers, Mages and Druids to let all their pets handle the tanking and only use your characters to do damage. The most obvious way to do it would be to have one of each tank style in your team and perhaps a fourth hybrid tank to handle situations that grows too big, for example a Warrior, a Barbarian and a Fencer for the main situations and a Swashbuckler for the little extra. It will always be a balance of tank, healer and damage though and perhaps that balance means there should be 5 of each in a team of 15.

Barbarian

Barbarians’ high natural resistance makes them very suitable to handle magic casting enemies. While they only wear leather armor Barbarians does not have high enough armor to handle a lot of physical damage, but this gives them both resistance and mobility enough to avoid a lot of attacks as well as mitigate much damage from casters. Fast running and jumping they can quickly close in on range targets and are particularly efficient against clusters of these with their short range are of effect and multiple hit attacks.

Too low armor to survive for long against frequent physical attacks Barbarians can’t handle multiple physical targets or fast hitting enemies. They can also get rather healer dependant.

Barbarians are still as tanks high in damage and will build threat mostly through keeping this damage up, they have skills for area of effect with their dual wielding weapons or can strike out on multiple or single targets with heavy hits. They have no specifically defensive skills.

Swashbuckler

Swashbucklers are the one fencing style job to use shield, for a tanking Swashbuckler’s armor will be upgraded for additional armor and with shield Swashbucklers are able to handle themselves rather will in both situations with several physical enemies and with single hard hitting enemies where avoidance is important.

Swashbucklers’ largest weakness is against magic users as they have low resistance when upgraded to chain. Too many targets will also be a problem as the mitigation is too low but since avoidance is very high at least more than a few can be managed.

The shield is the Swashbucklers’ main mean of building threat and avoiding damage, they have skills to do hard shield attacks (and as smaller shield do more damage but has less armor and block this damage will generate high threat, and as a skill they can also make their shield be a full avoidance instead of a mitigation which makes the Swashbucklers get the highest effective avoidance available, for multiple targets they multiple target attacks with both weapon and shield.

Pirate, Privateer and Corsair

Fencing classes with different level of armor these three are with armor upgrades (through talents) suitable for different tanking situations but in the same general style. They all use fencing weapons and are high on parry and dodge together with a gun through which combination they can keep up threat on both nearby and distant enemies.

As a range of armor level Pirates are weakest against physical and strongest against magical, Privateers are well balanced and Corsairs do best against physical.

Dodge, shoot, parry, strike and fence is the general style and even though most active skills are offensive these jobs can with correct talent build handle themselves as tanks.

Acrobat, Rogue, Assassin and Ninja

All high agility jobs will also have high dodge, if it is high enough they will most likely be able to avoid all attacks from slow hitting enemies, giving them at least a chance to hold their own in fights.

Beastmaster, Hunter and Ranger

Beastmasters, Hunters and Rangers do not tank on their own but through the force of the animals that they have summoned and control. As with the Animagi the ability to tank and what to tank depends on the beasts but in general beasts will only survive single target tanking, however, strength is in their numbers and with enough beasts under control they should be able to handle nearly any situation.

More on beast tanking later.

Musketeer tank

Another semi tank Musketeers can handle themselves in most one on one situations mainly through avoidance but can take a hit or two as well. As Musketeers aren’t truly tanks they will have problems to hold agro from others when they tank.

Fencer

The optimal avoidance tanks Fencers have high dodge together with high parry they are probably the most specialized job for extremely hard hitting enemies. Using stances to switch between full dodge, full parry and balance and either counter tanking Fencers can handle slow hitting damage enemies expertly and should never receive any burst damage at all and should rarely if ever need any heals, making them extremely independent.

There are saves for when avoidance drop below 100% but if it happens too often, as when the frequency of attacks always gets the Fencers too low they won’t survive for very long.

Fencers have three stances; balanced, parry and dodge. The balanced stance will change nothing to the Fencers’ stats and will probably use parry and dodge equally. Parry and dodge stances will nullify their respective opposite and gain half of that stat into their chosen stance stat, this will significantly increase that stat but significantly lower the total avoidance and even more the effective avoidance stagnation. Fencers have skills to replenish their parry or dodge significantly to help them if avoidance drops under 100%, they also have skills for increased counters, to build threat they can use different feigns and attack and with high hit normal attacks will always hit and very often crit.

Monk tank

Being perhaps the most diverse job for tanking the unarmored Monk are truly excellent for everything. Wearing only cloth they have full freedom of movement but almost no gain to either armor or resistance, however, with their naturally thick skin and resilient minds they have both high natural armor and resistance. Monks are best on single or few targets as they don’t have multiple target or area of effect attacks, however, where they are good they are truly excellent.

Having no way to attack several targets is their main weakness but a second drawback is the lack of 3 methods of avoidance and block; monks have to chose to use either fist weapons with which they can block and will get a very high chance to do so but the block value is not high and the damage will only be mitigated but with the benefit of counter attack on both dodges and blocks, not avoided, or to use a staff which will give them a chance to parry which is lower than the chance to block with first weapons and only counters on parry but which gives a significantly higher full avoidance.

The range of skills using first weapons is almost completely different from the ones available when using staves, the few available for both are defense skills to increase armor or resistance and a shield to reduce damage from next incoming attack significantly.Fist weapon skills consist of powerful single target hits (basically taunt), guaranteed counters on all attacks, significantly increased block value and return damage on blocks.Staff skills consist of single and double target hits, increased parry, increased counter on parry and parry wall which has the Monk spinning the staff so that all incoming attacks are parried and countered for a period of time.

Druid and Shaman tanks

The similarities between Druid and Shaman tanks are significant, the only major difference being the use of chainmail for Shamans and leather for druids, giving the former higher armor and lower resistance and the later lower armor and higher resistance. Neither is optimal for tanking but for easy tanking situations they can both use staves and high parry ability together with natural forces to increase defensive abilities as well as keeping a few enemies busy.

All around decent neither class have any specific weakness but neither do they have any specific strength, this being their biggest weakness they can both handle most easier situations, Shaming being more suitable for physical enemies and Druids more suitable for magical enemies.

Skills to temporarily increase parry with staff or guarantee a few to several parries, different kinds of barkskin to increase either armor or resistance at the cost of mobility, attacks on multiple targets with staff and natural storm attacks to hold, damage or hold and damage single or multiple targets.

Animagi

Shifting to different types of animals the Animagis can use a combination of their own skills and powers with those of the animal they turn into to handle almost any situation. As armored turtles they can take almost any amount of damage without feeling the pain as well as reflect magic from the hard shell, as thick skinned rhinos, hippos or huge elephants they will be able to take both physical and magical damage and trample their enemies at the same time and as agile panthers or tigers they can dodge almost any incoming attack. At the same time they can cast their effective animalistic magic to both damage and support their already powerful animal bodies. Shifting between suitable forms makes, despite the high cost, the Animagis one of the most flexible jobs available and with innate natural skills and power over other lesser animals and plants they can easily keep their end.

Although each form is powerful they also have severe limitations, slow moving turtles will never dodge anything and their attacks are slow and weak, the big animals are even easier targets and the cat animals won’t survive long if being hit. With these limitations in each form and the cost of changing as well as the limit to only a few forms (1-3 perhaps?) the Animagis have to consider their choices carefully. In certain forms they are very healer dependant.

Skill they can use in all forms are calling insects to disrupt enemies attacks and lower their chance to hit, have plants grab at enemies from below to keep them in place, explode a burst of air or water to damage enemies all around them and draw upon the powers of the nature and life around them to sustain and protect themselves when hurt.

Sorcerer tank

Perhaps not the most optimal tanks Sorcerers can still handle themselves in many situations using their gravitational and time magic for defensive purposes, particularly against ranged targets where they can set up time slowing barriers to allow them the extra moments to magically deflect or avoid incoming projectiles or magical damage combined with their own wide range but weak area of effect spells to hold agro from the enemies around.

Pretty much defenseless when enemies comes too close a Sorcerer will go down quickly if no one takes care of the melee enemies in range of his threat building area.

Sorcerers have skills such as time slow which will help them avoid almost any incoming projectile, time stop to stop incoming projectiles, counter spells, spell interrupt and spell steal to hinder ranged casters from completing their spells and the ability to change the gravitational pull to disrupt any attack coming their way.

Battlemage tank

With powerful enchants to stay boost up armor and resistance enough to survive a hit and light armor for mobility Battlemages can handle most situations. Their main strength lies in the high resistance as they combine thick leather with magical shields to absorb almost all incoming magic. With their magical powers the Battlemages can seemingly be at several places at the same time as well as use their magically summoned weapons to attack at a distance making them the perfect tank for multiple ranged enemies who refuse to engage in close combat.

With comparably low armor and no shields to block Battlemages won't survive for long against too frequent physical attacks.

All Battlemages use their power to summon both offense and defense gear, the defensive arsenal consists of magic absorbing shields which tanking Battlemages can set up multiple versions of (1 without talent, 2-3 with talent), illusions to have enemies attacking shadows and short range teleportation to avoid attacks completely, they also use offensive abilities such as ranged spells to taunt enemies, short range teleportation to get in range to melee attack enemies and magically animating their summoned weapon to attack targets at a distance.

Gladiator tank

Gladiators are the ultimate duelist and even though they are not optimal for tanking they can still handle themselves without much support in any one on one situation. Wearing leather armor they gain high resistance to take care of casters as well as the mobility to dodge and parry easily, combined with a medium size shield (usable through talent) they get enough armor and block ability to sustain the few hits they are likely to take.

Strength as tanks lie in the ability to keep single targets busy and even take down by themselves while the more suitable tanks take on multiple or tougher enemies together with the rest of the team.

Gladiators are not specifically meant to tank so they have no specific way to take and hold agro once friends start attacking.

No specific tanking skills but duelist skills such as shield attacks, feigns and blocks or deflects are usefully balanced for damage and survivability.

Paladin tank

Tanking Paladins are different from Warriors in that instead of brute force and shouts they use holy magic both to stay alive and to keep the aggression from targets on them. Paladin tanks are also heavily armored in plate and large shields plus additional magical support as well as defensive auras to reduce damage from both themselves and friends in their vicinity. Paladin tanks' strength lies in their ability to stay alive without any support; as long as they don't get in over their heads they can boost and heal themselves as well as a nearby friend or two while still holding their targets at bay. Strength against numeral enemies and particularly those who are unholy in any way Paladin tanks work best when receiving there is a constant stream of damage and no sudden bursts too often, with the diversity of choice in auras and holy buffs Paladin tanks can handle almost any type of damage; magical as well as physical.

Paladin tanks' weakness is against slow very hard hitting enemies who do heavy burst so that the Paladins don't have enough time to heal up before the next burst.

Tanking Paladins are equipped with and arsenal of defensive holy skills such as defensive auras for almost any given occasion, holy smite spells to hurt and aggravate enemies, divine protective spells and powerful self heals that will bounce to nearby friends to keep them alive when accidents happen.

Warrior tank

The Warriors are the most obvious choice for tanking, strong and resilient they can take a lot of beating and with ferocious booming voices they taunt all nearby enemies to keep them busy while others are free to kill them without interruption. Warriors are the essence of an armored tank; always wearing heavy plate armor large shields they have enough armor to take many hits, even though dodge is low due to the heavy armor and parry is not very high they can block often which will reduce damage taken significantly. However, they are highly dependent on a healer but since they have skills to redirect damage from nearby friends those healers can focus their full attention on the Warrior tanks.

The Warrior tanks' largest weakness, excepting healer dependency, is their low resistance, even though they can deflect spells with their large shields they will not survive heavy magical bombardment for any longer period of time.

The range of skills tanking Warriors have at their disposal are taunts (and other shouts) to keep single or multiple targets attracted, blocking skills (to temporarily guarantee blocks), defense buffs (to increase defense for an extended period of time or a whole battle) and protection skills to save others by redirecting damage from them.

Tanking 2

Playing World of Warcraft as a semi serious Paladin tank recently I've become quite interested in the tanking mechanic and come up with an idea of how to implement 3 very distinctly different ways of tanking and through that opening up for the idea that not only using a heavily armored fighter as a tank as mentioned in Tanks.

To implement these major differences I will introduce a new main mechanic, a diminishing avoidance; this will make each avoided attack reduce your chance to avoid the next attack and each means of avoidance will be reduced individually. This will affect dodge, parry and block. The reduction will be based on full avoidance and current avoidance and will then replenish with a percent of max value, the replenishing value can be increased by talents in some jobs and also "jumped up" by skills, taking one turn of actions.

The function to calculate this would look something like the following:
choseLargest(choseSmallest(avoidanceCurrent*A% , avoidanceMax*B%) , avoidanceCurrent*C%), meaning while avoidance is higher than a certain % of max A% will be reduced, otherwise B% will be reduced but the reduction will never be higher than C% of current.
for example for A = 45%, B=20% and C=75% and avoidanceMax = 100% and replenish is 5% per second and an avoid happens every 3rd second.
The first attack would reduce avoidance to 55% and then increased to 60, 65 and 70
1: 55 - 70
2: 38,5 - 53,5
3: 29,4 - 44,4
and will finally stagnate on 20,0 after 13 avoids (under 25% from 9 dodges) since 75% of 20 is 15 and that equals the replenishing rate.
With these values the stagnation is at 20% meaning a character would need 500% to keep it over 100% at all times.

This mechanic forces a change to the hit mechanic and the hit table, probably it will work as it does when total avoidance (plus block) is lower than 100%, if over it will create a new hit table with only dodge, parry and block at an equal ratio. This means if you can make dodges and parries stagnate over 100% you should not have any block at all and would probably do best to dump your shied if you have one, this won't be an issue very often though as shield using jobs won't be able to do that without block.

So the three distinct types will be armor tank, avoidance tank and resistance tank. Of course this is a simplification as all tanks will need to have some armor, avoidance and resistance, however a heavy armored plate and shield tank will not have to rely on complete avoidance but will take heavy damage most of the time and need lots of heals and probably not be able to handle single very hard hitting or magic using targets very well, while an avoidance tank will do well with slow hitting targets and rarely, if ever, need any heals but have huge problems with several or very fast hitting targets as the avoidance diminish will be too quick for the replenishment and therefore quickly die.

Armor tank: the armor tank relies heavily on a big hit point pool and high armor value for an even higher efficient hit point pool against physically hitting targets. The armor tank will use shield for damage reducing blocks which combined with dodge and parry will lower the avoidance reduction (since it is divided by 3). However in heavy armor dodging in particular is harder and an armor tanks will rarely reach a level where they can block or avoid all attacks. Armor tanks specialize in taking low damage frequently as they mitigate damage more than avoid it. Typical armor tanks are Warriors and Paladins.

Avoidance tanks: often lightly armored and without shields the avoidance tanks relies heavily on never taking any damage at all, having very high dodge and parry the avoidance tanks should be able to keep their total avoidance over 100% at all times. In cases when the avoidance drops below 100% they should have skills to increase avoidance, temporarily guarantee an avoid or heavily reduce the damage of the next attack. Typical avoidance tanks are Fencers and Corsair.

Resistance tanks: heavy metal armor often has low resistance making the armored tanks unsuitable to tank magic using targets, thick skinned animals and humans and leather wearing resistance tanks however are excellent at this. Typical resistance tanks are bears (shape shifted Animagi or tamed pets) and Battlemages.

Hybrid tanks: some tanks lie somewhat in between the three distinct roles and can handle situations of various sorts, these can for example have both high armor and high resistance like Barbarians, medium armor and shield but still high on avoidance like Swashbucklers or somewhat high avoidance, high natural armor and high natural resistance like Monks.

Tuesday, May 12, 2009

Recent development

Recently I took up the work on this project again and I finished the automatic testing part quite quickly, once I started to work with the interactive part I realized that all the code I put in the interactive test class I realized it worked more or less the way I wanted to, but the code was messy and it took a long time to extract it to what I call event classes; I now have action events and item events. This was the first step to going away from playing in a console window and building a guided user interface instead, I managed to sort the test class out and make an interface for I/O and set up a GUI to display and get choices from instead, also for testing purposes I created a third implementation of that interface which always gave fixed returns and displayed the same as the original test class. Finally the differences between the tests were so insignificant I could use the same code for all and from that I created a driver class, which is the main thread of the game.

Parallel with this I worked on stages, jobs, monsters, skills and items where I managed to implement all of these using simple configuration files and the properties class, this way I have created all but the agility job among the base jobs and one or two jobs for higher grades. Stages full with monsters and item rewards at the end ranges from stage 0 to stage 7 now, with stage 6 as a boss, I’m only satisfied with the story behind stage 0 and 1 though, the introduction and tutorial stages. For each stage there will be a lot of work needed with the balance but as long as I haven’t finished the jobs and their skills there is not much point in working on balance questions, the new timing attribute I will add today will also affect balance greatly.

Timing

Even if it is a turn based game still I will introduce a timing feature; basically all actions will take a specified amount of time and cannot do anything new until this time has passed. I have already in skills set two variables, cast time and cool down, and all weapons also has the cool down variable. To start with I will let all actions be instant and only work with cool down. It feels somehow more realistic and easier to imagine to work in seconds therefore I will set a normal cool down, or a normal action, to about 2 to 3 seconds, the representation for this, however, will be in hundreds of a second, each countdown will be .1 seconds at a time, which will basically be a turn, and decrease countdown value by 10, this can be increased though and that is why the representation is larger; with increased speed a higher value, such as 11 or 12 will be deducted each .1 second, giving a 10% or 20% speed increase respectively. The time variable will lie in the unit and counted down on each iteration, a unit will not be selected to do an action if the value is higher than zero.

Tanking

My original thought on how the battle strategy and monster AI should work is quite similar to WOW were you have a threat value and threat range; basically each monster will have a priority list with each player in it and simply attack the one who has built highest threat, action would cause threat to rise depending on distance and action. For example a damage spell like firebolt does X damage and raises the threat by X times f(distance), where f is function that reasonably decreases with distance. However since damage dealers would reasonably do much more damage than tanks they would easily steal the position as target, to counter this the tank uses skills which does additional threat even though damage is low, and other skills that only exist for threat building and/or forcing the user to be the target of the target for some time, so called taunts, another way to counter the higher threat from damage dealers is to let them have skills with reduced threat or have skills that reduces the threat value of enemies, single or all. Finally to make it a bit more difficult each action should affect all enemies within a distance, forcing the tank to divide his attention to several targets or have several tanks, this will require the tank to have skills that build threat very quickly and/or skills that can build threat on several enemies at the same time. Outside the threat distance enemies will not raise their threat value, and as long as their threat level is below zero they will not attack anyone.

The new idea that Kei introduced to me yesterday is more dependent on the positioning of characters; basically the monster will chose a target based on some value, perhaps can use something similar to a threat value, but as the enemy moves and attacks it will do so with the first target it can find along the way, e.g. if you place your tank between the enemy and the target the enemy will automatically attack the tank. There will have to be a form of calculation where the targeting system decides on a path from the unit to preferred target, and then basically simulating a walk over that path and picking out the first target available as the real target, this could also include positions neighboring the path.

I guess I could use a combination of the two, basically making it more difficult for the tank to hold a high threat level but allowing positioning to matter, so that even if a tank loses the main target position he will still take the damage as long as he is standing between the enemy and the preferred target, giving the tank a chance to build up threat again.

Thursday, April 30, 2009

Templar

A new job, Templar, is introduced. Templars can at job level 5 chose between being a Light Templar and a Dark Templar.

Templar– Lighter armored than Paladins and Crusaders Templars tend to be more offensive. Templars can do astral projection which instead of using their physical bodies uses their souls and travel the spirit world to either enhance a friend greatly or fight foes. Templars can wear leather and chainmail armor, they are specialized in swords and dual wielding and can also use maces.
a. Light Templar – Light Templars are strong with defensive and buffing skills and uses their astral projection to enhance friends more than fighting enemies. They still can fight however but weaker than the Dark Templars. Light Templars have special skills to destroy Dark Templars.
b. Dark Templar – Dark Templars are more aggressive and much stronger than Light Templars in their offensive skills, especially in astral projection is greater, however all religious classes have a high chance of resisting them and have astral blast that does great damage to the Dark Templars.

Gauges

I like the idea of different "energy" gauges they have in World of Warcraft; most classes still use mana but there is the warrior rage, rogue energy and in the latest patch (which I haven't tried) the use of some kind of symbols.

My idea that each job group will have their own type of energy gauge; one for fighter jobs, one for magic jobs, one for religious jobs, one for ranger jobs and one for agility jobs. Jobs that are in two groups might have two gauges for different skills.

  • Fighter jobs, fury gauge - The fury gauge is a balance gauge ranging from -50 to 50 and will start at 0 in all battles. Lower values means a more focused and concentrated fighter who will have higher defensive values, e.g. dodge, block and parry easier. Higher values means an angrier warrior who does more damage but tend to slip on his defense.Skills and taking damage will all either increase or decrease this gauge and some skills can only be used when the gauge is higher or lower than a certain value. The gauge will always slowly move toward zero.
  • Magic jobs, burst gauge - That burst gauge has a multi level scale where each level is harder to attain than the previous; if the gauge has 100 points and 5 levels the first level will be reached at 5 points, second level at 15 points, third level at 30 points, 4th level at 60 points and 5th level at 100 points.Points are gained by casting spells and will increase significantly when getting critical hits. When a level has been reached the caster can use all the points in his gauge to increase his casting for a period of time.
  • Religious jobs, faith gauge - The faith gauge is a 0 to 100 gauge where all skills and spells costs roughly the same, however the drawback is that it always increases so casting fast spells will very quickly deplete the faith while casting slow spells will allow it to remain the same or increase while casting. Some skills and spells requires a minimum amount of faith to be cast and the faith gauge can be increased by praying, faith will only increase while casting faith spells or praying.
  • Ranger jobs, balance gauge - A very short scale from only -2 to 2 where each skill will always cost or give one balance, this means the ranger character will always need to alternate between skills to keep the gauge balanced.
  • Agility jobs, energy gauge - The energy gauge works quite like the mana gauge except that it is much shorter (as in only 0-100 points) and will always increase quite rapidly. Agility skills costs energy and will decrease the gauge or not be useable if the energy is too low, some skills effectiveness will be based on how much energy the user has or can draw (e.g. some skills will be more effective when there is more energy even though the cost is fixed while some will also use more energy to do a greater effect, there might even be some skills that are more effective when energy is low).

Everybody will also have a mana meter which can be depleted, however, some skills for some jobs will have very low or no mana cost.

Mana meter - The traditional mana meter will work as it usually does; each skill and spell costs some mana and the meter will be decreased by that, if the casters do not have enough mana they will not be able to cast the spell. There are different ways to increase mana when; there is a constant mana gain but it is very slow, some casters can boost their mana by waiting, some casters can steal mana from other mana users, some casters can convert their own life to mana, some casters can steal life from others and convert it to mana and some casters can borrow power from other casters or friends.

Saturday, February 14, 2009

Characters, stages and story

Normally in this kind of game there will be one main protagonist (or main procrastinator perhaps) who starts off and then rallies various companions to his or her cause. I have decided to step aside from this and being inspired, again, by supernatural (the TV-show) I will have two characters from the beginning. The main idea is that these two set out for an adventure by taking work as mercenaries, which will eventually lead to a moral decision to save the world, or something in that direction.

The two first characters, who now have the working names Alpha and Beta, will be 20 plus years old, have three to five years age difference and not exactly be getting along, like brothers, because they are brothers. This sets up the first stage, or stage 0, which is a tutorial stage where the two brothers will fight unarmed and unarmored for X rounds (say 30 or so round so they can make about 10 attacks each). Stage 0 will be tutorial for how to attack and perhaps use basic simple skills. This is basically before the brothers leave home and they keep fighting with each other.

Both Alpha and Beta will start as fighters and both will be able to become warriors and knights, so they can basically both be main tank and/or leader for the fighting classes. There the similarities end though; Alpha, the older, will draw more towards the magical with choices of paladin, crusader and samurai among the fighting classes and the option the change to either magic class, where he can be battlemage or warlock (but not wizard), and religious class, where he can be cleric, monk, paladin or crusader.

Younger Beta is a bit more chaotic in nature and will be drawn to the more shady agility classes. In fighting classes he can chose from warrior, knight, barbarian, berserker or gladiator. He can also change to ranged classes where he can be musketeer, hunter or ranger and agility classes where he can pick from corsairs and swashbucklers.

This opens for a lot of options from the start already, of course it will take a few stages before you can actually pick any job except fighter, but the fighters talent build (which is a base character build and will only have the first tier) you can pick between reducing threat or increasing threat.

At the second stage, stage 1, both characters will be equipped with wooden practice swords and light armor and together they will face one practice foe. This is the real first stage of the game but still tutorial minded. Stage 1 is tutorial for how to work together and build threat with one character using threat and defense skills and doing damage with the other using damage skills. This stage is when the brothers have decided to become mercenaries so they take up some training with a recognized master.

After stage 1 a third character, working name Gamma, will be introduced. This is a girl priest whose actual name I have already decided but will not reveal just yet. She will be able to pick from white priest, gray priest, black priest and druid, she can also change to magic class where she can pick from any mage, sorcerer, battlemage, animagi, bard or dancer. Gamma cannot be any leader class.

At this point the group can take on a little heavier enemies and they will start taking on mission as mercenaries, killing monsters for money, stage 2 will still be a tutorial for how to work in group with a healer, tank and damage dealer but at least the story will have started.

From here on there will be lots of additions to the team and by level 10-15 there should be a full team of 15 characters. Anyone can at any time change job but they will have to start over from job level 1 in the base job (or level 1 in the job group if they pick from same group).

More jobs

Introducing two new jobs:

  • Archpriest (bishop?) - The archpriest is the leader class for the religious classes. Being the leader an archpriest has all skills from the class they turned from and most skills, excepting only the higher level skills, from all religious classes. Archpriest can at high level and with the help of other devoted characters summon a powerful angel to smite enemies.
  • Crusader – Crusaders are much like paladins; heavy and armor and with powerful divine magic at their disposal. The main difference is that they are more into two handed weapons or dual wielding than shields, even though they can wear shields. Because of this crusaders will be more suitable for damage or healing than tanking.Crusaders wear any armor (leather, chainmail and plate) and shields, they are specialized in swords and maces (both one and two handed) and can also use two handed axes (but not one handed). They can use divine magic.

Friday, February 13, 2009

Combat engine

It is not impossible for me to make a real time engine for this but creating threads and making the timing workout and more about controlling all characters in real time is way too much trouble. And doing it completely turn based with just a round robin method would be quite boring. Instead I plan to use a timing system where every action has action time (cast time) and many skills will have cooldown. A normal action like attack will take 3 turns (this could be equivalent to 3 seconds).

For this I have to introduce variables on all weapons and skills for action time and cooldown, I must also create some kind of method to count this down. I imagine this could be done about the same way as I do the thread pausing in procrastination; basically have a static method that registers an action in a list and for each turn go through that list and count it down. I think this can be done in the action method in the BattleHandler class.

Wednesday, February 11, 2009

Weapon changes

A minor change in weapons is that spears are no longer polearms and there will be one handed and two handed spears.

New jobs

New jobs introduced are:

Fighters (brutal forced change to fighters):

  • Gladiator – Strong fighters using one handed weapons and shield.Gladiators only wear leather armor but use small shields both as a weapon and for blocking and extra armor, they can use any one handed weapons (including swords, axes, maces, knifes, spears and fist weapons).

Magic users:

  • Bard – Semi magical bards use their charisma to inspire their fellows to perform better as well as confuse their enemies to perform worse. Bards can steal from enemies.Bards can use basic magic as well as swords and leather armor.
  • Dancer – Like the bards dancers use their charisma but instead of inspiring their friends, dancers confuse their enemies to perform worse. Dancers can steal from enemies.

Tanks

Initially I consider mainly only one type of tanks, but later I’m considering introducing more:

  • Fighter - The obvious one is a fighter type character in plate armor and large shield with initial block, parry and dodge rate and very high armor, let’s call that an armored tank. The armored tank is typically a warrior or paladin and they build threat by either taunting or using especially threat heavy damage skills. Generally they will also have skills to increase their block rate substantially.
  • Fencing? - A parry-counter tank, generally they are classes that only use leather armor but can upgrade to chain with talents, they use fencing swords which are high on parry and accuracy and use skills to increase their parry and use high threat counters to keep the creatures attacking them. Fencing tanks can be fencer (obviously?), corsair and swashbuckler. With a tanking build they can all improve their armor; fencer and swashbuckler to chainmail armor and corsair to plate, the swashbuckler will be able to use medium shields instead of only small.
  • Magic? - Also considering introducing a magic using class as tank, with battlemage as the only available option, where a tank specialized build would give the battlemage powerful magic armor.
  • Beast? - Summoned and shape shifted beasts could also possibly tank; they would then rely on heavy natural armor and dodge.
  • Unarmed?- Unarmed and unarmored monks have always been a favorite of mine for tanking, they would rely heavily on dodge and dodge counters (which is allowed when they can’t parry) but also on block as my idea is that someone using fist weapons in both hands could use them to block with, but not nearly as good a block as with a large shield (maybe similar to a small shield). Monks also have quit high natural armor.
  • Staff? - Also monks but using staffs instead of fist weapons and therefore relying more on parry-counter than dodge and block. This offers two interesting builds for thanking monks.

Shields

Introducing shield types: I want define different shields by size. Basically three sizes; small, medium and large, where a larger size means significantly more armor and block value (e.g. absorbs more damage); a small shield will basically be equivalent to a leather armor, medium to plate armor and large even more. The benefit of the smaller shields is that they do more damage when used as a weapon; a large shield will hardly do any damage at all.

Most shield using jobs will only be able to use small shields, tanking classes will be able to use medium shields as well. Large shields will require tank talents excepting legionaries. Legionaries can’t really tank thought as they can’t build threat. This idea extends into tanking theory.

The following jobs use shields:

  • Small shields – fighter, gladiator and swashbuckler
  • Medium shields – warrior, paladin, soldier, guard and swashbuckler (with talent)
  • Heavy shields – Legionnaire, warrior (with talent) and paladin (with talent)

Controling of summoned creatures

My personal favorite, or favorites, among these classes are the ones that use firearms, fencing swords or animal summoning. I think the reason for the former is that I just pushed through David Gemmel’s Ravenheart, the 3rd book in the Rigante story, and there is a lot of heroic gun fighting and sword fighting in that book. I will start reading the 4th book, Storm Rider, tomorrow for that matter, perhaps I will find even more inspiration. Speaking of inspiration I found a book on weapons and armor over the centuries when I bought the Gemmel book today, it is a bit too pricy for me at the moment but I’m considering buying it for inspiration when I got some more cash.

This post however is not about inspiration but more about summoning and in particular animal summoning. Summoned creatures will be controlled in a few different ways depending on what they are and who is summoning them. For instance:

  • Beasts summoned by a druid will not be controlled at all but rather randomly pick one hostile unit and start beating. Perhaps that can be controlled by the druids in that they chose who is hostile.
  • The big summonings from mages will be controlled directly; as the mages actually possess the elementals or dragons they summon and thereby are in nearly full control.
    The reanimated courses raised by a necromancer will simply have a target picked by the necromancer when he is raising them, this can of course fail if the necromancer is trying too hard (trying to raise too many or too powerful creatures) and the creatures might pick any random target, even friendly and likely the necromancer.
  • I haven’t decided exactly how to control demons (and devils?) but an idea is to set up probability or priority tables with the warlock who summons them, or a list of things to do. When the demons reach the end of that list they warlock will lose control and they will go for revenge, so it should be banned before that happens. More powerful warlocks will gain a longer list but summoning stronger demons will make the list shorter or a stronger demon will make the tasks quicker. Example list of three positions: attack creature A, attack creature A, attack creature B. A weak demon will keep attacking creature A for 10+10 turns and then attack creature B for 10 turns, giving the warlock a lot of time before it needs to be banned. A strong demon however might only do each task once, attack creature A twice then creature B once, this might still do more damage than the weak demon but it will occupy more of the warlock’s time too.
  • Finally to the original idea for this post, trained animal summoning: First the trained beasts will gain skills (not anywhere near the extent of human player characters) when they grow stronger, the amount of skills they can have is decided by their level or job/class. To implement this I think it is likely I will use the job class and create a trained beast class which is allowed certain skills. The skills are given by the trainer and could well be interchangeable.
    Control in combat can be done in two ways; either the trainers directly command the beasts, thereby using up their own turn for a combat, or they set up logical rule system for how the beasts should act. The former idea is taken from Final Fantasy 12’s gambit fighting system. A lot of RPG games have automatic fighting systems where one rule is chosen, for example attack weak target or attack strong target. Other simple gambits can be attack target’s target or defend target. To this it could be introduced logical properties such as, defend target if target is attacked (very logical since it wouldn’t have anyone to defend against), defend target is target is attacked and life is lower than 50% (percent or absolute values). Then with simple priority the beasts might very well be able to take care of themselves throughout the battle.
    However the amount of gambits one character can set out is limited, and this limit applies to all beasts in his control, and I mean both the length of the priority list and the gambits are limited. For example the controller has only 2 attack target and three beasts. Then he will have to use something else, like defend target or attack target’s target. Also the controller might only have 5 priorities, he can then chose to give 3 to one beast and 1 each to the other two, or 2 to one and control the last beast directly.
    Finally with this idea and these limits it could be allowed that one controller can control all trained beasts in the battle, ergo a beastmaster summons 4 beasts and a ranger summons 2, the ranger who is more or less completely specialized in his range weapon only has enough power (e.g. gambits and priorities) to control 1 beast, the beastmaster however has more than enough and doesn’t fight himself so he can use his extra power to control and help control the rangers pets as well as his own. With this idea you could create a rather big team with several beasts and still specialize your characters in their weapons of choice instead of pet-control.

Devils

New Idea: After watching too much Supernatural (TV-show I'm following) I got the idea of introducing devils as well as demons. The difference between a demon and a devil is that demons were once human who sold or lost their souls to hell and devils are pure hell creatures.

Friday, February 6, 2009

Skills and skill groups

My idea for implementing the use of skills is to first make groups; reasonable differing magic and skills to start with. Beyond that there should be damage skills, special skills, damage magic, healing magic and special magic. Shoot (as in with ranged weapons) and steal will be two other specials generally as specific as attack. Maybe there should be shoot skills as well. Damage skills can basically use the same method as normal attack, as in compare with heroic from WOW, absolute value added to weapon damage, attack twice but first with main hand and second with off hand, this will require certain changes to the attack method but I think it will be manageable.

  • Attack skills – Use current attack method with different effects, example dual swing, first attack with main hand then immediately attack with off hand (need to somehow implement attacks for offhand), or normal attack with added absolute or multiple value.
  • Defense skills – Manipulate defensive skills like temporarily increase block rate to a very high amount or set higher defense and counter probability. Configuration files can contain information such as number of strikes, multiples and absolute values.
  • Shoot skills – For later implementation.
  • Thieving skills – For later implementation.
  • Special skills – For much later implementation, but will probably need to be specifically implemented for every skill.
  • Damage magic – Create a method such as that or attack but with functions concerning magic and resistance instead. Different magic use this method with special attributes much like attack skills can use the current attack method.
  • Healing magic – Create a method such as that or attack but with functions concerning magic and resistance used on friendly targets instead. Different magic use this method with special attributes much like attack skills can use the current attack method.
  • Special Magic – For much later implementation, but will probably need to be specifically implemented for every skill.

    I really need suggestions and help with skills, consider the groups.

Hit table

For every attack a dice is rolled that can get any value between 0 and 10000, this value represents the probability to something happening to the action according to a table in order miss, dodge, parry, block, hit, critical strike.

miss = 10000 – hit (e.g. bottom percent)
dodge = hit + dodge (e.g. bottom above hit percent)
parry = 0;
if (canParry)
par = miss + dodge + parry (e.g. bottom above hit and dodge percent)
block = 0
if (canBlock)
block = miss + dodge + parry + block (e.g. bottom above hit, dodge and parry percent)
crit = 10000 – crit (e.g. top percent)

This basically means that if the sum of miss + dodge + parry + block is higher than 100% there will be no hit nor crit. High accuracy can negate dodge and parry, e.g. if accuracy is over 100% it will deduct excess accuracy first from dodge, second from parry and finally from block. If there is still excessive accuracy after all dodge, parry and block have been negated it will be added to critical strike chance.

Configuration

Using the filehandler I created for Procrastination I formed a way to create units and jobs (I have decided to call classes jobs instead because class is a taken name in Java and most languages) from pre-edited configuration files. This can easily be extended to weapons, armor, skills and anything else. I can also use the file for a job or weapon to set the weapon for a new character or unit this way.

Thursday, February 5, 2009

Level and experience

Already in Procrastination I came up with a function form for calculating how experience needed for each level. Basically it uses a second experience variable that will have a value depending on level subtracted from a fixed value that is set as soon as that value is reached, that fixed value is the experience needed to reach the first level (e.g. level 2). The function to calculate the value to subtract is level to the power of X times multiplier plus another value where X should be a small value higher than 1, the multiplier is just to make the numbers more interesting and final value is just to make the second level up more interesting than the first if the X value is very close to 1. For procrastination I use:
lvl^1.1 * 250 + 100, and the first level at 100
In irresponsibility I use:
lvl^1.7 * 100, and first level at 200
With each enemy giving a multiple of 250 experience per stage this gives slightly more than 1 level per monster at the first 3 stages but decreasing for each stage (comparing one stage to 1 level which is of course very inaccurate). More accurately all characters should reach level 2 after stage 1, level 4 after stage 2, level 10 after stage 5, level 18 after stage 10, level 38 after stage 20 and level 55 after stage 30. Level 100 should be reached around stage 65, so far I only plan to have 30 stages though but every stage should be able to be replayed at any time. Monster will be approximated to this list, e.g. a monster at stage 1 should be level 1, monsters at level 5 should be between level 8 and 12 and monsters at level 30 should be between level 50 and 60.

Tuesday, February 3, 2009

Attributes

Primary attributes are used to calculate secondary attributes which in turn are used for the real interaction such as attacking. Classes have a base in all secondary attributes which the calculations are based on. There are 8 primary attributes: Strength (str), Agility (agi), Intelligence (int), endurance (end), vitality (vit) and luck (luc). Attack (atk) and defense (def) are considered secondary attributes but they are never used directly in calculations. The secondary attributes are life (hp) , magic (mp), armor (arm), resistance (res), dodge (ddg), parry (par), block (blk), block value (blkval), damage (dmg), damage per second (dps), critical strike (crit), accuracy (hit), attack speed, magic power (pow) and movement speed (mspd). Level (lvl) is also used to calculate some secondary attributes. Secondary attributes are also affected by equipment, such as damage and attack speed is mainly affected by weapon used and armor and resistance is mainly affected by armor used.

  • Level (lvl): increases life and magic.
    hp = 5*str + 15*vit + lvl*20
    mp = 15*int + 5*vit + lvl *40
  • Strength (str): Strength increases attack and life.
    atk = 4*str + agi
    blkval = 2 * str
    hp = 5*str + 15*vit + lvl * 20
  • Agility (agi): Agility increases attack, critical strike, accuracy and defense.
    atk = 4*str + agi
    crit = agi/20
    hit = agi/10
    def = agi/4+end/2
  • Intelligence (int): Intelligence increases magic and magic power.
    mp = 15*int+5*vit + lvl *40
    pow = 5*int
  • Endurance (end): Endurance increases armor, resistance and defense.
    arm = end
    res = 2*end
    def = agi/4+end/2
  • Vitality (vit): Vitality increases life and magic.
    hp = 5*str + 15*vit + lvl*20
    mp = 15*int + 5*vit + lvl *40
  • Luck (luc): Luck affects all chances such as when damage, which is ranged, will have higher probability towards the higher end.

  • Attack (atk): Attack increases physical damage done depending on weapon. For example the bonus damage to a normal sword is 1/10 attack times by weapons speed.
    atk = 4*str + agi
    dmg = atk/10*aspd (dps = atk/10*aspd)
  • Defence (def): Defense increases dodge, parry and block.
    def = agi/4+end/2
    ddg = def/10
    par = def/10
    blk = def/5

  • Life (hp): Life basically determines how much damage a character can take.
    hp = 5*str + 15*vit + lvl*20
    Magic (mp): Magic determines how much magic (e.g. how many spells) a character can use.
    mp = 15*int + 5*vit + lvl *40
  • Armor (arm): Armor reduces physical damage with a percentage. Armor is mainly gained from the body armor a character wears but every class has an initial armor and it is also slightly increased by endurance, which covers the first 4% damage reduction.
    arm = end
    ratio = 1 - ((arm/lvl*0,4)-(arm^2/lvl^2*0,0004))/(10+diff+(arm/lvl*0,4)-(arm^2/lvl^2*0,0004)) hp(1) = hp(0) - dmg*ratio
    With this formula it takes about 9 times as high armor compared to level to get 25% damage reduction, 25 times to get 50% damage reduction, 50 times to get 66% damage reduction and 100 times to get 80% damage reduction. Meaning a level 100 will need 10k armor to get 80% damage reduction. The reduction is also decreased if a higher level enemy hits you.
  • Resistance (res): Resistance reduces magical damage by a percentage, resistance is mainly gained from the cloth items that characters wears over their armor but body armor as well as enchants can also increase resistance.
    res = 2*end
    ratio = 1 - ((res/lvl*0,2)-(res^2/lvl^2*0,001))/(10+(res/lvl*0,2)-(res^2/lvl^2*0,001))
    hp(1) = hp(0) - dmg*ratio
    About 40 times as high resistance as level means about 50% reduction.
    From items and talents characters can also get elemental specific reduction, for example 10% fire resistance.
    hp(1) = hp(0) – dmg*ratio*0,90
    for fire in this case.
  • Dodge (ddg): Dodge calculates the probability to avoid an attack. After a block an unarmed character can counter attack.
    ddg = def/10
  • Parry (par): Parry calculates the probability to parry an attack with a weapon. After a parry an armed character can counter attack.
    par = def/10
  • Block (blk): Block calculates the probability to block an attack and deflect a magic attack. A blocked or deflected attack reduces the attacks power with an absolute amount, the block value (blkval). A character can only block once between each strike.
    blk = def/5
  • Block value (blkval): Block value is the absolute value absorbed by a shield when blocking or deflecting. Block value is mainly determined by the characters shield but also increased by strength.
    blkval = str/2
    dmg(1) = dmg(0) – blkval
  • Damage (dmg/dps): Damage determines how much damage can be done on an enemy.
    Critical strike (crit): Critical strike determines the probability for attacks (physical and magical) to do significantly more damage. Most classes have between 1% to 10% critical strike chance as base.
    crit = agi/20
  • Accuracy (hit): Accuracy modifies the probability to hit a target, at higher level the base accuracy is lowered and level difference alters accuracy significantly.
    hit = 99-lvl/4-lvldiff+agi/10
  • Attack speed: Attack speed is based on weapon, equipment and sometimes talents and skills.
  • Magic power (pow): Magic power increases the power of spells, different spells are affected differently.
    pow = 5*int
    ex dmg = spelldmg + pow^2/(level*1000)
  • Movement speed: Is mostly based on class but can be manipulated by items, talents and skills.
  • Range: Range is completely based on weapon, most melee weapons have range 1 (excepting polearms and spears that have range 2). Ranged weapons can have any range.

Creatures

Humanoids, beasts, undead, demons, elementals, dragonkin and monsters are the seven types of creatures that can be encountered in this world. Some skills are specific for type of creature it is used on.

  • · Humanoids are generally weak but make up for it and more with weapons, armor and powerful skills and magic.
  • · Beasts wears no armor or use any weapon but have thick natural skin, high resistance and are strong, beast have special beast skills.
  • · Undead are very similar to humanoids but with a much wider range of power, from very weak (even compared to humanoids) to extremely strong. Undead have access to skills and magic similar to that of humans. Undead are weak against all divine magic.
  • · Demons have like undead a very wide range in power; from very weak demonlings to powerful demon kings. Demons wear no armor but use demonic skills and magic.
  • · Elementals are magical beings created from one of the four elements, even the weaker elementals are powerful in magic of their own element. Stronger elementals are also physically strong. Elementals have high defense and resistance but very sensitive to their opposite element.
  • · Dragonkin and dragons are very strong mystical creatures that have access to powerful arcane magic and skills, the smaller dragonkin can use armor and weapons, larger dragons don’t need any of that.
  • · Monsters are all other creatures, generally monsters can’t wear armor but there are exceptions, weapons among monsters are also uncommon but less so than armor.