User:Loser: Difference between revisions
Jump to navigation
Jump to search
(If someone knows some game developers, pls tell them. Seriously.) |
(Just setting welcome text for maybe new member) |
||
Line 1: | Line 1: | ||
'''Pro Jokera z Bonuswebu - ano, jsem to já, není to vtip ^_^. Vítej na stránkách ONI mod komunity.''' | |||
---- | |||
OK guys, | OK guys, | ||
Time to say goodbye. From September I start studying on university, so I will have to put Oni aside before I will make myself familiar with whole new life. Even now I do things I should done '''before''' (like find accomodation in that city where university is) so forgive me I am not contributing. | Time to say goodbye. From September I start studying on university, so I will have to put Oni aside before I will make myself familiar with whole new life. Even now I do things I should done '''before''' (like find accomodation in that city where university is) so forgive me I am not contributing. |
Revision as of 19:47, 11 May 2009
Pro Jokera z Bonuswebu - ano, jsem to já, není to vtip ^_^. Vítej na stránkách ONI mod komunity.
OK guys, Time to say goodbye. From September I start studying on university, so I will have to put Oni aside before I will make myself familiar with whole new life. Even now I do things I should done before (like find accomodation in that city where university is) so forgive me I am not contributing.
- I did my part of TRAM work, another part is up to user:ONIrules. I did it so only attack parts and vulnerability/invulnerability were modified, so it should cause no crashes. Ideal as basic combat system framework for Edition (then you can add wall collisions, modified throws etc.).
- But before I go, I want to share my ideas with this community. There is one person called Skrylar who has a bit higher chance to obtain IP rights for ONI than we had back in the past. If he suceeds, I think we should make fight system a bit deeper. I mean: we have punches/kicks and throws. That is all. It IS enough, but in case we want to impress outside world, we should redo it a bit.
- Following paragraph is just my babbling, so in case you have any comments for it, write them into my discussion, but please DO NOT write comments like "yea, and how would you like to make new animations?" or "OK, now tell me how would you want to import this into ONI?". Following paragraph is just combat system as I thought it out over last 2 years, which can be coded for ANY game that should have h2h fighting. And into ONI too, if we could. Also, bear in mind that it can have factical mistakes in it (basically some nonsense I overlooked). Point them out, it will help me.
- Or some good programmers (Neo, Pierre) can try out some ideas from it, if they are interested.
Loser's attempt for working combat system
1.) General
- controls are classic ONI + block button (can be any button, for example side button on mouse or "c")
- Human model is (in terms of this combat system) divided into 5 zones. See picture:
- File:Body1.PNG
- REASON: head and body are classic. Pelvis is here because when attack aims crotch (common in martial arts) it is quite low part of body and body block animation looks weird. Upper/lower legs - read further to find why there is not only one legs part.
- Each attacks bring with itself info similar to TRAM + some extending info. As you read this article you will see which extra info.
- High/low attack flags are gone. Read combat section to see my attempt to solve blocking.
- Engine detects which bodypart caused collision. I mean, if some attack animation can damage with both right leg and arm, engine registers which one caused collision first. Read further to see why.
2.) Regular combat - kicks, punches, headbutts, knees, blocks etc
- block
- to do standard block do nothing, step away or hold block button. No difference between results (no "better/worse" block) if you use some of these methods.
- attack animation does NOT carry info about high/low attack. Zone where collision happened determines.
- When standing, defender can block all zones EXCEPT for lower legs zone.
- When crouching, defender can block lower legs, higher legs and pelvis zone. Body and head are vulnerable and are not guarded.
- NOTE: I know, crouching is a bit problematic as all those zones "fold" one into another when character crouches. But I think if lower legs zone expands a bit as character crouches, it could cover bottom 1/2 of crouched body which is our goal - to guard shins and feet. If you are hit in head or body while crouched, you get hit.
- When defender is blocking and some attack collides with some zone, engine checks if that zone can be blocked in current stance of defender. If yes, engine picks correct block animation (block/heavy block/stagger/whatever else) of selected zone and applies it. Due to this, pelvis and higher legs zone exist. To make it look more cool.
- NOTE: That is all for block, it is just rough concept, I know. Goal is to make blocking dynamic, so when you fight on uneven ground (common thing in game like ONI) you have to guard not PRE-selected part of body, but you have to guard those parts where attack actually collides. So if someone is higher than defender and executes leg sweep attack, he hit defender's head. In ONI you have to crouch, otherwise it is taken as unguarded attack (and you play feet knockdown animaton even tough you were hit in the head). By using this system, you have to block such an attack in stand. Engine pick head or body animation (depends on height differenciation). If you crouch and attack still hits you (height differ is not that great), and it hits you in head or in body, you eat it.
- attack
- Here it is simple. Sucessful hit generates corresponding hit animation. Hit animations are differed by zones, so if high kick causes knockdown and it hits lower legs (attacker is lower than defender), it causes lower legs knockdown. Maybe not 100% realistic, I know, but simple and looks like it should work.
- Combos should be max 5 attacks in a row overall. There will be usually more than two fighters, and making longer combos would turn game into "trying to catch enemy with at least some part of my 10 string"
- Users of pure traditional asian martial arts (ninjas, karatekas, modern samurais, etc) are exception and should be able to do longer combos (10 is maximum). To even the odds, attacks in these combos are indeed fast, but weaker than standard combo atacks from other characters + these don't move attacker so much forward (so it cannot be used to "hunt down enemy with combo").
- Also with exception of heavily leg-based martial arts users (tae-kwon-do, muay-thai), characters won't have pure kick combos longer than two attacks in a row. Kicks are indeed stronger than punches, so this feature is meant to force punches-kicks combinations if player wants to use power of kicks effectively, making combat more spectacular.
- Being hit more than X times in some short time interval forces character to collapse to the ground. This is prevention of two vs one infinite combo glitch, which is present in some beat'em up games (and in Oni as well).
- Infinite combo glitch: Two vs one. One attacker hits victim with some basic attack (punch) that does not cause victim to fall or stagger, just forces short standard hit animation to be played. Right after this the same does second attacker, while first one recovers to standard stance. They alternate periodically, making it unable for victim to escape until victim is dead.
3.) Throws
- Start of throw should be same as in ONI, just be close and press forward + some attack. I thought about other ways, but this suits beat'em up gameplay the best.
- ground throws are present in this system, altough only a few classes can use them (tankers). These are performed by pressing low punch near grounded enemy. Only low punch, not kick. Why? Escapeability, read below.
- no mounted position (vale tudo). Doesn't fit fast paced open combat of beat'em up.
- only front and back throws are present in this idea, side (like in Tekken) would be too much.
- chain throws are present, each one has it own anim type (throw_comb_1, throw_comb_2 etc). Max chain is 4 (starter + 3 other throws),it can be broken by defender after EACH one (to add to fast pace combat, not like in Tekken where defender has only two moments to break away).
- apart from ONI, throws are escapeable in this system.
- throw sequence - has additional link to broken throw sequence (animation attacker transits to if defender escapes)
and frame of throw animation when this transition should happen.
- thrown sequence - has additional link to broken thrown sequence, has encoded command needed for escape (some keypreses), has specified number of frames for how long defender can input escape command, has specified frame when it should transit to broken thrown sequence if escape was sucesful.
- REASON: I take it that we cannot make some "close to reality" physics. We are fans. So this is best solution in that case. From the beginning to some point of the throw defender can input escape command. If he succedes, both animation continue (mayber write a message on screen "escape sucessful"?) up to their respective frame, then they transit to their respective broken animations. This way we can set up nicely looking escapes (fluently transiting) while we can limit time for input command (because in case of some moves there should be so big time gap between start and frame of transition that it would be impossible to sucesfully perform that throw)
4.) Parries/reversals
- Now this is something completely missing from ONI and I understand why. Make it easy to use and everybody will turtle (defense/reverse), make it hard to use and it will be "for video only" or "hups? it worked?" This is why I set up block button.
- Only parry can be done from stand, reversal is extension of parry
- There are 4 parries so chance of abuse is reduced a bit
- to do a stand parry, just stand and press block + kick for stand kick parry ||||| block + punch for stand punch parry.
- For low parries, either you are in crouch stance and perform same as above or (if you stand) you do block + crouch + kick or punch.
- For special parries (headbutts, body slams etc)press block + both attacks or crouch + block + both attacks (low spec parry).
- Stand parry works on head/body/pelvis zone impacts, crouch parry works on higher/lower legs zone impacts
- Using parry makes you completely unguarded except for specified attack in specified zones as was written above.
- Unsucessful parry does not have extensively long retreating animation to "punish user", but it lasts long enough to let the enemy take advantage if he is fast in thinking.
- How to execute suceessful parry: make it just before enemy's attack lands and make it so impact zone attack collides into is correct for this parry (see above). Here comes engine deciding what to do.
- Punch parry works for colliding attack bone being fist, wrist, arm. Left or right, that is decided later for another purpose.
- Kick parry works for colliding attack bone being foot, calf, thigh.
- Special parry works for colliding attack bone being head, neck, chest, mid, pelvis (butt attack ? ^_^)
- In case of sucessful parry, attack deals no damage and enemy is forced into state parried and play proper animation while defender changes state from parry_attempt to parry animation. Parried lasts a bit longer than parry, so defender can turn into attacker. While in parried animation, attacks/throws/movement is forbidden, but parried character can defend (block) and crouch. This further reduces usefullnes of parry, making it rather combo stopper than thing which should be used on its own.
- Sucessful parry cannot be escaped, once parried, you have to defend otherwise defender (who took initiative) will land some blows on you.
- In order to make things look good, engine checks which bones collided, so possible sucessful parry animations are:
- stand left punch parry / stand right punch parry
- stand left kick parry / stand right kick parry
- crouch left punch parry / crouch right punch parry
- crouch left kick parry / crouch right kick parry
- special stand parry / special crouch parry
- NOTE: In order to make this work correctly, stand/crouch parries of selected bones must be almost identical. I mean: stand left punch parry and crouch left punch parry both swing opponent's hand in a same manner, but other than that those two animations can vary. That is because if there is uneven ground, it can happen that you do high punch parry and you sucess on enemy's low punch because he is higher. Now you play "stand right punch parry" while he plays "crouch right punch parried". If you make those two too different, it won't look good. If you make them similar, it will look OK.
- Which type of "parried" and "parry" animation to play is determined by:
- limb (lt/rt; kick/punch) which made contact
- stance (stand; crouch) of each one separately
- Reversal is basically throw, which is called from state "parry", so it has to be pressed immediately after sucessful parry (animations of parries are meant to be short for sake of fast paced combat and in order to make it harder to pull of a reversal). Being just a special sort of throw, it can be escaped as a throw. Advantage is that you can use punch or kick one, disadvantage is that if defender manages to break away, you are again under pressure (thrown_broken is meant to be a bit shorter than "throw_broken" in case of reversals, so the one who was thrown can take advantage.)
- Idea about damaging system
- In all fighting games I have ever played, it is considered "normal" that you break opponent's bones and then he gets up fresh n'fit, ready for fight. Now, combined with world of Oni, using fact that Oni is taking place in near future, we can use it for our advantage to make quite revolutionary (well, Urban Reign has something like this ♦_^) real damage system:
- There is a Pain bar. This bar represents how much pain in general your character is feeling right now. Pain bar raises each time you passively block or take damage. Parry and atacking does not raise pain bar (illogical a bit, but serves its purpose).
- When pain bar reaches 75%, passive blocking will stop being damageless. Then when blocking, the first bone which contacts with standard melee impact takes small dmg (read belowr about bone dmg). Counts for leg bones and arm bones.
- If pain bar reaches max, character is stunned, does not take any new pain for a short while (but he can be damaged, only it is not reflected in pain bar) and stays like that until pain bar drops below its 75% (can be sped up by fast-clicking). During this time character is extremely vulnerable. (Can be used for "special" grabs maybe?)
- Character does not have some central health bar that represents its "health status". Instead, you see Your character as a set of 19 bodyparts (like Oni's skeleton). Each bone has its own health; "bone health bar". Should be presented as color of respected bone - light green=100%, bright bloody red=0%.
- Standard punches/kicks/mele attacks cause damage according to where it impacts. Arms are exception and are not counted for these melee attacks (you will see why, exception is blocking damage (then arm can be hurt by standard melee attack). So if enemy hits you in head twice, it drains "head's HP" twice. If enemy sweeps you, shin or foot, where it impacted as first, takes dmg.
- Passive blocking does not drain respected bone's HP, unless Pain bar is above its 75%.
- Now, if HEAD, NECK, CHEST, MID or PELIVS bone reaches 0 HP, character dies.
- If some part of character's limbs reaches 0, limb becames unusable from this part down (so if wrist bone is destroyed, then wrist and fist bones are rendered useless, names of bones are from Oni's TRIA). According to that, character becomes more or less restricted in its capabilities (speed of movement, range of attacks, effectivness/possibility of block).
- So if character gets his arm bone broken, then arm, wrist and fist of respected limb are rendered useless. By this we can achieve quite realistic combat. If neck is snapped, character dies. If back is broken, character dies. If tigh is low kicked into 0%, whole leg cannot be used etc.
- Health of bones is restored via hypos (Oni based). You take a hypo and select which bodypart you want to heal (or all, effect then evenly distributes). If hypo is used in single bone mode, it can restore two bones per dose, meaning one hypo can heal two bones from 1% to full.
- If bone HP is 0% (broken/crushed by constant attacking or by grab) you have to use one full dose of hypo spray on this bone in order to heal it (it heals to 75% then, 25% of dose's effeciency was used to restore torn tissues and to support cell-joining regeneration process).
- If it ended here, than it would be VERY unfair, as everybody would then aim for easy I-WIN throws which cause something to break. Now that is where settings of ONI come into play: because we are in near future, all combat characters have their personal Energetic combat shield.
- Energetic combat shield is device invented for modern combat. This device prevents wearer from any rapid concussion (yes, even bullets/plasma impacts). It is designed with safety aspect in mind, so it won't allow human body or its parts to turn or twist more than it is humanly possible. Of course it needs energy to run properly. Standby mode consumes very little energy. When hit or preventing some inhuman body positioning, amount of used energy raises. System is quite intelligent and distributes its energy evenly acording to how many is left.
- Due to the need of breathing and matter-energy exchange, ECS is not hermetically closing one's body. So even tough body cannot be directly harmed, user can still feel dulled pain from impacts. Of course falling from great heights is lethal. Even tough ECS can absorb shock coming from hard landing up to the some value (so being thrown over the shoulder is fully absorbed by ECS), it cannot absorb whole effect a 100 m fall landing has on internal organs.
- now from game engineer's point of view - this is substitution for HP. Instead of HP there is Energy. Energy constantly drops, but rate of this constant decreasion is very low (practicely, it is here just to make it a bit more logical). What matters is that when some attack occurs, no matter if it is kick into crotch or arm break, energy drops instantly by some value (HP drain) according to used attack. Pain bar filling works the same way if ECS is on, only pain gain is only 50% of true value (effect of shield).
- Next, some animations (bone-breaking grabs) are replaced by incomplete ones, where thrower attempts to do break a bone, energetic shield stops him within "limit of human body's angle", so he lets it be (no extreme angle, no bone break sound) and victim's ECS gets energy drained (as if it was general HP).
- If energy reaches 0, ECS turns off and character can be physically harmed. Device an be destroyed by strong EMP while being off. While operating, it protects itself as it is inside of the field it generates.
- If ECS is down, it can be given new power cell and it starts operating as normal, protecting its user.
- ECS cannot be torn off the wearer when operating. Even when shut down, its design ensures that it canot be stripped off easily. So, in game engineer's terms, you can steal other's ECS, but only from dead corpses.
- Energetic combat shield needs energy to run. This is provided by power cells, which character has to take with him and restore from time to time, according to how much is current power cell depleted.
- That is rough concept of it. Can you imagine it in game? Weaker, non combat meant characters does not have this shield, so break his arm or leg and he poses less threat to you (but can still harm you!). Break his neck/spine and job is done instantly. Or kick him two or three times in the head.
- But combat based enemies are more bastards. Possesing ECS, they are more durable. You have to drain their ECS first, then you can finish them for good. Bone breaking, spine crushing etc still works, but not as insta-kill. Instead, it drains large amounts of energy from ECS but does not allow you (attacker) to break bones, so enemy is still in "one piece" and logically he can attack you with all limbs. But instead, you can fill his pain bar, so even with ECS on, he is vulnerable to serious beating (or some sort of super grab?) for a short time.
--Loser 11:26, 29 December 2008 (CET)