PDA

View Full Version : Organizing Melee Fix (Programmers Read)


Bahleted
11-16-2009, 09:47 AM
Okay so after reading the various posts about the melee issues its apparent that issue is beyond being fixed in the near future by our server devs.

Not because they don't want to but simply because they don't have the resources and/or manpower. How do we fix this?

Take this post as a call to arms to all the programmers that want to help fix it and be a big part of the community. Help make our server we enjoy a better one. I myself lack the skill neccesary to fix the issue but I can do my part by organizing and motivate people that do and are willing to invest a little bit of time doing so.

Wouldn't you want to sit down in the aftermath of the game with your melee knowing that you made it possible for melee classes to be desired by groups again? Especially before kunark is introduced?

Let's band together to do so.

If anyone is interested please respond and post here if we get a few people willing to donate a couple of hours and share the info with each other I'm willing to bet we can have this fixed in no time.

Takon
11-16-2009, 12:26 PM
While not a bad idea in theory, and obviously created with good intentions, this post assumes a few things:

1) Programmers want to do more programming when they get home from work
2) Programmers have time to devote to such a venture
3) These programmers know c++ and perl
4) (Big one) The Devs are willing to let programmers into their source code

I considered offering my services, but I don't fit into 2 or 3. I doubt it would take long to catch on to c++ as I've at least seen the language and know other c-based languages, but who knows with Perl.

I also would be surprised if the Devs were willing to let others work on the source code without at least a bit of background information.

That being said; with developer approval, and after talking to one about it I could see myself lending a couple hours here and there as needed.

Tollen
11-16-2009, 12:35 PM
Devs have offered to send the source code for this in the patch thread. I too don't have any programing background but my brother does and he used to play EQ in the 1999's with me so Ill give him a call and see if he would be up for it.

C++ I know he does, not sure about perl

Bahleted
11-16-2009, 12:57 PM
I know my post was brief and not very explainative it was mearly an intro to getting something started.

I'm asking for help from people who do have the knowledge and time to help fix it or at least provide a productive medium in where this can be accomplished. I fully understand people might not have the time to contribute I'm not expecting anything from anyone who doesn't have that time.

Aeolwind pretty much implied he would be willing to share code with people willing to try due to lack of manpower. Hopefully he wasn't just being sarcastic perhaps he can respond to this post with some guidance or insite to clarify what he would want in that person. Also possibly sticky the post so it can gain some ground.

I figured if people got to working on it and sharing ideas and progess here for the others willing to help it would help actually getting it done instead of just wasting time complaining about it.

My intentions are an attempt to turn all that manpower into productivity.

I appreciate your interest

Summit
11-16-2009, 01:56 PM
I'd be very interested in working on the project. I originally came to these boards hoping to join the development team but when I couldn't find any information regarding who to contact I assumed they were not looking for new team members.

I am good with C++ although haven't used Perl much. Have gotten an EQEmu server running in the past if that is helpful at all. Graduating with a BSc in computer science next month.

Galahad
11-16-2009, 02:00 PM
I highly doubt the problems they have have anything to do with actual coding errors. I think it more has to do with errors in the formulas they are (or are not) using. Things like: what chance does having 75 block give you to actually block an attack, etc.

On the logic side they are probably missing info like: what is the appropriate distribution of the DIs over certain attack/defense values. The math behind this stuff isn't too difficult, and if they've come as far as they have on their own I doubt they'd have much trouble implementing it.

The big thing I think they are missing is reliable data. Until they get reliable data, what's the point of fixing anything? Replace incorrect mechanics with more incorrect mechanics?

guineapig
11-16-2009, 02:29 PM
Here is a very long post somebody wrote about parsed defense statistics.

http://beastlords.org/index.php?topic=1944.0;wap2

There is a lot of stuff out there like this, you just have to weed through the ones that involve AA's and other things that obviously were not in Classic.

One interesting thing to note is that with all the threads about getting hit so often people keep referring to their AC but not their agility.

The link mentions that AC deals with how much damage you take but has nothing to do with avoidance. Agility is the only stat that effects how often you get hit. I'm sure everybody already knows this but nobody seems to be posting how much agility they have when they give examples.

Dolalin
11-16-2009, 02:30 PM
Here's a good summary of the attack/defense system in EQ:

http://eq.knowledgepit.org/wiki/Melee_attacks

So, first we need to define the problem. At lower levels it seems mobs are hitting for more than they should, or rather, the DI is rolling high compared to what it 'ought' to be, given a player's AC/def. Max hits by mobs land too often, min hits too seldom.

Next task should be quantifying this. This involves parsing, obviously, and is much easier for someone with GM powers to do, since they can change levels / summon gear easily, so I'd recommend doing it on a test server.

Multiple classes.
Levels 1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50.
AC: Naked, +100, +200....to softcap.
Mob: low green, blue, even, yellow, high red.
500 swings of combat or so.
We can pick a few values of Level/AC/Mob, and test the effect of agi, and see if it's in-line with expectations.

That should be set up in a nice table, organized by DI and max/min hit %. It could probably be done in a day or two.

(This is bringing back memories of my job in QA...)

Next, knowing the state of things, we should compare this to classic, or even live-EQ parses if no classic ones are available, to see what needs to be adjusted.

Adjustments can be as simple as tweaking AC/ATK values on mobs and players, or as thorough as a new attack/defence formula for the lower levels. Once the evidence is in hand, a decision has to be made here, and I guess that's where our friendly devs come in.

guineapig
11-16-2009, 02:39 PM
So what sort, if any parser are we allowed to use on this server?
can a GM or dev post some recommendations?

I don't want anyone breaking any rules by using extra software that would get them banned and honestly, I don't know enough about them myself to pick.

Dolalin
11-16-2009, 02:40 PM
Uh parsing just means turning /log on, and analyzing that logfile later. There's no actual "software" being run.

Zithax
11-16-2009, 03:22 PM
I highly doubt the problems they have have anything to do with actual coding errors. I think it more has to do with errors in the formulas they are (or are not) using. Things like: what chance does having 75 block give you to actually block an attack, etc.

On the logic side they are probably missing info like: what is the appropriate distribution of the DIs over certain attack/defense values. The math behind this stuff isn't too difficult, and if they've come as far as they have on their own I doubt they'd have much trouble implementing it.

The big thing I think they are missing is reliable data. Until they get reliable data, what's the point of fixing anything? Replace incorrect mechanics with more incorrect mechanics?

What's a step into the dark? It can't be in the wrong direction.

briannick91
11-16-2009, 03:26 PM
there are realtime parsers that will read your file as you dps and you can get an easy to read read-out, and im sure they wont ban you for something like that.

Halladar
11-16-2009, 04:03 PM
I looked at that beastlord article about defensive stats.

He may be right for all I know, but I can tell you that in live pc's and npc's played by different rules.

The best fighting a melee was ever going to do was going ld in a fight and having them become an npc for a bit.

Or look at how much sheer damage a pc player does when they get charmed.

I guess it is due to the fact that most often we fight things that are maybe 10 levels lower to us, and when we become npcs we keep our level.

So if you are in a group fighting level 40 mobs and go ld it is like a level 50 mob suddenly appearing on the scene. Not a ... well intentionally handicapped character.

Bahleted
11-16-2009, 04:03 PM
Excellent start guys ill take a better look at the links when I get home as its frustrating to check out much on my blackberry.

I really wish a dev would post and shed a little light on us about what is known and within what guidelines we are allowed to work with.

I really appreciate all the posts and discussion on the possible cause of the errors.

This is exactly what our eq community should be!!

Halladar
11-16-2009, 04:06 PM
I just want to say that guy's approach is fine for pvp. For all that ac mattered in pvp honestly.

but mobs and pc's are different things.

Bahleted
11-16-2009, 04:16 PM
Something just dawned on me!

If anyone has the orig cd couldn't u install that and play the demo? U fight a skeleton on there could u parse a couple fights with the skeleton and look at the difference?!

That's bare bones core orig melee data right there!

Dolalin
11-16-2009, 04:18 PM
We know nothing about the combat system in that demo, it could be extremely simplified and/or coded very differently from live.

Yoite
11-16-2009, 04:22 PM
im pretty sure you can't lose the figth vs the skelly in the demo, iirc it was a script you participated in, not a real fight.

Bahleted
11-16-2009, 04:31 PM
That might be true

However I don't see why they would impliment different versions of the same formula like that. It might be well worth checking into seeing as we don't have much else to work from.

Why not figure out the demo mechanics something that is available and based off something similiar to what we know as classic eq melee mechanics.

I feel it ashame to just disregard it when we can use it impliment it and see where that formula puts us at level 5,10, 20 etc

It might just be that simple

Bahleted
11-16-2009, 04:39 PM
Didn't see last post are we sure its actually a script and not an actual fight?
Where is this proven?

Dolalin
11-16-2009, 04:53 PM
http://samanna.net/eq.general/effects.shtml

Another great site about the EQ combat system, with graphs.

http://crucible.samanna.net/viewtopic.php?f=39&p=82927

More of the same, Mitigation Information with formulas.

Dolalin
11-16-2009, 05:09 PM
Ho ho ho, GOLD:

http://www.thesteelwarrior.org/forum/showthread.php?t=5868

Chart of defensive mitigations, by class, from parse info!

FatMagic
11-16-2009, 05:17 PM
Something just dawned on me!

If anyone has the orig cd couldn't u install that and play the demo? U fight a skeleton on there could u parse a couple fights with the skeleton and look at the difference?!

That's bare bones core orig melee data right there!

I have the EverQuest Beta 4 CD still.... i wonder how good or bad the data would be in that. Hahah!

Morfnblorsh
11-16-2009, 05:43 PM
I have the original discs for Vanilla, Kunark, and Velious (and all the way through GoD). If there's anything I can do to help let me know.

Yoite
11-16-2009, 06:23 PM
Didn't see last post are we sure its actually a script and not an actual fight?
Where is this proven?

I don't have any proof other than my memory, although others may have a screen shot or video they could post of the old tutorial.

But what i remember is you would start the fight, and after 1 or two swings it would pause the combat and say something like "whoa that skelly is kicking your ass, maybe you should try nuking him" well thats not what they said but its close. And so you would nuke it, bam, and it would die.

Bahleted
11-16-2009, 06:55 PM
I have the orig cd myself somewhere it would take me a day to locate it. Nice find Dolalin! It's great to see all this info and ideas coming together.

Criticism to these ideas is good as long as its followed by proof of why it wouldn't work not just memory. After all it's going to take a good amount of pooled idea's and criticism to get us on the right path and eliminate the road that leads us to a dead end.

Summit your request to help hasn't been disregarded its exciting to see so many people taking interest in helping out as far as implementing the help into something we are at a standstill until we can get some more ideas and information into this forum to point us into a solid direction. Then we can begin to share the formulas for everyone to review and poke at hopefully the more experienced eyes on it the better. As to if the Devs would want that we don't know... Noone has responded to this post yet to guide us.

I had no idea this post would take off with such great minds and ideas putting the effort in, really guys kudos for showing the initiative to fix the melees. All of the sources of info flooding in and ideas shows great prospects for a resolution being discovered quicker than anticipated.

As for the beta 4 cds I'm unfamiliar with them or eq beta however would it be easy to pull the info from them? Can you even play it without needing to log in? That could be valuable.

Also, If a dev is reading this could you please please please chime in and shed some light on what we are trying to do here?

Thanks again to everyone for donating their time into research and posting some great ideas.

Throttle
11-16-2009, 07:20 PM
One interesting thing to note is that with all the threads about getting hit so often people keep referring to their AC but not their agility.

As surprising as it may seem, this is because agility never had any influence on avoidance. None whatsoever. The only defense-related thing agility did was give a tiny bonus (or penalty if under 75) to your armor class. It is an ancient, all-too-common misconception that agility makes you dodge more, but it didn't, and neither did dexterity affect your chance to land hits or make you swing faster or anything like that. This was tested and parsed to death a trillion times over and the only people who still think it worked that way are people who believe everything they hear or make assumptions based on what they feel things ought to be like.

People initially thought that agility helped your avoidance, and that's because it's very easy to notice a placebo difference when you fully believe it's there. People wore agility gear en masse, but once they learned that it actually didn't do very much, they stopped, and agility was soon known to be a virtually useless stat. A lot of emu servers code agility avoidance and dexterity hit chance into their servers because they think it should be there, and this only makes more people think it should be that way. They never stop to consider if the fact that none of the experts make any mention of agility in those countless threads that detail EQ's defense system might actually mean it didn't do anything.

messiah_b
11-16-2009, 07:49 PM
Character creation:

Agility is one factor in determining your avoidance--how often NPC's will miss when trying to hit you. It also increases your chances to gain points in some combat skills.

Halladar
11-16-2009, 07:54 PM
but it didn't.

messiah_b
11-16-2009, 08:31 PM
I'm not doubting you, but it's pretty easy to see where the rumor came from.

Haynar
11-16-2009, 10:50 PM
How were the changes made to increase the players chance of hitting?

I am curious based on some dependencies in the code, in determining how often a player is being hit. Also in order to replicate some things concerning mobs behaviors, this is necessary info.

Thanks,

Haynar

Cribanox
11-16-2009, 10:51 PM
Its a script, nothing in the tutorial is for real. You can't die, nor can you go and attack stuff randomly. Even the spell you use to kill the wolf is completely fake and doesn't work like it would in live.

Anyway I hope a dev responds to this thread and gives us an actual probability something like this could work... because if the devs just needed more manpower, I'm sure they would have already asked for our help, or have done a "call to arms" post.

stormlord
11-17-2009, 12:34 AM
If nobody wants to group with a melee because of this then something is broke.

That's my opinion.

stormlord
11-17-2009, 12:48 AM
http://www.cs.hmc.edu/~jhsu/everquest/eq.html
As predicted weeks ago, my close friend Talorien Treantfist has won the Test of Steel on Veeshan. Weeks and weeks of predictable statements, and all were true. Why you may ask? The answer is quite simple, Talorien is a Monk.

For a year, the great debate has been discussed about the true roles of the Warrior and Monk in relation to each other, as well as what changes should be made if at all. At first, both sides had their share of agitators for change, as well as a verbal portion who advocated the status quo. With time, came the "Warrior's" patch, which granted additional hit points, innate magic resistance, and critical hits. Eventually the "Feign Death" patch came in, further reducing the convenience of Feign Death. The stances changed, but the positions are the same, some advocate change, some advocate the new status quo.

But what was it that allowed Talorien to win? Was it the rules of the contest? No armor allowed, and only a fine steel weapon in your hands? Obviously these rules are extremely biased towards Monks. They have the highest Defense skill caps of any class, in addition to have an innate AC bonus for being a Monk. Naked, a Monk has a greater proportion of his armored AC than any other class, and their AC's are among the highest in Norrath, ranking even with Warriors (full suits of Cobalt have yet to be compared). Additionally, their 1H blunt skills have the highest cap in Norrath, ending at a respectable 240 before level 50. The last thing that clinched it was Talorien was level 48, the highest level allowed in his level 40-48 bracket. Clearly victory was his alone as the sole level 48 Monk participating.

But was it the rules that allowed him victory? Or does the spectre class imbalance raise itself again? A few days before the Test of Steel (even before the Robe of the Lost Circle was upgraded), Talorien tested the waters by dueling various level 50+ Warriors while on a Plane of Hate run. The results are suprising. Against a level 53 Warrior named "Blanky", dressed in a suit of Cobalt, Indicolite, and some Crafted (I have not been able to contact him and ask how much), wielding a Jasarth Trident and a Springwood Club, Talorien won three out of three times, two of which with 3 bars of life remaining. At level 47. Obviously, something is quite wrong, for Blanky can hardly be considered poorly equipped.

Verant has always said that PvP prowess was no indication of class balance, in addition, there is group usefulness, and solo'ing ability. But the point remains, is this really fair? Warriors may claim to be the "tanks par excellance", but the claim is far from proven with comparable hybrid AC and hit points, in addition to superior Monk AC. Monks may claim partial titles in all three applications, being indespensible within certain zones or runs, in addition to being extremely able to solo. The verdict lies in Verant's court now that the results are out.

Note it was posted In June 2000.

I was surprised about it saying monks can solo. I remember 1999 as brutally unforgiving (insert sarcasm). :0

Posted this about warriors:
First of all, Gordon states that Warriors rank "third" in overall melee damage. What may not be obvious is how far behind do Warriors lag behind? Do they deal out 1 dmg for a Monk/Rogue's every 10, or do they deal out 9? The statement Warriors are in "third" means nothing. If Rogues and Monks deal out 1000 damage a second, but Warriors only deal out 10 a second, with hybrids dealing out 9 a second, Gordon's statement would still be true. Look, Warriors are in third place, with hybrids behind in 4th. This theoritical situation is obviously unbalanced, but Gordon's vaccuous statement is still true.

Secondly, Gordon states that Warriors have the highest AC than any other class. If anyone has ever seen a screenshot of a Monk at level 50 before Kunark, you might have noticed their AC is above 1000, where as before, Warriors could not even touch 1000. As for hit points, a Monk typically has 66% of the hit points a Warrior does. Add in Mend and at any given 6 minute interval, a Monk can have up to 83% of a Warrior's hit points. In other words, Monks have higher AC, 83% of the hit points, and do more damage than a Warrior. Sounds balanced to me!

Thirdly, Gordon states that "Only if they don't have healer support. If they do, which they always should ...". Does Gordon blindly expect every player of EverQuest to not only know this of the Warrior class the moment they begin play, but that even those who accept this can only live a life with a dedicated partner? Gordon has effectively stated that Warriors have no existence without a healer.

Gordon has always said that versatility must be balanced with group usefulness. Offensive power, defensive power, solo'ing ability, all must be considered. Consider this, Monks have higher AC's than Warriors for the great majority of the game (at least until level 50), effectively have 83% of the hit points of a Warrior, do well over 125% of the damage of an equal appropriately equipped Warrior, and have numerous group useful abilities (i.e. Feign pull, self heal, etc.). Sound balanced?
As a 54 Warrior I see the ONLY place that warriors are "powerful" is in groups, and while we are better than other classes in that aspect we are NO WHERE near as balanced in the solo/small group aspects that make the "balance" of Versatility playable.

This is as intended. Warriors weren't designed for solo play, so weren't "balanced" in that respect. A warrior is always expected to be in a group of some kind.

(please read outside of the bold text, i bolded things kind of randomly)

These points underline the factt hat monks should b able to solo better than warriors (got mend & high defense). Interesting read.

Rogean
11-17-2009, 12:55 AM
chancetohit -= ((float)defender->GetAGI() * RuleR(Combat, AgiHitFactor));

Agility does affect it, albeit very small (3% at max agility).

Dolalin
11-17-2009, 01:06 AM
Pretty sure they're using the stock EQEmu code for combat. Go grab the source and take a look.

stormlord
11-17-2009, 01:12 AM
Agility does affect it, albeit very small (3% at max agility).

In EQ, most things are small. When you add them all up, it becomes big.

Winning a fight is not just about agi or one stat or even defense or offense. There're other factors too. Interesting.

Zarniwooop
11-17-2009, 06:36 AM
I have offered to help get this done. I'm a professional programmer and can provide credentials. I'm not John Carmack (or even remotely close), but I'm no slouch. Anyways, PM sent to Nilbog.

All it would take would be agreement on how the numbers are supposed to work.

I am very fluent in C++ and have professional game coding experience (3 major shipped titles). Any scripting language can be worked with, reference book in hand and a week's worth of practice outside of the engine.

I would understand if they don't want other people barging into their carefully maintained code base. God knows I understand and respect that. But, the melee problem has to be fixed or they may as well scrap it and start over when they can get a fix on the melee problem. Or just accept that the server will be very unbalanced and that people will give up over the issue. This server needs to grow not shrink.

I love the server and I am having fun. But, the frustration is mounting. I doubt I'll give up, but if it's still there a month from now, it's quite possible I would make a caster like everyone else or take a break until I read that it's fixed.

FatMagic
11-17-2009, 09:14 AM
As for the beta 4 cds I'm unfamiliar with them or eq beta however would it be easy to pull the info from them? Can you even play it without needing to log in? That could be valuable.


Yah it's a single CD... it was the final Beta before launch. And they had to physically mail you the CD because it was too large to download (most of us were on dial-up and they knew this).

If anyone wants the Beta 4 CD image, I'll dig it up and ISO it. Hoping it might be useful for figuring out the formulas. Is there a tool that would let you dig into the code and see the original combat formulas?

Dolalin
11-17-2009, 10:14 AM
Guys the Beta CD isn't gonna help anything. The code we'd be interested in would have been on the -server- at that time. The client has nothing that isn't already known...

Bahleted
11-17-2009, 04:31 PM
Its frustrating to see that devs aren't even aknowleding this post. It seems almost blatently ignored. The server community is trying to come to a resolve with the known issue.

A post like this has been around only for a couple of days but a newer post like moyong gets all the attention from devs? Are they completely ignoring the issue? Is this their attitude toward the fix?

nilbog
11-17-2009, 05:05 PM
Its frustrating to see that devs aren't even aknowleding this post. It seems almost blatently ignored. The server community is trying to come to a resolve with the known issue.

A post like this has been around only for a couple of days but a newer post like moyong gets all the attention from devs? Are they completely ignoring the issue? Is this their attitude toward the fix?

I am completely willing to answer every little post like this on the forums, if that's how you want me to dedicate my time. Just because we read them, doesn't mean we have something to satiate everyone.

Asking for GM responses in multiple threads about the same topic isn't the GMs ignoring the issue.

My answer is the same as it was in this thread, page 4. http://www.project1999.org/forums/showthread.php?t=382&page=4

I hope people can eventually come to good decisions themselves, without calling out the GMs, and have their peers help them with their frustration. I actively asked for help with the server for a year straight, and that's what you're playing now.

If you point out GMs, they come and defend themselves.. such is the case here. If you want to continue summoning us, it will keep happening, and nothing is gonna get fixed. Keep that in mind :(

Pimp1
11-17-2009, 05:08 PM
Look what u did Bahleted!!.. now stfu and go back in your hole

Wenai
11-17-2009, 05:15 PM
Its frustrating to see that devs aren't even aknowleding this post. It seems almost blatently ignored. The server community is trying to come to a resolve with the known issue.

A post like this has been around only for a couple of days but a newer post like moyong gets all the attention from devs? Are they completely ignoring the issue? Is this their attitude toward the fix?
I am not sure how many times we can say this. There is a limited amount of people on the team that can help fix this issue at this time. In fact Ladoth is our go-to-guy. He is too busy to help us out, and that is fine. He has done countless fixes for this server that we couldn't do on our own. Everyone does this in our free time and it is a hobby for us.

Give us a break and quit acting like we are ignoring that the issue exists. We aren't. We read your concerns and we understand your concerns. The problem is that most of the development team has no way of fixing this. It is frustrating to be constantly called out as if we don't care or as if we are ignoring the issue. You are wrong.

What do you want me to do? I can't fix it. You can't fix it. I know I read that one guy here has offered to help out and has sent Nilbog a message. Who knows, maybe it will go somewhere, maybe it won't. Nilbog gets countless messages every day about everything. Whenever we discipline anyone or ask them to stop doing something, they run to Nilbog. He doesn't have a whole lot of time to do a lot of anything when every minute is spent dealing with stupid things.

Accusations like this just make things a hell of a lot more difficult.

girth
11-17-2009, 05:18 PM
More difficult than it is to play melee at the moment? Sorry I had to. Don't reply, i'm just being a jerk. Keep up the good work GMs.

eqravenprince
11-17-2009, 05:26 PM
A lot of people play EQ because it's challenging. Just look at playing a melee currently as an extra perk! They are still valuable in groups I think.

Bahleted
11-17-2009, 05:26 PM
I'm going to ignore what you said about the every little post deal.

We are all trying to be constructive here and not trying to step on toes at the same time we are requesting info from you guys as a basis to help get it fixed. Imo I wouldn't bother defending yourselves to posts like the mm post its a waste of time. It seems ppl who have negative things to say already have their minds made up about how they feel or think.

This is a producted post that has gotten people willing to help with things. It was just a little disheartening seeing u guys on nonsense posts and not on one that's trying to take the matters in a constructive direction.

Your link isn't the an answer to the questions we asked we need to know info and boundries from you.

Now that I've successfully gotten your attention care to give us that direction?

Sorry as uve figured out by now that post wasn't to cause trouble yet to grab your attention.

;) SMRT

stormlord
11-17-2009, 11:13 PM
A lot of people play EQ because it's challenging. Just look at playing a melee currently as an extra perk! They are still valuable in groups I think.

That's how I feel about it. A perk. I do think the mobs have a high hit rate, but overall I'm ok with how hard they hit me. I do not get hit for max damage everythime, and i'm playing a monk. I dodge too. But, again, I think the hit rate could be decreased slightly, but the rest of it seems to work fine so far. It's a good sign when I"m killing stuff and wishing I had a healer with me - that's classic eq.

But "They are still valuable in groups I thijnk," that's not good enough! We need to know.

And don't reply to my post saying i'm a troll or that I'm just throwing around accusations. Gaw! You have to understand, I logged into project1999 expecting dodge not to work, thought i'd get hit max damage 90% of the time, thought I wouldn't see any misses, thought I'd get beat into the ground, based on what i've seen in this forum. And it worked fine for me. So I come here and I explain that it has worked fine so far. I'm sorry that I am not "displeased" enough to meet your standards.

So after saying that, again, (and i mean that) the hit rate could be decreased a bit in response to your defense skill. Getting hit 90% of the time even by a level 1 seems kind of silly, but then again, it's still dark blue and maybe that's the wya it has always been (not trying to make everyone mad, but my monk was killing blues/evens/yellows too). We all need to make parses of this server so we can truly see whether upgrading our armor means, on average, that we get hit for less damage (over longterm). If I'm getting hit at the same rate by that same mob when I'm several levels higher then I think I could complain about that - you'd think that a mob could hit 0 - 2 rather than 1 - 2 at some point, eh???? Then again, each level brings me more hitpoints so those 1-2 dmg hits get smaller and smaller - same effect.

Maybe in response to decreasing the hit rate in response to increased defense skill, you could decrease the rate of skill gain - which is already fairly high. My int is 80 or something and I'm raising fast. This is just a suggestion. IF I was a coder on the project, I wouldn't do anything without triple checking it and ensuring accuracy. Since I"m an outsider, I can afford to say/do stupid things :)

I know c++/vc++ too. I know it pretty good. I don't know perl. I'm not interested in helping though, I just wanna play. Besides, everyone would be saying, "Burn stormlord! He caused all this! He's a witch! He hasn't changed! Burn him! He's a liar and a deceiver! He can't be trusted!" I think that any coder should be able to browse the combat routines and make some kind of judgement about it. That other guy came to one of these threads and said that agi has a 3% effect on defense (something like that). If he can go and find that out, he/she should be able to find out about the rest of what contributes to hit rate or damage mitigation.

messiah_b
11-18-2009, 12:04 AM
And don't reply to my post saying i'm a troll or that I'm just throwing around accusations...

People think you are a troll because you have been posting on the systems and bugs for a week and finally logged in for the first time yesterday.

Mowgli
11-18-2009, 07:00 AM
Been playing Project 1999 for almost a week now and had yet to post but after browsing through this thread a bit I figured it was about time. I just wanted to say I am extremely appreciative of the time invested by the development team to make the server a reality. I could be playing Modern Warfare 2, Borderlands, Dragon Age Origins or any of the other amazing games that have been released in the last month; but no... I'd rather play a game a decade old and I have you guys to thank for it. It may seem a bit out of place to say thanks in this thread but I felt that from an outside perspective it seemed that all everyone does is request more (or complain depending on how ya look at it). I know everyone has the best of intentions I just wanted to chime in and say thanks for all the hard work and to keep it up! I'm sure this will get fixed as soon as time allows.

PS: I play a pally and this affects me; so no, I'm not a mage or any other caster who's sittin pretty right now :p

Swank
11-19-2009, 02:42 PM
It's funny you mentioned MW2 and Dragon Age, cause they've actually helped me break my addiction to this server, and my masochistic melee ways :)

In all seriousness I appreciate all the dev's work, and will keep lurking here till I here some new news on this subject.

Haynar
11-19-2009, 09:55 PM
I have been looking at the AC interval tables for mitigation. The tables do not seem all that unreasonable. I tweaked on a few things, and found it takes very few changes to make huge swings in the effect of AC at different levels.

I am looking into the mitigation range, as that looks like where some changes could be made. I have to do some calculations and see how best to make changes and run a few more parses after. This really only covers melee mitigation what I have been testing. If there are issues with avoidance, the first place I would check are in the rules set for the server. The melee attack rate was increased previously on the server. My big question was how this was done, so I can see if this affected other things.

It looks like the easy answer to increase melee hit rates is to increase Combat:BaseHitChance. The default setting is 69. The NPC's get Combat:NPCBonusHitChance at 26. 69 + 26 = 95, so I assume that is why they normally have a 95% chance of hitting. I havent tested results of raising one, without properly offsetting other, but I imaging it will make avoidance be a rare occurance. So this needs looked at more.

I will do some tweaks on the rates of mitigation, with how changes to the interval tables for AC and post what I find when I get finished. I do not imagine any major tweaks are necessary here, but I want to see if the interval is a fixed differential or if it varies with level. But that is where I am currently investigating mitigation.

Will post more as I figure more out.

Haynar

stormlord
11-20-2009, 12:45 AM
I have been looking at the AC interval tables for mitigation. The tables do not seem all that unreasonable. I tweaked on a few things, and found it takes very few changes to make huge swings in the effect of AC at different levels.

I am looking into the mitigation range, as that looks like where some changes could be made. I have to do some calculations and see how best to make changes and run a few more parses after. This really only covers melee mitigation what I have been testing. If there are issues with avoidance, the first place I would check are in the rules set for the server. The melee attack rate was increased previously on the server. My big question was how this was done, so I can see if this affected other things.

It looks like the easy answer to increase melee hit rates is to increase Combat:BaseHitChance. The default setting is 69. The NPC's get Combat:NPCBonusHitChance at 26. 69 + 26 = 95, so I assume that is why they normally have a 95% chance of hitting. I havent tested results of raising one, without properly offsetting other, but I imaging it will make avoidance be a rare occurance. So this needs looked at more.

I will do some tweaks on the rates of mitigation, with how changes to the interval tables for AC and post what I find when I get finished. I do not imagine any major tweaks are necessary here, but I want to see if the interval is a fixed differential or if it varies with level. But that is where I am currently investigating mitigation.

Will post more as I figure more out.

Haynar

Grats for looking into it. Only issue I see so far is I get hit a lot, but the other day I noticed my level 5/6 alts were getting hit less than normal by the level 1's. For example, one of them missed 3 times in a row.

I don't think the lower levels should be changed too much. I like the toughness of everything so far. If it was any easier, it would be too much like live where everyone has this mindset where they gotta be max level. I hate that attitude so much. They'll never be happy.

For example... my warrior and monk are killing dark blues, evens and yellows. I'd say that the evens are doable at level 6 for the monk, but hard. The yellows are getting too difficult for the monk to kill. However, I haven't upgraded his armor, yet. I see a lot of people who don't even have armor at level 6 (one guy just had a couple peices of cloth armor). The warrior can kill evens at level 4 without too much trouble. His benefit is he has a lot of hitpoints and can wield 2 handers.

Ofcourse, when I go into groups we're routinely killing evens/yellows/reds. Keep that in mind! It would be weird/wrong to be killing all reds in a group. I know some peple may disagree with me on this, but it just wouldn't seem right to me.

sever
11-20-2009, 12:51 AM
The NPC's get Combat:NPCBonusHitChance at 26. 69 + 26 = 95

I can relate to this directly, as it's just about right around the npc level area my 50 gets owned vs. doing the owning. Avoidance seems to be like 1% per skill - dodge/riposte/whatever - even vs. level 1's at 50; they just miss me plenty.

Haynar
11-20-2009, 02:32 AM
I have some new equations for the mitigation to test, plus a few other little tweaks to them to be more like I remember live. I will run a few tests on my little server here at home tomorrow, and post some possible mitigation solutions tomorrow. I left the interval values for AC alone, but changed the slopes of the mitigation vs AC basically.

Haynar

Skeletonya
11-20-2009, 05:16 AM
http://www.gucomics.com/comics/2000/gu_20000822.jpg

Haynar
11-20-2009, 10:36 AM
Here are the changes I made to attack.cpp

I changed the combat rating slightly, lowering just a tad.

Changed the scaling on d1_chance and d2_d19_chance.

I added a d20_chance which basically says any mob can hit for max, 5% of time, no matter how high your AC.

It scales pretty well I think.

Hope this helps in coming up with a solution for melee.

Haynar

void Mob::MeleeMitigation(Mob *attacker, sint32 &damage, sint32 minhit)
{
if(damage <= 0)
return;

Mob* defender = this;
int totalMit = 0;

switch(GetAA(aaCombatStability)){
case 1:
totalMit += 2;
break;
case 2:
totalMit += 5;
break;
case 3:
totalMit += 10;
break;
}

totalMit += GetAA(aaPhysicalEnhancement)*2;
totalMit += GetAA(aaInnateDefense);
totalMit += GetAA(aaDefensiveInstincts)*0.5;

if(RuleB(Combat, UseIntervalAC)){
//AC Mitigation
sint32 attackRating = 0;
uint16 ac_eq100 = 125;
if(defender->GetLevel() < 20)
{
ac_eq100 += 15 * defender->GetLevel();
}
else if(defender->GetLevel() < 50)
{
ac_eq100 += (285 + ((defender->GetLevel()-19)*30));
}
else if(defender->GetLevel() < 60)
{
ac_eq100 += (1185 + ((defender->GetLevel()-49)*60));
}
else if(defender->GetLevel() < 70)
{
ac_eq100 += (1785 + ((defender->GetLevel()-59)*90));
}
else
{
ac_eq100 += (2325 + ((defender->GetLevel()-69)*125));
}

attackRating = 10 + attacker->GetATK();

sint32 defenseRating = defender->GetAC();
defenseRating += 125;
defenseRating += (totalMit * defenseRating / 100);

double d1_chance;
double d2_d19_chance;
double d20_chance;

double combat_rating = (defenseRating - attackRating);

combat_rating = 100 * combat_rating / (double)ac_eq100;
combat_rating -= 20;

d1_chance = ((combat_rating) * 0.3);
d2_d19_chance = 48.0 + ((combat_rating) * 0.42);

if(d1_chance < 1.0)
d1_chance = 1.0;

if(d2_d19_chance < 4.0)
d2_d19_chance = 4.0;

d20_chance = d1_chance + d2_d19_chance;

if (d20_chance > 95.0)
d20_chance = 95.0;

double roll = MakeRandomFloat(0, 100);

int interval_used = 0;
if(roll <= d1_chance)
{
interval_used = 1;
}
else if(roll <= (d20_chance))
{
interval_used = 1 + (int)((((roll-d1_chance) / d2_d19_chance) * 18) + 1);
}
else
{
interval_used = 20;
}

//PS: this looks WRONG but there's a method to the madness
int db = minhit;
double di = ((double)(damage-minhit)/19);
damage = db + (di * (interval_used - 1));
}
else{
////////////////////////////////////////////////////////
// Scorpious2k: Include AC in the calculation
// use serverop variables to set values
int myac = GetAC();
if (damage > 0 && myac > 0) {
int acfail=1000;
char tmp[10];

if (database.GetVariable("ACfail", tmp, 9)) {
acfail = (int) (atof(tmp) * 100);
if (acfail>100) acfail=100;
}

if (acfail<=0 || rand()%101>acfail) {
float acreduction=1;
int acrandom=300;
if (database.GetVariable("ACreduction", tmp, 9))
{
acreduction=atof(tmp);
if (acreduction>100) acreduction=100;
}

if (database.GetVariable("ACrandom", tmp, 9))
{
acrandom = (int) ((atof(tmp)+1) * 100);
if (acrandom>10100) acrandom=10100;
}

if (acreduction>0) {
damage -= (int) (GetAC() * acreduction/100.0f);
}
if (acrandom>0) {
damage -= (myac * MakeRandomInt(0, acrandom) / 10000);
}
if (damage<1) damage=1;
mlog(COMBAT__DAMAGE, "AC Damage Reduction: fail chance %d%%. Failed. Reduction %.3f%%, random %d. Resulting damage %d.", acfail, acreduction, acrandom, damage);
} else {
mlog(COMBAT__DAMAGE, "AC Damage Reduction: fail chance %d%%. Did not fail.", acfail);
}
}

damage -= (totalMit * damage / 100);

if(damage != 0 && damage < minhit)
damage = minhit;
}


//reduce the damage from shielding item and aa based on the min dmg
//spells offer pure mitigation
damage -= (minhit * defender->itembonuses.MeleeMitigation / 100);
damage -= (damage * defender->spellbonuses.MeleeMitigation / 100);

if(damage < 0)
damage = 0;

mlog(COMBAT__DAMAGE, "Applied %d percent mitigation, remaining damage %d", totalMit, damage);
}

Enig
11-20-2009, 11:57 AM
Thanks Haynar, keep fighting the good fight :)

Wildir
11-20-2009, 12:08 PM
thanks for the work, I am not melee class atm, but as a cleric, I can appreciate the concern, and hope this gets "tweeked".
I think productive posts like this is what is needed, the whining needs to stop and lets find a solution to help.
I love this game, and am having fun again playing MMO, so keep up the good work!
Wildir

Aeolwind
11-20-2009, 12:54 PM
Nice code Haynar, going to submit it to KLS and see what she thinks about it. If not ready for prime time Emu as a rule value but would work for us we'll get it implemented here exclusively.

Tollen
11-20-2009, 12:58 PM
Nice code Haynar, going to submit it to KLS and see what she thinks about it. If not ready for prime time Emu as a rule value but would work for us we'll get it implemented here exclusively.

YAY! keep us updated Aeolwind.

Last night I spend 5 hours LFG, I don't mind cause I still did some stuff but if I can solo some LB/DB mobs in that time I'm LFG for that long it would make the grind that much less mind numbing.

messiah_b
11-20-2009, 01:08 PM
That's really awesome thanks to Haynar and Aeol for forwarding it on.

I really hope it is a very tiny adjustment. I also don't want to see melee turning into zol knights overnight.

Aeolwind
11-20-2009, 01:10 PM
Keep in mind, it will be going to the test server first, I'll notify in a separate thread when it does so people can go test. And with all the people complaining, I better see at least 20 people over there! I'll see about getting Nilbog to do a character transfer from live to test as well.

Mowgli
11-20-2009, 01:19 PM
Thanks Haynar! Count me in for testing

Haynar
11-20-2009, 01:25 PM
I have a little time to play with programming today I think.

Do you want me to look at pet dual wielding too? What level of pet to start this check?

I am not the fastest with this code, so takes me a bit of time to figure out.

The mitigation was a pain, because I was putting values in spreadsheets, and fitting curves, blah no fun.

Haynar

Tollen
11-20-2009, 01:33 PM
Keep in mind, it will be going to the test server first, I'll notify in a separate thread when it does so people can go test. And with all the people complaining, I better see at least 20 people over there! I'll see about getting Nilbog to do a character transfer from live to test as well.

which server is the test server? I see a 3rd server in the gold section but its LOCKED... I'll do a test for the bard community. Played bards on Live and most recently on Mac server (very close to classic)

Takshaka
11-20-2009, 02:05 PM
Keep in mind, it will be going to the test server first, I'll notify in a separate thread when it does so people can go test. And with all the people complaining, I better see at least 20 people over there! I'll see about getting Nilbog to do a character transfer from live to test as well.

We have a test server? What is it. I didn't notice one in the server list. I play a magician, so I dont really have intimate knowledge of the melee problems and therefore would likely be unable to provide any insight as to whether or not the changes are working, but it is nice to know what the test server is in case there is anything I can help with in testing.

Aeolwind
11-20-2009, 02:07 PM
I just added a sticky.

Tenudil
11-20-2009, 03:21 PM
Sorry for the poor grammar and wall of text in advance.

Aeolwind could we get a copy of the current Attack.cpp file the server is using to look at that changes made to increase player hit rate to see if they affect NPC hitrates in anyway. The real problem will lie with NPC hit rates now, if this mitigation code is implemented.

From my limited ability to decipher the code, if its the same as stock, just changing the NPCBonusHitChance to a single digit value or even zero would change the hit rates to values a lot closer to what i remember from live. A multiplier for the level check of the defender might be in order here to keep mob hit rates vs casters, leather, and chain classes at a higher level then tanks. I have no experience with how often a non plate class should actually should get hit though. Maybe something close to the ratio of the defense caps of each class. So for a caster class which i *think* caps at 150 or so an effectve level of ((150/210)*players level).

One odd thing i do see is that you seem punished by leveling on the mitigation side of the code. This isn't too bad as long as you are getting increases to your AC each level. However, Defense caps at lvl 42 for tanks and after that level the only AC increases you get are entirely from gear. Also being classic, you are generally leveling on the same mobs from lvl 40ish to lvl 50 so you are likey to start getting hit for full damage by the same mobs more often as you level, which from my personal and anecdotal experience doesn't sound correct. I would guess a tank might have 750-775 ac at lvl 40 and top out from planar gear at somewhere between 850ac and 900ac at 50.

This will probably be balanced out somewhat or entirely by the actual chance of being hit going down more at lvls 42-50 though. However, on live from my experience and reading stories about people deleveling themselves, the chance to be hit seems to be based mostly or entirely on the Defense skill of the person being attacked and not the characters level. This would suggest that from 42 to 50 there was likely little or no change in a mobs chance to hit a tank. But, again you were generally leveling on the same high 30's and low 40's mobs so the chance to be hit didn't go up in most non raid situations.

Thank you Haynar, Aeolwind, and all the other Dev's out there. A bandaid fix that gets the game playable now is much better then waiting much longer to get it perfect the first time.

Haynar
11-20-2009, 03:47 PM
It looks like to me that melee hit rates were raised by increasing Combat:BaseHitChance.

The only way I can reproduce the kind of avoidance we are seeing, was by not lowering the NPCBonusHitChance, so that the sum is not greater than 95.

I did confirm in the code that both NPCs and PCs use BaseHitChance. The NPCBonusHitChance is only applied when mobs hit players. So if they sum higher, then you have to have a lot of avoidance for a mob to even start to miss you.

I really was not trying to make the mitigation tables be "Classic" specific.

Haynar

Dopp
11-21-2009, 09:58 PM
Hey guys, i noticed a lot of great hard work going into this, and I'd love to help out make things better. Although I know a lot has changed from EQ classic to PoP era... I play on the EQmac server and have played in one of the progression guilds there, and currently maintain an Everquest Classic playstyle.

I have all classic gear lvl 50 ogre warrior that can be used for data gathering, parsing, etc. on that server IF those values can be used to develop a better system here. I BELIEVE that the game play is VERY similar to the way it was in classic, the difficulty for a warrior (or any class) is very high and challenging.

Reading here I'm assuming that the information from the EQmac server can aid in getting closer to what everyone wants. I noticed Tollen is here (hey Tollen!) and although I won't be able to join this server or really play any everquest until mid Dec. I'm willing to donate my character if Tollen, or any recognizable Eqmac player if they are willing to put in the work!

Oh, and Hi! I'm Dopp 65 cleric former applicant of Temerity and my progression player is Gubb 50 warrior former member of Dead Halfling Society and Vintage. And I'm seriously ecstatic to join in on this server!

Also, I have access to my girlfriend's lvl 50 wizard as well if any of the information from clothies can help too.