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.

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.