Please enter your user name and password: User Name: Password:
Register an account! · Forgot Password or Username?
What is Muelsfell? - Muelsfell: Rise of the Golems is a persistent browser-based game (PBBG) that revolves around the creation of magical golems by mages and magic users. Muelsfell is part combat, part roleplaying game, part resource management. Sign up for an account and give it a try -- for free!
Darghelm, in the Foothills of Ulvania
The hardy people of Ulvania value family bonds and friends over all else, so Darghelm has developed an extensive network of taverns, cozy inns, and messaging systems. They are not a cowardly nor xenophobic people and so allow people from all over the continent to use their taverns and speakeasy establishments.
You can read but will NOT be able to post until you login or Register
Index » Muelsfell Game Forum » Bug Reports Muelsfell World v1.0 Forums
AuthorThread: Movement
1 | Page 2
Yamikuronue
Yamikuronue's Avatar
Posts: 1288
Location: Mottonsborough
Magus Age: 116 years old
Real Name: Bay
Website: Click Here
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
Rednaxela's Avatar
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
Harryhausen
Harryhausen's Avatar
Posts: 562
Location: Jaaron
Magus Age: 110 years old
Clan: ARROW
Website: Click Here
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
Rednaxela's Avatar
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.
Atropos
Posts: 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")
Atropos
Posts: 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
Harryhausen
Harryhausen's Avatar
Posts: 562
Location: Jaaron
Magus Age: 110 years old
Clan: ARROW
Website: Click Here
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
Rednaxela's Avatar
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? :P
Last Edited: Nov 27, 2009, 5:06 am
Atropos
Posts: 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
Rednaxela's Avatar
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
MustafaDeValdemar
MustafaDeValdemar's Avatar
Posts: 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
Souji
Souji's Avatar
Posts: 1376
Location: Darghelm
Magus Age: 115 years old
Clan: ARROW
Website: Click Here
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.
Joachim
Joachim's Avatar
Posts: 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.
Halftea
Halftea's Avatar
Posts: 1307
Location: Darghelm
Magus Age: 132 years old
Clan: ADV
Website: Click Here
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
Kaelas's Avatar
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
Caerula's Avatar
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
Sissel's Avatar
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
Caerula's Avatar
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
GordonIronsmith's Avatar
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
Muelsfell Chat Options
Muelsfell currently has no official chat room setup, but there is an unofficial player run chat called Darkmyst Muelsfell Conference.

Username: 


Disclaimer: Please note that this chat is NOT moderated, supported, owned, or operated by Muelsfell staff. Muelsfell is not responsible for the content or function of the chat room, nor is it linked in any way to Muelsfell game functions such as your workshop, account name, or password (your magus name is forwarded to the chat as a nickname if you are logged in when you join the chat). Muelsfell Terms of Service do not apply for this chat, so please use this only at your own risk, and remember that official game staff will NEVER ask for your password.
Why wait? Register for your free account and start playing right now!

Play Muelsfell!