Development
December 24, 2009 on 12:45 pm | In Game System | No CommentsQuite good progress has been made on the core engine of Redux. The combat mechanism works in a very rough and ready sense and utilises the D100.00 roll system that I have mentioned in previous posts.
I’m currently working on a concept where there are different ‘classes’ – namely a rogue and warrior, but possibly a beserker class as well. These different classes will effect how each level rewards a specific stat, so a warrior class will gain strength and constitution in bucket loads, where as a rogue will gain less of each. On the subject of stats, constitution now provides both the health regen rate of a creature, plus controls the health level of a creature. Attack and defence are similar to before and reflect the skill at attacking and defending. Strength increases the amount of damage caused with a weapon and will be used as a ‘control stat’ for equipment (i.e. requires strength X). However a new addition to the family is Dexterity which will reflect how dexterous a creature is. This is a mirror stat to Strength and will also be a ‘control stat’ so equipment may have a minimum requirement. The stat itself provides an increased chance to dodge, in much the same way as agility does in WoW. For rogue classes it will also be used along with Strength to calculate the attack strength of each attack.
Slight rethink
September 23, 2009 on 3:56 pm | In Game System | No CommentsSo much for me thinking that things were going to get quieter :s
I’ve had a rethink about the overall platform with which to use as the backing to W2 and am currently considering using Facebook as the back-end for the ‘user’. There are a number of reasons for this.
- Firstly people really don’t want to register for yet another game system, providing their email, name etc and creating a new password. Most people have a Facebook account and the developer tools are actually excellent for any application developer. This would also result in less hoax accounts being created.
- Next up is really a marketing issue, bearing in mind how quickly the original game got distributed, by me just passing the link onto two people, the potential for distribution via Facebook is huge.
- The mechanism within Facebook for posting notices to a person’s wall facilitates the ‘invite a friend’ concept that the original game had that I had considered dropping as it was ‘gimicky’, the Facebook platform automatically prevents the system from being abused as well.
- I’m not going to have to build a complex chat mechanism
So there you have it.
Armour Pt2
March 23, 2008 on 8:13 am | In Game System | No CommentsOne thing that drives me nuts in all games is that low level armour sucks. I don’t mean in game terms, but in terms of naming and looks. “Knackered Leather Armour”, “Armour with holes in”, you know the type of thing.
So as I do have a problem with this, I’m going to tackle the problem head on. Naming is always going to be a problem anyway as you potentially will have dozens of different types. My current thought is that common armour will be named simply – ‘Light Leather Armour’, have a category - (Medium Armour) and have a quality (Low~High) that will correspond to level requirements. So High quality Light Leather Armour will be used by Hybrid classes at high level. Its a simple solution but hopefully one that will suffice.
Obviously rarer armours will require different naming conventions. Uncommon armour (i.e. with one benefit) will share the common name, but have ‘of Strength’ or whatever appended. True tiering might be useful, but I’ll have to see how things go on. I don’t want to overload the game with special items though – uncommon needs to be just that, same with rare and legendary, epic etc need to be like rocking horse poo. Having said that all creatures need to have access to nice kit in order to encourage them to play.
D100.00
March 23, 2008 on 7:21 am | In Combat | No CommentsOne of the key elements of the game is going to be the mechanics behind the combat aspect of the game.
In the original it was very simple. Basically every creature (both playable and not playable) had an attack and defense value. Dividing one against the other gave a chance to hit percentage. In game, a random number was generated between 1 and 100 (in essence a D100). The hit percentage was inversed (thus making a low roll bad and a high roll good), and if you got high enough then you hit your opponent. If you rolled 1-5 you would always miss and if you got 95-100 you got a crushing (double) hit.
Now after a while I added creature specials once they hit level 10. If memory serves these had a secondary chance to occur that ran independently of the main setup. This didn’t work very well and the special abilities weren’t very well thought out.
In W2, I’m going to follow on with this method to a certain extent, but want to add extra ‘chances’ such as dodge, block (if using some kind of shield), critical hits, secondary effect and so on. The important thing is that this has to be decided in one roll of the dice so to speak. Now one game has a novel way of dealing with this, in that everything is placed into a chart, that has an infinite number of possibilities, but only the first 1~100 are used. There are various benefits to this, but I’ll skip those for the time being. The biggest bonus is that instead of a dedicated chance to hit (which is split into what type of hit has been caused), you have a chance to miss, chance to have your attack mitigated (blocked, parried), cause special damage (crit, crush, secondary) and anything else is a plain hit. Now going for a method like this makes D100 pretty inaccurate, so instead I’ll use a D100.00 instead - i.e. the number generated is to 2 decimal places.
As in the original you will have an attack and defense value – but these will be secondary stats, calculated from your weapon proficiency, abilities, agility etc. Your level and your opponents level will be irrelevant, as in the first game – but obviously a higher level will have higher attributes. One key thing I will do in contrast to the original is to lower the chance to miss. If you faced an equal opponent, then you’d have a 50/50 chance to hit and miss.   Hit chance won’t exist as a direct stat, and the chance to miss will likely be around 15~20% although this will be subject to change.
One things that has just occurred to me is that I can make two-handed weapons more powerful than I originally was going to. I was thinking of making them half the speed and twice the damage, however this isn’t an incentive to use them, as one miss with a slow weapon reduces damage output by more than a miss with a faster weapon. So what I could do is to increase the damage more, but give all opponents an increase to the chance to dodge. This might sound like the same as a miss, but certain abilities will trigger after dodges, plus I’ll likely have skills that will reduce the chance your opponent can dodge.
Secondary effects are worth a quick note here. All damage types have a secondary effect that they can cause. Physical damage can stun for example, fire damage can cause burns (or ignite?). Resistance to each type of damage will help reduce the chance of secondary effects. This also opens up a balanced way of creating vulnerabilities, as I can decrease the resistance to a specific damage type thus increase the chance of incurring a special effect – which is more balanced than directly increasing damage taken from a specific damage type.
Armour
March 16, 2008 on 4:16 pm | In Combat | No CommentsI’ve been mulling over how armour should work in W2 for a while now. Now it goes without saying that physical strength effects what classes wear what type of armour. So strong melee types can wear nice spangly metal armour, but physically weak caster types will only wear robes and such like.
Now in W2, armour will provide damage reduction against incoming attacks. I’ll be using what has become ‘traditional’, and each piece of armour will have a value. This gives you an overall armour value that based on your level gives a percentage reduction in damage (e.g. a hit of 100 damage will become 65 if a creature has 35% damage reduction).
One problem is that you can’t give cloth armour the same armour value as plate armour, so it needs to confir a different bonus.
In W2, I want armour to have multiple armour values, for different damage types. Probably physical and magical, and likely with special abilities for sub types (e.g. +X armour against fire). Now I feel that its a mistake to give casters more protection against magical damage than non-casters (they’ll likely get magical shields and stuff), but armour needs to confir some benefit. So currently I think that armour will have a power rating. This works in the opposite way to armour value, and that culmulativly and based on level it will provide an increase to magical spells. This means that getting good armour will be essential for all classes, melee types will last longer in combat, and caster types will cause more damage. Hybrids will get the best of both worlds in a manner of speaking.
Travel
March 15, 2008 on 7:23 am | In Game System | No CommentsHave had a thought about travel within W2. Its going to be difficult to have user interaction without going into complex maps, enemy tracking and allowing the player to direct their character. So I’ve come up with what I reckon to be a good compromise. Now there will have to be maps, that detail settlements across the land. Settlements will be friendly and hostile towards different races – these will be mixed and matched as I fancy. Once you’ve visited a settlement, you can quickly travel between them. Quickly however will still take a portion of time – but you know a safe path between the two, so can’t be attacked.
Each settlement will have areas of ‘wilderness’ around it. What you do is to enter a wilderness and then wander around/explore. Each wilderness will have two settlements attached and a relative size. This size will indicate how long it will take a creature to wander from one end to the other. Each wilderness will also have a enemy chart, which represents the percentage chance of encountering an enemy, based on how far away you are from a settlement. As such its possible to have Large Rats and Swarms of Vermin appear only within 5 minutes wander of a settlement, and that chance to become less the farther out you go. Additionally there will have to be a density of enemy, which matches the percentage. This should give:
Large Rat:
Chance: 95%, density: 5, distance: 0
Chance: 0%, density: 1, distance 5*60
So the key element will be distance, and then the chance and density can be calculated.
Now the way wandering will work, is similar to combat, in that there will be a poller that kicks off communication to the server. Unlike combat, this time will likely be 5 seconds. A panel will be present that shows enemies nearby (based on the above calculations). I’ll have to come up with a clever mechanism that makes it realistic, as if you’re seeing one set of enemies its not going to completly change in 5 seconds… Maybe it does a reverse calculation to see if you can still see an opponent and then adds any extra enemies necessary? Either way the end result will be that enemies appear and disappear gradually.
During wandering there is always a chance of combat. This can be established by the player clicking on an enemy, or by a hostile enemy engaging the player. Now the exact mechanics of this needs to be worked out, else as soon as an enemy appears they’ll attack the player, so something along the lines of how long the enemy has been visible and give each a hostility rating (basically a percentage chance of them attacking the player). Thinking about it, a hostility rating would be good as it means that we can make some enemies slightly hostile. Perhaps the chance an enemy will attack has a increase/decrease based on the length of time they’ve been visible?
Anyway, thats going to be the way that travelling works. Hopefully its going to be realistic enough to keep peoples interest, and not too tedious. The pure issue of the player not being in control of travel is a difficult one.
Health & Death
March 11, 2008 on 9:14 am | In Combat, Game System | No CommentsOne thing that I’ve been toying with for a while is how the whole hit point system should work. This links directly into what happens when/if you die. This also links into the travel system. I personally dislike games that remove a specific amount of XP when you die, it makes things horrible if you die repeatedly. Corpse running is a pain, and as I’ve not decided on how the travel system will work, could be a bit peculiar. One system I have recently experienced is that when you respawn, you have a 2 minute debuff where you earn less XP.
Anyway, back onto the point. One system I played had a clever setup in that not all opponents killed the character completely, instead they incapacitated a character which then took a short amount of time to come round at low health. I’m thinking of playing on this idea a little.
I’d like each character (and opponent) to have 2 health bars. One ‘vitality’ and one ‘wounds’. Currently I’m thinking that vitality represents your regular cuts, scrapes and bruise, and wounds are more serious (and also require different healing). In a fight, once a characters vitality goes, they suffer damage straight to their wounds.
Now on top of this, armour will reduce incoming damage by a specific amount. Magical shields will also need to exist, but I can’t decide on their exact function yet. My gut says to make them absorb a specific amount of damage, however this means that magical users will never need to use healing potions, so will be easy to play. Another thought is that they absorb a percentage of a certain number of attacks, but this would be annoying for fast attacks (which would use the shield up quickly). They could act like armour but only for magical attacks, though this would mean that people would end up picking caster vs caster and melee vs melee fights where possible, armour will also provide resistances against magical damage as well, so that would not be balanced.
I suppose that one way magical shields would work, would be to make them identical to armour in practice, but that they can only be used by casters. On a plus, this would make class balancing quite straightforward as all creatures would have damage reduction of a similar style.
Combat
March 10, 2008 on 12:26 pm | In Combat, Game System | No CommentsI’ve tried this, and it works reasonably OK. Basically combat works on a combat queue & ‘tick’ system. A player stacks up the actions they wish to take in their combat queue. The queue has a number of available ’slots’ in it.
Each action takes a pre-defined length of time in ticks and some have a ‘reuse time’ before they can be reused (again in ticks). The player clicks on any action they have available and it gets added to the combat queue. Once there it can’t be removed (tough).
Now there are a couple of different flavours of this system. The first and easiest to code, is that you only have a few slots of queue available, but a slot can take *any* action, and time. So you could have 3 slots and have one action that takes 3 ticks, one that takes 2 and one that takes 4, so a total of 9 ticks worth of combat. The other flavour and slightly more difficult to do, is that the combat queue is larger, but each slot is a single tick. So if you had 8 slots, the sequence of events above wouldn’t fit in until 1 tick had passed. The second method is actually easier to understand, although we could remedy that by adding the information about times to the first method (could be that the bar fills up left to right based on the total time). Thinking about it, I think that the first option is probably the better. Its less demanding on the client’s computer for a start, but also having the slot fill up will actually be more visually informative than lots of slots.
An action has a number of elements: onset time, total time and reuse time. The onset time represents the amount of time before an action happens (think charging up a fireball). The total time is the number of ticks that this skill requires (think charging up a fireball, shooting it and then waiting a bit until your vision clears). Finally the reuse time, is the amount of time you have to wait until you can use that skill again. Overall it sounds really complex, but in reality its pretty straight forward. Additionally by seeing information in hard numbers the human brain can comprehend them more easily.
Now each tick is roughly 2 seconds. More if there is lag, as the system waits until it receives a response from the server before counting down those 2 seconds (there is a timeout option as well to prevent people trying to hack). Now 2 seconds is actually quite a long time, so weapon attacks and actions may make multiple ’strikes’ within each attack. Take a sword for example. I would say that you can swing an averge blade once every second, more if its lighter. So a regular attack from a sword would have a time per action (1), damage per strike (3-4) and a strikes per action (2), so you ought to have 6~8 damage from that one attack (obviously each has a chance to miss/crit etc). Now a ‘gigantic’ attack might go time per action(2), damage per strike (+400%), strikes per action (1). So this ought to cause the same damage as 2 regular attacks, but as its a special attack will likely have an increased chance to cause a special effect (like a stun). Its going to be one of those things that will need lots of testing, but probably the best way of tackling it.
As with all of W2, all actions are passed to the server to complete, the fancy javascript UI is purely client side and every action is validated by the server. Amusingly what this means is that somebody could technically unlock a skill before its reuse time, and thus add it to the queue before they should be able to. In reality this actually just delay’s the next action in the queue
Well thats the basics of the combat system in a very small nutshell. Hopefully keeping everything simple and the interface straightforward will ensure that the game runs smoothly. Although 2 seconds is a long time, especially when waiting for an ability that takes a while to use, it is quite fast when you’re using 1 tick actions. I may also put in a control that compensates to a lesser extent on if you get big lag spikes. Its not uncommon to see lag of 250ms when on the internet (time it takes to send and receive a reponse from the server), which makes a tick 2.25 seconds. If I were to time this, then I could make the tick delay 1.75 seconds to compensate for the 250ms lag. If I were able to get the server to decide on the amount of time to pause, this would make life easier, as its going to be fairly difficult to intercept for hackers.
Classes and Stuff
March 10, 2008 on 11:09 am | In Classes, Game System | No CommentsCurrently I want to implement a pretty unique class based levelling system for W2. I want to maintain a Feral feel to the whole game, so don’t want to use a regular warrior/mage/rogue type of class system. That said, I do want magic (Magik) to exist in some form or other within the game. I personally dislike regular levelling systems where you grind so much XP to gain a level and a skill point and/or stat points. Having said that, creatures will require some kind of level in order to know what they should be fighting and how far they’ve progressed.
Anyway, levelling is for another post. When it comes to classes, I am currently veering down the following thought line. Each creture falls broadly into one of four categories. Either a Fighter, Caster or Hyrbid (i.e. fighter with casting skills and the other way around). As a creature battles they will fight in a particular manner, which will result in them going down a specific specialisation class (i.e. a sub-class, but not in a minor way). This means that if a player wishes to end up with, say a Beserker, then they must play in that style from day one. I’m currently tempted to make all starting creatures the same in terms of class, so they might all be able to fight with a sword and cast a small fireball initially, but once they gain their first level, they loose unused skills. Hybrids would be difficult to begin with as you’d need to keep the Magik and Melee damage within sight of each other.
This would work relativly simply, by watching the amount of damage caused by a creature via their starting skills. This could actually be quite straight forward, if all creatures start at level 0, then they could have a quest to kill 10 rats (i.e. the obligatory rat killing quest). When the quest gets handed in, they get told ‘you are following the way of the <whatever>’ and then all their starting skills get replaced. So a Hybrid would get a spell to imbue their sword to do magikal damage, Fighter would get a low powered melee attack and Caster would get a new magic missle.
Currently I’m thinking along the lines of the following Specialist classes:
- Blademaster/Gladiator – Weapon specialist, low armour, but high avoidance
- Beserker – Very high ‘in your face’ damage, but low defence
- Knight(?) – Fighter with magical skills
- Exemplar – Has self buffs and opponent debuffs
- Elementalist – Fire & Water caster
- Voodoo – Life & Death caster – heavy on debuffing and dot
- Arcanist – Lightening caster
- Spirit Walker – Ethereal damage
- Pyremaster – Fire & Death caster
Ok, ok, I have too many casters and not enough melee
Entries and comments feeds. Valid XHTML and CSS. ^Top^ Powered by WordPress with jd-nebula-3c theme design by John Doe.