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.