User talk:Loser: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(... again)
m (+cat)
 
(16 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Loser, I thought we can discuss the h2w system here. I had a thought for a move, don't know if its possible. But what if you can modify a jump forward kick so that as it hits a wall, it can causes you to bounce higher off the wall or bounce back away from the wall. Maybe I watch too many martial arts shows :-)
Talk page was cleared. No big loss of information, since it contained outdated HEX stuff from year 2008 and several already proven-to-be-wrong theories about MELE.


[[User:EdT|EdT]] 18:14, 21 June 2008 (CEST)
[[Category:Userspace]]
 
Nice idea, I will try whether it is worth it or not. Right now I am creating knockdown collisions once again (almost from scratch). Effect will be the same, only it should be less buggy.
:Just to make you sure: My knockdowns are supposed to break glass (you don't smash yourself on glass panel, but you break it instead). I thought it looks better that way.
Anyway, I plan to use h2w system on some combat moves (we already know). Which moves you suggest(except throws, those are must)? For example I will add this to STRCOMkick_heavy.
 
P.S.: I have also thought about possibility of taking just h2w_co##_e01, give it only glass breaking and distribute this simple particle to all more powerful moves. That way we should have glass-breaking melee. Your opinion?
 
--[[User:Loser|Loser]] 07:11, 22 June 2008 (CEST)
 
Yes to glass-breaking melee!
 
My question, how will the h2w affect combat moves?  Will the moves get interrupted if done close to a wall?
 
Also have you seen this:
 
                    <Technique>
                        <Name>Close/PF/CirRight</Name>
                        <Flags />
                        <Weight>60</Weight>
                        <Offset_0348>10</Offset_0348>
                        <RepeatDelay>240</RepeatDelay>
                        <Moves>
                            <Position Type="12" Param0="6" Param1="15" Param2="4.5" />
                            <Attack Type="4" Param0="0" Param1="0" Param2="0" />
                            <Maneuver Type="4" Param0="0.15" Param1="0" Param2="0" />
                            <Maneuver Type="8" Param0="50" Param1="0" Param2="0" />
                            <Maneuver Type="3" Param0="0.5" Param1="0" Param2="110" />
                        </Moves>
                    </Technique>
 
The latest beta version of OniSplit exports and imports melee profile as .xml!
 
[[User:EdT|EdT]] 14:42, 22 June 2008 (CEST)
 
Do you have any tips or suggestions on how to improve the melee profile?
For example how would I add the Twister Kick?
 
[[User:EdT|EdT]] 06:41, 29 June 2008 (CEST)
 
Hi EdT,
 
1st of all, thanks  for info about OniSplit, looks like Neo is really oNe for us ^_^
 
Next, h2w system can push character away without interruption or it can interrupt character's move with stun or knockdown. I haven't tried your suggestions yet, because yesterday I have finished h2w knockdowns revisit (tons of bugs removed). Now I will test it and then it will be upon you (and others) to toy with it. Blownups and throws are next stop for me, so I will toy with this jump-thingie later. BTW do you think it is a good idea to give glass-breaking particle to character's jump anims so character can simply JUMP through glass ?
 
About melee profile:
*Study [[OBD:BINA/OBJC/MELE/MoveList]] (I recommend detailed version). Use melee profile 12 (Ninjabot) which has originally 3 techniques so it is easy to try and see what happens if you do this and that(you can modify Ninjabot melee profile so it has only TWO techniques, increasing space for technique's moves). Also, there are some moves  added later in development(twister kick, willow kick) which CANNOT be executed by AI. Sorry X_X
Then you can try to make your own MELE. I can write here my style of work, for you ^_^:
*Write down(I recommend pencil and paper) ALL ATTACK moves you want this MELE to have.
*Think about it and sort it out (use rubber :)) so techniques, which should be used almost 100% in situation which is in favor for them (back throw when this AI stands behind opponent) are more on top. I put on top '''back throw''', then '''Tackle''', then  I write moves for non-standard situations (enemy is behind/left/right this AI), in the end getup attacks and disarms. This is what I call '''basic AI attack techniques'''. Brutal Konoko V2 has it. Through this AI looks quite smart (sometimes). Under these 'basics' write and sort(more useful=more on top) all other standard face-to-face attacks. I recommend putting throws quite high in this hierarchy.
*Now we need AI to move a bit, not only run straight, eh? (BTW this is weakness of Brutal Konoko) So under all attacks, write and sort '''maneouvre''' techniques you want this MELE to perform. BEWARE: We are not talking about maneouvre section of MELE, we are talking about '''maneouvre techniques which are listed as Attack type''' techniques in [[MELE]]!!! TIPS: Circling and Crouch are useful, short Pause can be good sometimes, usefulness of Advance & Retreat is...up to you ^_^. They can be used in some more complex patterns (don't forget-technique can hold more moves) but as a simple technique those two are a bit useless here IMO. Jump can be used in more complex patterns again. Getup rolls are a bit weird(no parameters, a bit random) but they are good choice.
*So we have written and sorted all attack type MELE techniques. Now simply write dow all EVADE techniques, that is simple. Warning: Unless we talk about MELE for character with high basic tap jump([[ONCC]]), don't put in jump evades.
*Now copy maneouvres again. These will be MANEOUVRE type techniques. I have to admit I don't know what are MANEOUVRE type techniques good for. But I guess there are some links to ONCC so it is always good to have them.
*So..we have rough concept of MELE profile. Now leave it alone for day or two and do something else. Seriously. Then read it again and make changes if you find something that should be better (75% you WILL find somehing ^_^).
*Now it is ready to be written as MELE profile. Copy header of some else MELE, change its ID (of course :)). About ONCC link: read [[MELE]].According to Geyser it looks like engine reads TRAC of written ONCC to make sure it will not try to execute non-existent technique(if it finds such a mess it labels that technique as BROKEN, can be seen via CRT+ALT+B in devmode. As BROKEN is labeled any technique which has some errors, including wrong values in moves part etc...).
*Set values for blocking, dodging etc...Notice should be always 100%(we are talking about MELE profiles for AE characters, right? So NO ignored attacks). for rest of stuff - use common sense, it is not always the best choice to give everything 100%.
About Not blocked, Must chance stance etc....these are (still not perfectly known) modifiers affecting AI behavior. But I have done some research and they look like modifiers for:
:*'''Not blocked'''- possibility of attack with some technique which shouldn't be blocked by enemy right at the moment (attack with technique which contains move that has 04 in 0x08 position of [[OBD:TRAM/raw0x14]]) when enemy is guarding up OR attack with any attack technique if enemy is not guarding himself at all)
:*'''Must change stance'''- possibility of changing stance of this AI for attack or block purposes (crouch/stand)
:*'''Blocked but unblockable'''- possibility of attack with technique which contains move that is unblockable (01 in 0x08 position of [[OBD:TRAM/raw0x14]]) even if enemy is blocking
:*'''Blocked but has stagger'''- possibility of attacking blocking enemy with technique which contains move that causes block stagger (0x18 in [[OBD:TRAM/raw0x14]])
:*'''Blocked but has blockstun'''- same as above with blockstun (again go to that TRAM part, it is not clear yet what shoud be "blockstun", but I think (observation based on COMCOMpunch_heavy) it is larger value set in 0x16 of that TRAM part)
:*'''Blocked'''- possibility of attack with technique when enemy is standing in proper block (A.K.A "rushing in mindlessly even tough it deals no serious damage")
:*'''Throw danger'''- Not clear yet, but it looks like possibility that this AI will be thrown (so a bit like invisible throw defense IMO)
*fill in amounts of techniques (Attack, Evade, Maneouvre). Amount of moves not, it will be added later.
*Now start creating techniques according to your concept you had prepared. If you did it in order I did, you are just filling it in and it is in correct order (first Attack techniques, then Evade, last are Maneouvre). About flags (0x40 in Technique part of [[MELE]]):
:*'''01''' - '''Interruptible''', this technique can be stopped by engine in the middle of execution (if it has more moves they don't have to be executed) if enemy gets outside some specified range(see below in moves)
:*'''02''' - '''Fearless''', meaning still unknown (altough I think it will be something with "attack with this technique while enemy attacks" becuase Ninjas have it on their Lightning stomp technique and they tend to use it when you try to attack)
:*'''03''' - '''Generous Dir(?ection?)''', AI can turn with this technique if you try to run left/right.
About weight of technique: I recommend to set highest weight only for back throw or tackle move. Other techniques should have weight small enough to be sure that highweighted technique has almost 100% of execution when it meets its conditions. "Highest weight" is relative, I sugest to take 100(0x64) as top. Also, weight down less important techniques.
 
About delays: Use common sense, stronger techniques(special attacks) should have a bit larger delay than regular ones. Also it is good to set really small delay for ''basic AI attack techniques'' to make them be ready any time. Overall some delays are must (they keep AI from repeating) but keep it as small as possible.
 
While writing techniques, fill in number of moves which technique should have. This varies from technique to technique. Every '''Attack type''' technique which is really attack or throw should have its proper '''position move''' as first move. Positions specify conditions under which this attack can be used. Keep in mind that with wrong position set, attack moves cannot be executed. In position, we have usually 3 parameters: Min distance|Max distance|Threshold distance. Min|Max is clear, Threshold is used for technique's flags (specifies distance of effect for flags) TIPS: Run#insert direction# is required for running attacks|throws. Close#insert direction# is required for standing attacks performed near enemy(combos, directional kicks/punches)and close throws. StartToCrouch is required for special attacks. Crouch is required for crouching attacks (sweeps).
 
Every '''Attack type''' maneouvre technique can have position move but doesn't have to. For techniques with only one maneouvre move, threshold distance usually specifies distance form enemy required to execute this technique.
 
'''Evade'''s doesn't require position but you can limit them with position move (altough it is better to leave engine to decide which dodge to use). These are required to be written after all attack type techniques.
 
'''Maneouvre'''s are same as attack type maneouvre techniques. These are required to be written as last techniques.
*Now we have written techniques, the last part is '''moves''' part. Simply fill in moves as you thought them out when you compiled technique part. Make sure that each technique properly links to its moves part and has proper amount of moves (to avoid stupid delayed crashes ^_^'). After this, count number of moves and write it in "amount of moves" field.
*Give this to ONCC this MELE was created for and hope for the best. Good luck with finetuning, it is the worst part :)
 
I hope this helped. Post your MELE soon !
 
--[[User:Loser|Loser]] 15:36, 29 June 2008 (CEST)
 
'''Post your MELE soon !'''
 
Soon?  It'll take me a week just to understand what you wrote! :-)
 
Thanks for the tip of the using the ninjabot profile. Also, doing a quick test, (in RL, too many things to do), it seems we can add a new melee profile. I copied the brutal konoko profile, gave it a new melee id (42), changed the name to motoko. Then changed the melee id in the BINACJBOCharacter file to 2A and it worked.
 
I'm going to post on OCF your tip on improving the melee profile, might as well get more people involved.
 
OniSplit has been updated again:
 
<Technique>
<Name>Punch Cmbo/Rtrt</Name>
<Flags />
<Weight>80</Weight>
<Offset_0190>10</Offset_0190>
<RepeatDelay>60</RepeatDelay>
<Moves>
  <Position Type="CloseForward" MinRunInDist="0" MaxRunInDist="10" ToleranceRange="4.5" />
  <Attack Type="P" />
  <Attack Type="PP" />
  <Attack Type="PPP" />
  <Maneuver Type="Pause" Duration="0.15" />
  <Maneuver Type="RandomStop" Chance="50" />
  <Maneuver Type="Retreat" Duration="0.75" MaxRange="10" ThresholdRange="4.5" />
</Moves>
</Technique>
 
Yes, you need to add the jump through glass feature.  When you're ready for us to test your mod, we'll be here!
 
These are exciting times to be an Oni fan.
 
[[User:EdT|EdT]] 17:54, 29 June 2008 (CEST)
 
Loser,
 
I tried the instructions you gave, except used the .xml version.  This is what I wrote:
 
                    <Technique>
                        <Name>Twister Kick Left</Name>
                        <Flags />
                        <Weight>100</Weight>
                        <Offset_0138>10</Offset_0138>
                        <RepeatDelay>0</RepeatDelay>
                        <Moves>
                            <Position Type="CloseForward" MinRunInDist="0" MaxRunInDist="10" ToleranceRange="5" />
                            <Maneuver Type="CircleLeft" Duration="0.5" MinAngle="0" MaxAngle="180" />
                            <Attack Type="KF" />
                        </Moves>
                    </Technique>
                    <Technique>
                        <Name>Twister Kick Right</Name>
                        <Flags />
                        <Weight>100</Weight>
                        <Offset_0138>10</Offset_0138>
                        <RepeatDelay>0</RepeatDelay>
                        <Moves>
                            <Position Type="CloseForward" MinRunInDist="0" MaxRunInDist="10" ToleranceRange="5" />
                            <Maneuver Type="CircleRight" Duration="0.5" MinAngle="0" MaxAngle="180" />
                            <Attack Type="KF" />
                        </Moves>
                    </Technique>
                    <Technique>
                        <Name>Willow Kick</Name>
                        <Flags />
                        <Weight>100</Weight>
                        <Offset_0138>10</Offset_0138>
                        <RepeatDelay>0</RepeatDelay>
                        <Moves>
                            <Position Type="CloseForward" MinRunInDist="0" MaxRunInDist="10" ToleranceRange="5" />
                            <Maneuver Type="Retreat" Duration="0.75" MaxRange="10" ThresholdRange="4.5" />
                            <Attack Type="KF" />
                        </Moves>
                    </Technique>
 
But AI did not perform any of them,  I tested with Copfem1.
 
Edit: I added the above code to Brutal Konoko profile at the very top of the attacks, still none of the moves were done.  Can you export your melee profile as .xml and post your code for the twister kick.
 
Thanks.
 
[[User:EdT|EdT]] 06:16, 1 July 2008 (CEST)
 
 
Here we go:
 
                    <Technique>
                        <Name>TwisterKick</Name>
                        <Flags></Flags>
                        <Weight>50</Weight>
                        <Offset_0138>10</Offset_0138>
                        <RepeatDelay>100</RepeatDelay>
                        <Moves>
                            <Position Type="CloseForward" MinRunInDist="0" MaxRunInDist="8" ToleranceRange="16" />
                            <Maneuver Type="CircleRight" Duration="0.009" MinAngle="180" MaxAngle="-180" />
                            <Attack Type="KF" />
                        </Moves>
                    </Technique>
 
                    <Technique>
                        <Name>WillowKick</Name>
                        <Flags></Flags>
                        <Weight>50</Weight>
                        <Offset_0190>10</Offset_0190>
                        <RepeatDelay>0</RepeatDelay>
                        <Moves>
                            <Position Type="CloseForward" MinRunInDist="0" MaxRunInDist="8" ToleranceRange="16" />
                            <Maneuver Type="Retreat" Duration="0.009" MaxRange="0" ThresholdRange="40" />
                            <Attack Type="KF" />
                        </Moves>
                    </Technique>
 
Position moves are done just so "it works". If you want to use it in more sophisticated MELE, you will have to adjust them. Also technique parameters(weight, delay) are up to you to set them as you want. Video with proof of concept is on OCF.
 
BTW sorry I am not into ONI so much right now, but I am trying to run Dead or Alive online (MMORPG based on good 1 vs 1 fighting game). Do you know something about it? Can you help me somehow ? I would be grateful, because I can't read Chinese and registration page (registration is free so far) is in Chinese X_X. I have tried online translator, but still I got stuck halfway in the registration process.
 
--[[User:Loser|Loser]] 09:00, 5 July 2008 (CEST)
 
:You could ask "coool", he's Chinese. [[User:Paradox-01|Paradox-01]] 09:58, 5 July 2008 (CEST)
 
Loser: WAIT A MINUTE!  We're waiting for the next version of H2W, you can't be playing Dead or Alive! :-)
Can you at least release what you have developed so far?
 
Well hopefully, Dead or Alive will give you some good ideas to add to Oni.
So what's the link to DOA Online?
 
[[User:EdT|EdT]] 04:44, 6 July 2008 (CEST)
 
Lol. Give the poor guy a break. :D
Getting a new game has considerably delayed me writing up GUI code...:D Even coders\hackers\whatever Loser is has to have some fun once in a while. :P
 
[[User:Gumby|Gumby]] 08:47, 6 July 2008 (CEST)
 
 
Loser, are you there?
I didn't managed to extend the ONIE file. [http://wiki.oni2.net/User:Paradox-01/Project_Imago/ONIE THIS] is what I came up in the last days. Any idea how to get it working?<br>
--[[User:Paradox-01|Paradox-01]] 23:15, 6 August 2008 (CEST)
 
 
----
:@"time to say goodbye": it would have been nicer if you took care of the other half of the TRAM project; I'm not comfortable with you leaving it "up to ONIrules" when and if and how the project will be completed. Also, be sure to "release" (dump onto your oni2.net account) any and every experiment of yours, no matter how unfinished (preferably in .oni form). This will be helpful. I have no comment at this time on your melee system (or on Skrylar's attempt to get Oni's source, for that matter)... if anything, this seems like it would be relevant to David a.k.a. Phoenix a.k.a. Lugaru 2. --[[User:Geyser|geyser]] 15:01, 13 August 2008 (CEST)
:Oh, and don't forget about the footage of Mukade chasing you from crate to crate. It's trailer stuff, definitely, and you have to give that stuff to us in ''some'' way; at least give us a short description of what you did. --[[User:Geyser|geyser]] 17:05, 13 August 2008 (CEST)
::I second that -- I am keenly interested in what you did to get Mukade to follow you over the crates. Will you share it with us? Pretty please! --[[User:Iritscen|Iritscen]] 03:50, 15 August 2008 (CEST)
 
::Loser, before you get busy with school, please release the files for the sorta explosive barrel (ONIE, material, impact, etc): http://loser.oni2.net/Videos/Sorta_exploding_barrel.wmv  We can now edit the ONIE in .xml!
::I want to add to the request from geyser and Iritscen, the files related to jumping Mukade
 
 
 
----
 
[url=http://loser.oni2.net/Junkyard/env_barrel_tech_demo.rar HERE] are files for exploding barrel. Since this just alters material of texture, you still cannot push those barrels around. I would be glad if we could, but we can't. And read README, all info is there.
:*Personally, I think this is dead way. [[OBOA]] barrels should be better, but OBOAs have too many bugs and limitations.
:*So far, Gumby's project looks like the best solution. Sigh, in Oni we really need something like ONCC, but for moveable objects. ONFC, ONi Furniture Class. Similar to ONCC, only otimalized for objects.
 
Next, I apologize for not released files, but I deleted them after video was taped. I tried to reproduce it, but it would require more time than I have now. So I have to tell you verbally what I done:
*I tried to make it so AI2s can jump on obstacles. To achieve it, '''pathfinding grid''' was altered in selected BNVs. Those BNVs are (can be seen with "chr_show_bnv=1"):
:*'''50''', that is main "jump area" where obstacles are
:*'''52''', neighbour of 50
:*'''54''', BNV where datapad lies
:*'''46''', neighbour of 54
*Originally, under those obstacles there are red "impassable" tiles. I changed it so there were orange "danger" tiles around obstacles and dark blue "border 4" inside of them.
:*Also, experiments with [[AKBA]]s were done for BNV 54, tried to change GQs in [[AKAA]]s so AI2s can use alternate route which leads directly on the closest-to the-edge crate near savepoint 2 door. However, since AI2s then were a bit "dumb" (they kept falling down), pathfinding grids of BNV 54, 52 and 46 were modified as well, added double line of orange tiles along edge. Then it was almost OK.
*About AI2 jumping abilities -
:*Range where AI2 can switch to MELE (and to "vector of movement" instead of pathfinding) is still unknown for me. So I did not touch it.
:*It looks that something is broken in AI2 jumping logic. When AI2 jumps, it calculates distance from where it should jump. This formula takes into account basic tap jump, all velocities etc. (well, I think, I cannot read it from engine) AND JETPACK TIMER AS WELL. At least it seems for me. But then, when executed, AI2 cannot do more than tap jump. So it ends in AI2 doing jumps too early. When jetpack timer was decreased AI2 started to jump more and more that it lands correctly so it can hurt enemy with airborne attack. In all experiments, victim (player) stood still. Dunno what is taken into account if victim moves.
:* MELE was simplified, so it only contained ''throw'' and ''run jump forward punch''. Jump was strongly uplifted. Basically, AI2 jumped all the time ^_^.
:*Max run in distance for run jump forward punch was riddiculously large (00|00|7A|44, something around 1000) to make sure AI2 WILL jump even tough it is behind obstacle.
:*Min run in distance was about 0.5 (00|00|00|3F)
:I guess this is all
 
Overall, while being interesting exeriment, I think this is dead way. If I could, I would change it, so AI2 can jump over gaps and obstacles in pathfinding and in MELE, and this jumping is independent from jump attacks.
--[[User:Loser|Loser]] 15:11, 21 September 2008 (CEST)

Latest revision as of 02:17, 4 May 2022

Talk page was cleared. No big loss of information, since it contained outdated HEX stuff from year 2008 and several already proven-to-be-wrong theories about MELE.