Author | Thread: Movement | 1 | Page 2 |
Yamikuronue Posts: 1288 Location: Mottonsborough Magus Age: 116 years old
| Message #39792 Posted: Nov 25, 2009, 4:05 am |
In other news, hiding the last post on page 1 when there's technically enough posts to make a page 2 causes glitches for those other than me viewing the forums. Please edit your posts instead of deleting and posting again - it makes things run smoother. This post should correct the issue. |
|
Sconibulus Posts: 664 Location: Shuul Magus Age: 116 years old
| Message #39794 Posted: Nov 25, 2009, 4:07 am |
I think the Pseudocode explains the behavior pretty well, under one condition, that condition being that Holdatmax is the exact same thing as Backup. Oh, and it also left out the random chance of backup failing, but that was probably intentional. |
|
Rednaxela Posts: 177 Location: Rimesvin Magus Age: 119 years old
| Message #39795 Posted: Nov 25, 2009, 4:16 am |
Provided that: 1) Backup() is 'blind' and doesn't know what's too far to back up 2) Movetowards() is 'blind' and doesn't know what's too far to move forward 3) Either, a) "TooClose" is broken or b) as sconi says Holdatmax() is the same as Backup() I believe the pseudocode indeed basically explains the behaviour |
|
HarryhausenPosts: 562 Location: Jaaron Magus Age: 110 years old Clan: ARROW | Message #39827 Posted: Nov 26, 2009, 5:49 am |
Atropos said: Oohhh Dear. I think I know what's causing the problem. The check seems to be sequential with defender checking second. From what I get from the debugger, here's how it seems to be working: IF (!AttackerInRange) THEN Movetowards (); ELSE Hold () ; IF (!DefenderInRange) THEN Movetowards (); ELSE Hold () ; IF (Hangback) IF (!AttackerTooClose) THEN Backup () ; ELSE Holdatmax () ; IF (!DefenderTooClose) THEN Backup () ; ELSE Holdatmax So, if the dragon defender is say, between 0 and 70ft away from you, it seems to just dive back it's max move. It seems to get this check LAST in terms of order of operations, so the attacking golem does not get to chasing until a turn after it's moved out of range. Hopefully this is enough for Kep to go a-fixin, as I'm going to be pretty inactive for exams for a while. Atropos, Bug-Killing since 1669. THAT definitely seems to cause my issue. The hangback should retreat before the Attacker checks to move. |
|
Rednaxela Posts: 177 Location: Rimesvin Magus Age: 119 years old
| Message #39828 Posted: Nov 26, 2009, 7:10 am |
Harryhausen said: THAT definitely seems to cause my issue. The hangback should retreat before the Attacker checks to move. That indeed causes your issue, but simply changing the order of checks as you say would cause a situation where non-hangback would advance without the hackback golem trying to retreating, which is just as bad a problem. So the fix needs to be a little deeper than that. |
|
AtroposPosts: 94 Location: Daylsfeld Magus Age: 132 years old Clan: AGOMC | Message #39836 Posted: Nov 26, 2009, 12:42 pm |
A possible fix, but it might change balance: Attacker Effective Speed = Attacker Speed*SpeedMod ; Defender Effective Speed = Defender Speed*SpeedMod ; AgressiveSpeedMod = 1.33 NormalSpeedMod = 1.0 HangbackSpeedMod = 0.33 IF ("Both want to melee") THEN Move(Aspeed + Dspeed) IF (ASpeed > DSpeed) THEN Move(Aspeed - Dspeed) towards Attacker desired position (Weapon Max Range) IF (Dspeed > ASpeed) THEN Move(Dspeed - Aspeed) towards Defender desired position (Weapon Max Range) IF (Dspeed == Aspeed && (AHangsBack || BHangsBack) ) THEN DoNothing IF (Dspeed == Aspeed) && "Both Golems want to close to melee" THEN Move(Dspeed+Aspeed) ELSE Display("Something Bad Happened") |
|
AtroposPosts: 94 Location: Daylsfeld Magus Age: 132 years old Clan: AGOMC | Message #39837 Posted: Nov 26, 2009, 12:49 pm |
Also, this would allow for some other things like: New AI (Don't Get Hurt.) Sets WeaponMaxRange to 99999. Golem attempts to use ALL energy in combat to gain distance. Or even round-by-round combat (Dare we dream). "Gem Golem, attack the Iron's head" "Gem Golem swings and hits head, head, chest" "Iron Golem, Retreat" (Sets to DGH AI)Last Edited: Nov 26, 2009, 12:49 pm |
|
HarryhausenPosts: 562 Location: Jaaron Magus Age: 110 years old Clan: ARROW | Message #39840 Posted: Nov 26, 2009, 2:48 pm |
How about: ROUTINE Step IF argument2 = 0 THEN RETURN ENDIF combatdistance += argument2 IF ((argument1<combatdistance)AND(argument2=1)) THEN combatdistance = combatdistance - 2 ENDIF IF (combatdistance < 0) THEN combatdistance = 0 ENDIF ENDROUTINE Step ROUTINE CombatMove IF attacker.weaponrange > defender.weaponrange THEN attacker.mov = 1 defender.mov = -1 ELSIF attacker.weaponrange == defender.weaponrange THEN IF attacker.ranged THEN attacker.mov = 1 ELSE attacker.mov = -1 ENDIF IF defender.ranged THEN defender.mov = 1 ELSE defender.mov = -1 ENDIF ELSE attacker.mov = -1 defender.mov = 1 ENDIF attacker.speedleft = attacker.speed defender.speedleft = defender.speed FOR nx = 1 to 1000 DO IF attacker.speedleft > 0 THEN Step(attacker.weaponrange,attacker.mov) attacker.speedleft -= 1 ENDIF IF defender.speedleft > 0 THEN Step(defender.weaponrange,defender.mov) defender.speedleft -= 1 ENDIF ENDFOR ENDROUTINE CombatMove Could that solve all the issues and actually remove the battle modes altogether?Last Edited: Nov 26, 2009, 2:59 pm |
|
Rednaxela Posts: 177 Location: Rimesvin Magus Age: 119 years old
| Message #39851 Posted: Nov 26, 2009, 11:19 pm |
I think what Atropos proposes there is moving in the right direction. Here's a variation I'd suggest, which is similar to what Atropos suggests but accurately simulates continuious-time golem behaviour: EDIT: Ugh, the forum breaks indenting, so please read http://pastebin.com/f21cb205d (Some of my terminology may be a little akward so to make things more understandable: "AgreedDistance" is the distance the combatants will be from eachother when they begin to 'disagree' on whether they should be closer or further from eachother) What do people think of this? I personally think any algorithm that doesn't simulate the golem's continuous-time behaviour is kind of flawed. I also think that it's cleanest to avoid ranged/melee special cases, because weapon range and movement mode (hangback/normal/agressive) really should provide all of the information that's needed to simulate reasonable golem movement. After all, what's the difference between a ranged weapon and a really really long poleaxe? :PLast Edited: Nov 27, 2009, 5:06 am |
|
AtroposPosts: 94 Location: Daylsfeld Magus Age: 132 years old Clan: AGOMC | Message #39855 Posted: Nov 27, 2009, 2:14 am |
I think it's pretty solid. (It has a little bit more effort put into it than mine (Which was just a brainstorm tossof to get gears cranking), and I do believe it shows.) I think whatever the speedmod co-efficient would be a contentious issue, but something along the lines of 1.5, 1.0, and 0.5 would probably be pretty fair. What does everyone else think? |
|
Rednaxela Posts: 177 Location: Rimesvin Magus Age: 119 years old
| Message #39857 Posted: Nov 27, 2009, 3:22 am |
I'd agree that a speedmod coefficent would be a contentious issue. I'm not ready to advocate any particular numbers yet. However I have a hunch the numbers you propose might be too extreme. One thought is, perhaps instead of a speedmod coefficent for modes, there should just be a 'backwards movement' modifier and a 'forwards movement' modifier? That would make things simplier, and might be easier to balance fairly. Also, doesn't agressive currently have some kind of speed modifier already? I thought it did. If so, that might be a good starting place for thinking about this. EDIT: After some more thinking, some randomization would kind of be needed really with the proposed method, because otherwise you get into situations where either 1) the hangback golem is always hit and gets too obliterated, or 2) the hangback golem never gets hit by most golems. Both are bad and randomization adds more middle ground. Doesn't hangback already have a failure chance? This could stay instead of a modifier. I'll elaborate more soon. EDIT2: Perhaps something along following lines for 'speed modifier': Agressive: | 1.0 normally, 15% chance of 1.5 | (never goes backwards so no need for that) Normal: | 1.0 forward | 0.5 backwards Hangback: | 0.8 forward | 1.0 backwards normally, 15% chance of 0.0 backwards not sure about exact numbers, but it's a concept that I think gives reasonable tradeoffs to each mode. Anyway, what does everyone think of what would be good for the modes?Last Edited: Nov 27, 2009, 5:28 pm |
|
MustafaDeValdemarPosts: 235 Location: Rimesvin Magus Age: 120 years old Clan: ARROW Email: valdemar23@yahoo.com
| Message #40796 Posted: Dec 28, 2009, 9:33 pm |
Any word on possible solutions to this issue? FYI - the movement bug also occurs in PvP combat between golems that are both equipped with ranged weapons. Thanks, :), MdV |
|
SoujiPosts: 1376 Location: Darghelm Magus Age: 115 years old Clan: ARROW | Message #44256 Posted: May 6, 2010, 7:12 pm |
Well this is a movement sort of problem so I thought I would add it here. In round 2 I get attacked with 132 between us however in Round 5 we are both outta range with 112 feet between but for some reason I still take damage. Now I know that her claws are outta range with 112 feet but probably not her Cold Breath. So the question is, why the notice? [Round 2] Your Clay Golem holds its ground while Caerula the Frost Dragon holds its ground. Caerula the Frost Dragon backs up so that it can use its coldfire breath effectively. . Your golem backs up so that it can use its repeater dart tube effectively. The attacker's repeater dart tube is out of range with about 132 feet between them, but the defender readies its coldfire breath. Caerula the Frost Dragon attacks with its coldfire breath and hits the right hand (1 dmg), the right arm (1 dmg), the head (8 dmg -- CRITICAL HIT!), the chest (1 dmg) and the left arm (4 dmg) with an exhaled gout of ice crystals. [Round 3] Your Clay Golem continues to slosh through the muck towards Caerula the Frost Dragon while Caerula the Frost Dragon holds its ground. The attacker's repeater dart tube is out of range with about 122 feet between them. Caerula the Frost Dragon attacks with its coldfire breath and hits the right arm (1 dmg), the pelvis (1 dmg), the pelvis (1 dmg), the left hand (1 dmg), the right arm (8 dmg -- CRITICAL HIT!) and the right leg (1 dmg) with an exhaled gout of ice crystals. [Round 4] Your Clay Golem continues to slosh through the muck towards Caerula the Frost Dragon while Caerula the Frost Dragon holds its ground. Your golem backs up so that it can use its repeater dart tube effectively. The attacker's repeater dart tube is out of range with about 122 feet between them. Caerula the Frost Dragon attacks with its coldfire breath and hits the chest (4 dmg), the chest (4 dmg), the right arm (6 dmg -- CRITICAL HIT!), the chest (1 dmg) and the right leg (4 dmg) with an exhaled gout of ice crystals. [Round 5] Your Clay Golem continues to slosh through the muck towards Caerula the Frost Dragon while Caerula the Frost Dragon holds its ground. The attacker's repeater dart tube is out of range with about 112 feet between them. Both combatants are out of range with about 112 feet between them. Caerula the Frost Dragon attacks with its coldfire breath and hits the abdomen (8 dmg -- CRITICAL HIT!), the right hand (1 dmg), the left leg (3 dmg), the right arm (1 dmg) and the right arm (4 dmg) with an exhaled gout of ice crystals. The defender's coldfire breath needs to recover. |
|
JoachimPosts: 208 Location: Asylum Magus Age: 120 years old Clan: STEAM Real Name: Walt
| Message #44259 Posted: May 6, 2010, 9:14 pm |
Hmmmmm...it may be a wording issue rather than a faulty game mechanic. Caerula being out of range may be in reference to her physical/claw attacks. I do know that her breath weapon's range is way beyond 112 feet. If it was worded "Both combatants are out of melee range with about 112 feet between them", it might make more sense. |
|
HalfteaPosts: 1307 Location: Darghelm Magus Age: 132 years old Clan: ADV | Message #44263 Posted: May 7, 2010, 1:28 am |
I'm also curious as to why the golem backs up to use its Repeater Dart Tube when it was already out of range the turn prior. This just keeps it out of range. But I'm not Ranged Clan, so maybe I'm missing something... |
|
Kaelas Posts: 1052 Location: Darghelm Magus Age: 118 years old
Real Name: Barry
| Message #44269 Posted: May 7, 2010, 6:43 am |
Actually, as far as I've ever seen, the dragons never use dragon breath beyond a hundred feet. Not sure if that's how it's supposed to be, but yeah. Although, given that the battle info doesn't give the distance if someone attacks, it might just be that Caer is breathing beyond 100 feet and I just don't know it. |
|
Caerula Posts: 13 Location: Rimesvin Magus Age: 114 years old
Real Name: Unpronounceable
| Message #44276 Posted: May 7, 2010, 2:46 pm |
On a good day, my breath weapon can reach 150+ feet. |
|
Sissel Posts: 10 Location: Asylum Magus Age: 106 years old
| Message #44278 Posted: May 7, 2010, 2:58 pm |
CAERULA! Sweety, you're finally online! Yaaaaaay! |
|
Caerula Posts: 13 Location: Rimesvin Magus Age: 114 years old
Real Name: Unpronounceable
| Message #44279 Posted: May 7, 2010, 5:18 pm |
Away from me, Little One...or the next time I'll do more than just sending you back home in a full body cast. |
|
GordonIronsmith Posts: 434 Location: Broukendale Magus Age: 113 years old
| Message #44281 Posted: May 7, 2010, 6:21 pm |
Shhh, the people are talking. (Just kidding Sissle I love your noodles.) And it looks like movment is being well taken care of which I couldn't be happier about. The biggest problem I have is, Golems backing up out of range only to get blasted but a breath weapon. (that's when the dragon is standing still yet the golem keeps moving backwards)Last Edited: May 7, 2010, 6:25 pm |
|
| |
| First | Page 2 |