PDA

View Full Version : Discussion on Damage Bonus, Rules, and the direction of the Emulator


trevius
09-22-2008, 05:10 PM
This whole thread is actually from the following thread originally:

http://www.eqemulator.net/forums/showthread.php?t=26262

I moved it all here because it was getting way off-topic and was overly long. Discussions like this should be started in the general section, not in someone's code submission. You would need to read the post linked above to understand where these posts come in.


Cavedude,

Once you get the code added to PEQ, would you mind posting exactly where and how you added the Calculate2HDamageBonus function? I still have no clue and I just need someone to say "paste this exact code into this file" :P


Chaos,

Turning off weapon damage bonus isn't really something that is needed IMO. Sure, a rule could be put in place for it, but I would personally rather see rules for hit rate multipliers, damage multipliers, etc.

Damage bonus is something that has been on live for a long time and turning it off is like turning off Strength or AC or any other stat that is standard. If you really had to have an option to turn it off, I am sure someone could post the required code so you could add it in yourself. But IMO, the rules are already starting to get to be quite a large list. We could have rules for every little thing, but not everything needs them, really.

I think that you are not understanding that the code will still calculate a scaling damage bonus even for post level 80. So, it will still scale up probably to infinite levels I guess. They are just saying that it might not be as accurate to live after level 80, but it will still scale up to simulate what their best guess is that the live equations post level 80 would be.

I think you are thinking that a level 80 with the same weapon as a level 100 would both have the same damage bonus. If that was the case, then ya, you might want to turn it off to keep your weapon damage from scaling up in a weird way. But, since they still do scale up after level 80, you won't see any kind of weirdness. As far as you and your players are concerned, you probably wouldn't even be able to notice that they didn't have the post 80 numbers in there. If they didn't mention it, you would never have been able to tell unless live went past level 80 and you were comparing bonuses and they didn't match perfectly with your server.

As far as trying to simulate live goes, it is just something that the emulator has focused on since it was created. Sure, we do get additional features that live doesn't have, but the idea is to have the core settings and calculations to simulate live as closely as possible. If they wanted to make a whole new game, then they would just make everything up from scratch, but that isn't the goal of the dev team. That goal isn't going to change. I think the main thing to keep in mind is that even though they are working to simulate live, we also try to give as many options as possible so custom servers can do anything they want as well. I think having the options to deviate from live is one of the cool features of the emulator. But in the case of removing damage bonuses completely with a rule, even I don't think that is a very useful option. Once you see how it works, I don't think you will even care to have the rule option anymore. If you do still have a problem with it, I am sure a rule can be added at any time.

Andrew80k
09-22-2008, 05:18 PM
I think what Chaos is trying to say is that he would prefer to use damage/delay alone to calculate the damage. I understand this and agree. If a rule can be put into place then that would be great for folks like Chaos that would prefer to create or adjust the weapons based primarily on the weapons stats and not have to figure in some esoteric damage modifier. Makes sense to me. And it also gives a server op more options, huh, Trev.

ChaosSlayer
09-22-2008, 05:36 PM
Andrew80k hit it right on the head =)

You see Trev, the devs who continusly trying to mimic Live to the best of their ability continusly forcing on themselves how SOE DID IT with no regard if SOE actualy did it RIGHT (If I honestly thought that SOE did ANYTHING right beyond the graphical engine, I would still be playign EQ1/Eq2, which is not the case )

SOE created dmg bonus for 2 things:

-give melees inherited bonus compared to non melee for same skills/weapons/stats
-fix ever screwed up 2handers falling behind 1handers

As Andrew80k pointed out - some of us simply do not want first apply SOE screw up, and then apply soe make-shift fix to a problem which does not have to exist in a first place. In 99 SOE created a game which so horibly unplayable solo, than over next 9 years they kept making it easier and easier until they arived at a point where they should have started at to begin with (and players such as myself were teling them it since day 1)

Aagain as well pointed out by Andrew80k , Its MUCH easier to balance/make custom weaposn using vanila dmg/dly than try to ALWAYS keep in mind whats the dmg bonus formula going to be for any given level X

ANother thign to keep in mind that on original EQ past lev 55 difuclty, mobs hp, and weapons dmg skyrockets up to x10 times, and keeps skyrocketing everytime they increase the level by 5, but it dificulty fills like another 50.
For server with more casual gameplay which is not obsessed with 72+ man raid to kill anything, a SMOOTHER progression is prefered.
WHich means level 65 mob does not have qudruple dps over lev 60 mob, but mayby only +10%.
Same thing goes for weapons and dmg bonus - its simply not needed and makes things far more confusing when trying to tune things up.

PS. Performance wise - if Rule check is placed BEFORE dmg bonus is calculated- I just saved myself some CPU work 8-)

renoofturks1
09-22-2008, 06:09 PM
You make it sound as if damage bonus is some huge deciding factor in how a weapon parses. It merely add's a set number to the final damage dealt. A weapon with a damage bonus of 13, can only hit for a minimum of 14. 1 plus the bonus. A 2 hander with a damage bonus of 42 can hit for a minimum of 43. So on and so forth. If you really wanted to turn it off, it's as simple as removing it from the code and recompiling it.

I have never tried to implement a rule, I will look into it if it is a function you would be interested in.

Cantus
09-22-2008, 07:19 PM
This system, using the look-up table's, attains exactly that, post 80, it just stops going up, it doesn't decrease, it merely stays constant from 80+

Reno is almost exactly right. There is one small exception. Any 2H weapons with a delay of 27 or below will have their damage bonus continue to increase for levels 81+.

That's because 2H weapons with delays of 27 and below are the only ones where Sony used a simple formula that has not changed as new expansions are released. It's probably safe to assume that future expansions will not change it, either.

But, it's not entirely fair... as toons on EQEmus with a level cap above 80 will see the DPS of their fast 2H weapons (delays 27 and below, though these are fairly rare) increase as they level past 80, but the DPS of slower 2H weapons will stop increasing once they hit 81.

That's not ideal, so I'm sure Reno and I can put in place a set of formulas that approximate our best guess about what damage bonuses will look like post-81. That's really the only solution right now, as we can't know (without breaking out the old Ouija board or hiring a fortune teller) what formula modifications (if any) Sony will use when they increase the level cap again.




The only thing I could ask if you would add Rule: Damage Bonus on/off - so we can have an option to play with DPS only governed by natural weapon stats.

That's an excellent suggestion, Chaos. I doubt it'll be used much, but I'll include a preprocessor directive that lets you turn on or off damage bonuses when compiling the solution. Of course, they'll be on by default!

I'll include it when I get home from work tonight, and provide instructions on how to turn it on and off.

Also, Romai just finished verifying the damage bonus numbers for levels 66-80, so if there are any slight inaccuracies in the function, I'll fix them tonight!

Cantus
09-22-2008, 07:24 PM
I have never had a toon over 65 on EQEmu, Does the weapon show the damage bonus as continuing to scale beyond level 80? If so, all the information we would need to extend it into the higher levels is right in front of us.

Like Reno, I've never played on an emulated server with a cap above 80. But I'll bet that damage bonuses, as displayed when you right-click on a weapon, do continue to increase.

However, this is no guarantee that the formula currently in the Titanium client is the same formula Sony will use next time they increase the level cap.

Keep in mind that there's no way to level past 80 on Live, so there's no way for players to see what damage bonuses will be at higher levels. Therefore, if Sony wants to change the formula (like they did when PoP was released, for example), the just release a patch to the client that changes the way it calculates and displays bonuses for levels 81 and above when the next expansion is released.

So, we'll base level 81+ damage bonuses on the formulas we currently know about. If Sony throws us a curve ball with the next increase in cap, we'll shift things around then ;-).

ChaosSlayer
09-23-2008, 11:45 AM
well I can't coment on performance potential atm, but esentialy the performance difirence bewten runign the DMGB part or part shoudl be same since its will either:

check if rule is False and skip the code
OR
Run the code

somehow it feels that skiping the code should save you more CPU time than runing it.

another important note of havign Trev's type Rule is ability to turn on and off on the FLY - even for purposes of testing actual effects of diffirence of DMGB, wihout having to recompile the code.

ANother thing, if you let me add, I would sugest puting in place yet another , 3rd option - a separate system where DMGB is calculated by linear formula which will stay true from 1 to 255 ONLY basing the values of weapons DLY and players levels rather than on table with values aquired from LIVE, along with modifier (again in Rules) which would set how strong/fast the bonus value builds up.

And making it a DMGB Rule with 3 difirent options: LIVE-like, None, and linear Admin controleld scale.

Alternativly the 3rd option could be set to 0 efectivly turning the DMBG OFF.
This would be PERFECT for any custom server to tune up pace of progression.

PS. NEVER hard code anything 8)

renoofturks1
09-23-2008, 12:34 PM
check if rule is False and skip the code
OR
Run the code

somehow it feels that skiping the code should save you more CPU time than runing it.


Why I do not disagree, skipping the function would speed things up. What about when it is not skipped? I may be mistaken, but doesn't that involve a call to MySQL to get the rule? Or does it store them somewhere else at start-up? So, every time someone make's a hit, it calls MySQL, checks the rule, then parses the DMGB code? Correct me if i am wrong?

ChaosSlayer
09-24-2008, 12:45 PM
regarding the implementation.

I havent looked ta actual code but in order to minimize extra calculation in mind it would look like this:

You store ALL values in a table which is accessed by parameters of Level and Dly

When weapon strike you simly add X(a,b) to the final damage, where X(a,b) points the table with pre-calculated values

As far no DMGB Rule goes - you simply fill the table with ZEROES and every time X is retrived its retrives a 0 =)


NOW to make this even MORE custom, we should make yet ANOTHEr small Rule which would describe a FORMULA for linear DMGb growth, and then when server loads the table will be filled with values based on the formula specified by server admin in Rules

hows that? =)

renoofturks1
09-24-2008, 01:21 PM
Another RULE? I see no need for multiple rules.

ChaosSlayer
09-24-2008, 01:24 PM
Another RULE? I see no need for multiple rules.

1 rule gives LIVE-like effect
1 rule turn effect off
1 rule- alows you create per server custom effect on the fly :-D

all this can be incorporated into a single rule of course which you simply set to 0,1 or 2, or whatever =)

trevius
09-24-2008, 06:55 PM
There really isn't much of a need for a rule for adjusting damage bonuses. I think a much better solution for custom servers would be a rule for adjusting the main damage multipliers. So you would increase or decrease normal damage instead of messing with damage bonuses. This is something that I think KLS has already considered adding at some point.

Also, along with that rule it would be nice to have an additional one for adjusting how often hits land for PCs and/or NPCs. Both of these would just add an additional multiplier to the equations that calculate them. Then if the rules are set to 100, it would mean no adjustment, 50 would be half and 200 would be double, etc.

Whether those rules get added or not isn't really related to this thread though and should probably be discussed elsewhere IMO. I am pretty sure there is already a thread somewhere talking about them.

Actually, while thinking about these 2 rules, it made me think of a cool new idea for a quest command. Maybe additionally to these rules, a quest command could be made that would adjust the entire zone damage and hit rates on the fly for all NPCs in it. Then, you could make zones that automatically scale in difficultly based on player level. Though, another rule to scale hps would probably help too :D

ChaosSlayer
09-24-2008, 07:33 PM
Also, along with that rule it would be nice to have an additional one for adjusting how often hits land for PCs and/or NPCs. Both of these would just add an additional multiplier to the equations that calculate them. Then if the rules are set to 100, it would mean no adjustment, 50 would be half and 200 would be double, etc.


YES!! I been asking for "TO HIT" modifier since last year 8-) . Technicly I have been asking for rule option where DEX would determien how often you score a hit AND a modifier to determine the ratio of how much DEX will be affectign that. Via such option such classes who inherently suck at to hit ratio (like paladins and Sk) can at least do something to improve via in game means- such as building up DEX, rather than to pop up to hit bonus for all classes

Along with that I was also asking for a rule and modifier where AGI will affect the dodge

I probably asking too much. but imho the combat engine would have been if it was writen to mimic eq2 model rather than eq1. cause in eq2 there is never too much stats since your ability to hit and to dodge directly compared to mobs level and mobs ability to hit and to dodge, and X dex and agi which is uber at say 51 will not be as efficient vs say lev 53 mob. This way there is ALWAYS room to improve your stats wihout hiting any sort of cap, since as you level up the worth of your previous stats continusly diminishes vs equal level mobs while making you much tougher vs lower level mobs

Cantus
09-25-2008, 06:42 PM
I havent looked ta actual code but in order to minimize extra calculation in mind it would look like this:

You store ALL values in a table which is accessed by parameters of Level and Dly

When weapon strike you simly add X(a,b) to the final damage, where X(a,b) points the table with pre-calculated values

Hi, Chaos!

What you're describing is a brute-force lookup table... just one that's built on-the-fly (which would, in all likelihood, be slower than a comprehensive, pre-built static lookup table.)

There are three options for calculating damage bonuses:


A brute-force table like what you describe
A pure-formula approach where damage bonuses are calculated mathematically
A hybrid approach where formulas are used in cases where they're simple and fast, and tables are used for all other situations


I tried all three possibilities, and the third option -- the hybrid approach -- is what provided the best performance.

That's what's implemented here in this thread. As I mentioned above, testing (that you can easily re-create) proves that this function is a very efficient and fast way of calculating these values, and that it will have an absolutely unnoticeable impact on server performance.

Please don't think I'm shooting down your idea! It's a great one! I'm just pointing out that it was considered, tested, and found to be not quite as efficient as the solution presented in this thread.

ChaosSlayer
09-25-2008, 06:49 PM
What you're describing is a brute-force lookup table... just one that's built on-the-fly (which would, in all likelihood, be slower than a comprehensive, pre-built static lookup table.)
.

Hiya!

I am not sure why you saying that this method is build on the fly
You create the table and populate it with values when server loads- and it NEVER changes - the values are very static.

You may very well put them directly into code. You simply pre-calc the values ONCE and then just add them to final dmg when/if needed

I am not arguing btw - I just not seeing the "complexity" in creating the table at server start up and keeping it static (just like you want it) until server shuts down 8-)

The bonus part of course is that BEFORE server loads you can populate the table with values based on ANY formula- again only once - and they stay static for whole duration

Cantus
09-25-2008, 07:18 PM
I probably asking too much. but imho the combat engine would have been if it was writen to mimic eq2 model rather than eq1.

Trevius and Chaos have some awesome ideas.

Maybe I'm just "corrupted" by happily playing for so long on PEQ The Grand Creation (a server that strives to be as legit and Live-like as possible), but I tend to think that the primary goal of the EQEmu engine should be to duplicate Live's way of doing things as much as possible... even if we occasionally think that Live's way of doing things isn't the best way!

But I absolutely agree with ChaosSlayer, and folks like him, that we shouldn't ignore the desires of folks who would have a blast playing on highly customized servers!


I know I’ve only recently started contributing and participating on these forums, so it may not be my place to voice my opinion. But I can’t help thinking that we shouldn't clog up the current combat functions with a lot of rule checks. As Derision pointed out, there's little overhead in each check... but adding a buttload of these checks, and the conditionals they're embedded in, may actually start making a difference in server speed (considering that these functions are invoked each time a melee hit is made... which is frequent!)

Also, it'd make the combat code fairly difficult to understand and maintain.


Here's a possibility: Make a copy of the combat code (for example, copy Attack.cpp and make CustomAttack.cpp). Add "Custom_" before the function names in these new files. And then have a single rule check where either the "Legit" or the "Custom" version of the attack functions are called for each hit.

For speed, we'd create a single static variable that’s a pointer to a function. We’d set it to point to either the “Legit” or the “Custom” attack functions based on a master rule read either at zone load-time, or when rules are manually re-loaded. Then when a hit occurs, we simply use the () operator on this variable to invoke the selected version!

If it points to the "Custom" functions, then a ton of other rules are queried to allow the custom server administrator quite a bit of control over how combat is carried out. If none of these rules are set, "Custom" will operate just like "Legit" (just a bit slower due to all of the rule checks sprinkled throughout it).

On the plus side, it allows the “Legit” code that will be used in most cases to remain lean and mean, so that it runs fast and is easily comprehended and maintained.

But it also gives custom versions of these functions that are extremely customizable by non-coders.

The downside is that any changes to attack handling in the “Legit” versions probably would have to be mirrored over to the “Custom” versions of the functions.

I’d suggest that the highest priority right now probably should be to make sure that the current functions work as well as possible, and are as close to Live as we can make them. Once that’s accomplished, we have the perfect opportunity to duplicate them and add all kinds of customizability!

Cantus
09-25-2008, 07:23 PM
I am not arguing btw - I just not seeing the "complexity" in creating the table at server start up and keeping it static

If you take a look at the code that's posted, you'll see many of these pre-calculated tables already included.

There'd be no reason to build the table at run-time, even if just when the server starts. Better to populate them at compile-time.

You could do a full, brute-force lookup table, but my point is that testing proves that the hybrid approach listed here is the most efficient implementation.

It works, it's fast, and it'll soon have (as requested) the ability to return damage bonuses for toons level 81+, and also an option for a custom, linear damage bonus progression.

ChaosSlayer
09-26-2008, 12:10 AM
Trevius and Chaos have some awesome ideas.

Maybe I'm just "corrupted" by happily playing for so long on PEQ The Grand Creation (a server that strives to be as legit and Live-like as possible), but I tend to think that the primary goal of the EQEmu engine should be to duplicate Live's way of doing things as much as possible... even if we occasionally think that Live's way of doing things isn't the best way!


well thats where I whole heartly disagree.
I don't see any point to blindly follow SOE footsteps. Over years SOE has altered so many things in the game - how can anything posibly qualify as "cannon" ? And SOE WILL keep changign things, and what you today belive is "live-like" tomorrow will not exist.

Why you insist not only mimicing EQ1 features, but its FLAWS?
And whats even worse- hard coding these flaws into server code. So it would be harder to undo them when one day SOE turns around and implement something what today Cavedude likes so much to call "not LIVE-like" - tomorrow will be "LIVE_like" and you guys will then need to recoded the whole server cuase SOE had a change of heart?

Don't find this.. umm ridiculus at best?

You code a server in such way so it can be tunned to support ANYTHING.

Not to mention a EVRY important part- why do all these people are here at Emu? Do all of them so poor they can't afford $15 a month for stable top of the line tech OFFICIAL server?
I very much doubt that- they here cuase they TIRED of eq1 "full time job" apparoach - they don't realy want LIVE-like things- they simply want to see what they never would on LIVE cuase of difculty of the game and move on.

Not even PEQ is LIVE-like, starting from the fact that it shoudl be imposible to solo anything, up to the poitn there is no freaken way on LIVE you can kill NTOV dragons in Velious gear with 20 people. Yeah I know the emu simply cannto suport 70+ peopel raids - the zone will crash - so raids were tuned down.. But wait- thats not live-like! So we had no problem ALTERING the Grand Vision when suited us. Even if emu COULD support 100+ people in a zone and run flawlessly - you REALY think there would have been 70+ people raids on PEQ when server population around 150 men total and MOST of then are casual solo players? Whats LIVE-like about that? Absolutly nothing

You also need to realise that MAJORITY of players DO NOT play on PEQ - they sick and tired of all those "cannon" things back when then played on LIVE. They play on CUSTOM servers, and its the custom servers that last the longest (exept of course PEQ which is the base server for the project).
Take SoD/Winters Roar - they count what - 600+ players? Yes they doign it illigaly, but heck its an EQ emulator nevertheless with CUSTOM content- and they have 3 times more people than "wanna-be-cannon" PEQ alone.

This should tell you what people REALY expect from an Emulator.
Why emu software is even open for download? Why not just stop giving it out, and only have PEQ which is dumped down eq-live.

NO, the IDEA was that EVERYONE can run their CUSTOM server and change thigns the way they want.
the idea NOT to mimic live and all ist flaws- the idea to make YOUR OWN EverQuest - and to do that all the "live-like cannon" attitude needs to be thrown out the window - cuase it will KILL the project.

To me Emulator is a bunch of assembly blocks - what I make out of it does not have to be in anyway resemble eq-LIVE. So it does to MOST players and private server devs here. They simply not interested in "excatly how it was on live" specialy it was broken and flawed like hell.
Some people simply do not understand or have own creative potential to develope game content - thats why they keep copying what SOE did.
Don't be like LIVE - be BETTER.

And thats why you WANT a HIGHLY customizeable server structure, then you can set few variable and turn everquest into doom or anything else if you realy want to.

Whiel I admire Cavedude dedication, I cannot agree with his "vision" of copying down SOE "vision", and every single "custom" sugestions is treated like unholy blachemy (ok true, there are CRAP LOAD OF custom features allready that were coded by the devs which allow GREAT customization, and I am TRULY thankfull for it, but the iron grip attitude realy needs to be reviewed)

The goal should be cretaing server engine so FLEXIABLE that it can be fien tune to do ANYTHING on the fly (which includes btw mimicing EQ-LIVE)
Creating such ultra-flexiable engine as much benefit to hard core fans as to custom content people, cuase again- you gives GREAT deal of control over the server, cuase as I allreday said before- tomorrow SOE gona turn aroudn and chance soemthign in the game which for years was "will never happen" (yeah like I never heard that song before sicne 1999) , and guys will have to - re-hard-code the server again, and again and again.
WHy would you want to do that?

trevius
09-26-2008, 06:05 AM
Chaos! =P

This thread isn't really the place to get into this discussion. But, since you brought it up, I might as well make a few points. First, the website and project name is Everquest Emulator. It isn't Custom Everquest Emulator. And it isn't Something-Other-Than-Everquest Emulator :P

The emulator was originally created on the hackersquest site I believe because the creator was pissed that his necro got heavily nerfed on EQLive. His idea was to emulate EQLive, but before the nerf took place. Eventually, the project started to grow and got more and more playable and finally it was moved over to eqemulator.net where it still resides. I think hackersquest was also responsible for creating the original showeq program.

In the beginning, customized servers weren't even considered, because they couldn't even get most of the normal stuff working to even think that far ahead. By the time that most features were working and the emulator was actually playable and fun, the emulation of EQLive had been the main focus for a long time. I think the idea was to create a free place for players to play and to have more options than on EQLive. Some people just wanted to explore, or play with GM commands, and some wanted to play a classic version of EQ from back when it was actually a really good game.

Without a good database, the emulator project would really suck. Having to make every zone from scratch would mean that most servers currently out there wouldn't even exist. PEQ and AX both strive to simulate live, which is great because they have a very full database and it is all fairly relatively balanced. With something to base their content off of, it means that they can really crank it all out and share it with everyone and not have to worry about balance issues. Can you even imagine what a pieced together database of multiple custom servers with multiple creators all going in different directions might look like? It would be completely useless or near impossible to maintain and balance.

The project needs to have something to strive for and something to base everything off of, and EQLive fills that need. Without PEQ/AX or something like it, this whole project would fall apart quickly. I can't thank them enough for what they do for us all. And in order for their database to work properly, the server code needs to emulate live as closely as possible as well. It still has a long way to go. But, at the same time, we also try to add in as many options as possible within reason to keep this entire project on track and still allow maximum customization.

Also, you have to take into account that we have a fixed client that cannot change legally. In order for the emulator to work properly, there are many limitations set by the client that we have no control over.

If you want something that is 100% customizable, then you would need to find another project other than EQ Emulator. I would personally love to see this type of community all working similarly on another project with an open sourced client. I think that if we had a badass client, the possibilities would be endless and the end result could be an entirely new game that blows away most MMOs. But, that isn't really an option and isn't what this project is about.

There are other options out there like Torque, or even Simple Client and others. Those types of projects are more towards the type of system you seem to want.

You have to look at the bigger picture here. This community thrives with the way that things are done right now. If anything was to change with the direction of the project, it could potentially ruin the whole thing. The client itself is very limited and the graphics suck by today's standards. So obviously it has to be the game play itself that keeps people coming back and playing. And, if you change that completely, then it is highly likely that it will ruin the way that things currently are.

I run a pretty customized server and have many things on my server that live has nothing like. So, I am all for customization in the emulator. But, at the same time, I don't think we need to be trying to change the core of the system. I think the main focus of custom servers should be content, not gaming mechanics. When it is possible to add more options, I am all for it. But, don't put down PEQ just because they don't want to do the same thing you want to do.

Yes, some people do play the emulator for the customized servers. But some do play because it is free instead of the high prices that SoE charges. Sure, 15$ a month isn't bad, but for some people, that is a lot. Also, some prefer to box multiple characters at once and multiplying that 15$ a month can add up VERY quickly. Some people also play because they are sick of the direction EQLive is going, but they still like EQ itself. Some just want certain PVP types, some want only classic, or maybe kunark, and some want other special rulesets that just aren't available on EQLive. So, there are many reasons to play the emulator other than just for custom servers. If you look at some of the general post from new members, many of them ask for recommendations for non-custom servers that are classic, or up to a certain expansion. So, there is definitely a need that PEQ is filling and I fully respect them for that and think that you should do the same.

I know you would like more rules, and I would too. But there are many cases where adding a rule would be so minor that it isn't worth it. If there was a rule for every little thing in the code, it would cause so much overhead that the servers would suffer heavily for it, which isn't worth it IMO.

I can understand where you are coming from, but you should realize that there are all sorts of people and not everyone likes the same thing or thinks the same way.

We may need to make a new topic and move this discussion there if this continues.

So_1337
09-26-2008, 08:07 AM
Alright. I've stayed out of this up until this point, in the hopes that Chaos' requests would be met to his satisfaction, and Cantus could really get back to doing business here. As that hasn't happened, I'd like to give my perspective. I will try to keep it brief, not only for your sake, but for mine. (Going to be late to work, but wanted to get this posted first =P)

The goal here, like it or not, is to emulate Live as much as we can. When feasible/necessary, the people who write and commit code for us add rules so that things can be easily customized. I'm not emphasizing the word 'easily' because the rules make things simple. I'm doing it to point out that even without rules, you can change anything in this code that you like, it's just takes more skill.

However, and I speak as someone who knows next to nothing about C and the actual server code, I know that I feel a bit guilty most of the times that I ask a request of someone more capable of working with the code, because anything that they agree to do for my sake is time that they would've spent elsewhere, fixing something else that's broken in the current state of the server. It'd be a bit selfish if they spent all of their time fixing the things I want fixed. Most of the time that things get fixed, it's because the people doing the fixing were motivated to go and do it themselves.

I have a great respect for everyone here including you, Chaos, so please don't take this as too harsh of a critique. However, running custom server myself, I understand that only so many concessions can be made to make everything tweakable that I'd like to tweak. If I really, truly had a problem with that, I would study up more than I have and learn to work with the actual server code. (And I probably should anyway, just to pitch in around here!)

Rules are nice when they're offered. They're almost always granted when requested. In cases where they would make the code cumbersome or require an extraordinary amount of extra work on the part of someone who just joined the project and made an excellent contribution within his first five posts, just let it go. Or open the source and dig it out yourself. Change it where you need to, compile, and go.

Again, I don't want this to start any sort of argument, and I hope you understand I'm saying this more for Cantus' sake than anyone else. This was a very solid submission, and I have the feeling he has other things he'd like to go check out as well, rather than having to re-tool this one over and over.

/end rant

Fantastic work, Cantus, and thank you again. I really hope that all your comments stick in the code when this gets submitted, because this was one of the first submissions since I've been here that I was able to even partly follow along and understand everything that was happening. I know Trevius has gotten a lot of knowledge just by opening the source up and learning as he goes, and I'm pretty sure that's the route I'll take when I finally give this a shot as well. Detailed comments like yours make that possible.

renoofturks1
09-26-2008, 08:39 AM
You make it sound as if, at least to me, that you don't want to use the code. Then don't. We are not forcing you to by any means. If it doesn't suit your needs, change it. That truely is the beautiful thing about OpenSource. You can do whatever you want with it.

I am very much used to discussions such as this from the guy's at the PEQ forums, some of those guys have put me through hell and back and they no longer bother me. Cantus offered to help with this, and you are making his first submission very painful. I asked for his help with this, and you have, un-intentionaly, turned it into a nightmare. Makes me regret ever asking him for the help. Not just Cantus, but multiple people within our group helped with this.

Whiel I admire Cavedude dedication, I cannot agree with his "vision" of copying down SOE "vision", and every single "custom" sugestions is treated like unholy blachemy (ok true, there are CRAP LOAD OF custom features allready that were coded by the devs which allow GREAT customization, and I am TRULY thankfull for it, but the iron grip attitude realy needs to be reviewed)

This is most certainly NO way to get where you want. I think we have been very accommodating of your suggestions. In no way did it get treated as "unholy blasphemy". It has just reached a point where you want more than we are willing to put into it. We set out with a goal, and accomplished it to our needs.

Cantus
09-26-2008, 10:57 AM
Hey, guys!

First of all, thank you very much for your kind words, especially from So_1337 and Reno! I do not regret at all having Reno ask me to start contributing here. Personally, I'm thrilled with how this first submission has been received, and I look forward to offering more in the future! Thank you all for making me feel so welcomed.


Chaos, I understand your point, but I think we'll have to make a friendly decision to agree to disagree in this case. I have to admit that my own thoughts on the issue align far more with those of Trevius, So_1337, and Reno. That doesn't mean that I disrespect your point, but it does mean that I'm more likely to invest my own coding time into helping the server, in general, perform better and better track Live's functionality. I hope you understand.

I agree with you that SoE hasn't always made decisions regarding EQ that I agreed with. But for the most part, they've produced an excellent product (as illustrated by EQ's overwhelming popularity over the years). If the other programmers who think like me can help make the core EQEmu code more stable and Live-Like, then folks like yourself have a much better platform to start from when you decide to customize the way things work to meet your own vision of how things work! We're not working against folks who believe as you do, though we may not always be able to accomodate the degree of customizability that you would like.


The Damage Bonus function that's posted here was the end result of a lot of work and thought. Most likely, we invested far more time into this enhancement than we needed to. Please take my word for it (and if you don't take my word for it, I'll send you a ready-to-compile C++ solution that you can build to test it yourself) that it runs extremely quickly.

Yes, I have no doubt that if all of the brilliant programmers here looked at it, we could further improve its effiency. But really, in my humble opinion, it's more than "good enough" right now, and the focus of these brilliant programmers would probably be better invested in working on other aspects of the project that are more in need of attention.

ChaosSlayer
09-26-2008, 12:22 PM
Hi everyone, and thank you for your coments.

First of all let me say that my last post was in no way an attack specificly on the DMGB code submited or Cantus or renoofturks1 - we just kind of got sidetracked on a topic of general Emu direction and it just happens to be inside this thread.

I have outmost respect for the people who find time to make contribution to the project specialy in a way of writign actual code (if we all just sit and agrue about ideas - we won't achive much :grin: ). Just like So_1337 stated, it pains me that I cannot contribute time to write an actual code, and only stick to "coming up with ideas", which may or may not be very suiteable for the main goal of the project.

In no way you guys should drop what you doing and start accomidating me, cuase god knows I have no power over you, and project great before I ever showed up, and most likely will do great if I am to go away. All I have is an opportunity to make a sugestion, and well, atempt to persuade you a little bit 8-)

I also would like to appologize to Cavedude (since his name was mentioned by me) for been harsh or perhaps even rude. If I would be in his shoes, and after years of working on MY project someone would come along and start saying "you doing it all wrong" -I would get prety mad. In no way my last post was telling Cavedude how to run his server and what direction PEQ should take. My coments were more of general view of future of Emulator server code at its core

We can consider this discussion prety much over, since everyone has made their point of view very clear (at least at this point), and there is no point for me to continue state the same things over and over again (at least at this time and in this manner )

I do however want to highlight just a few detail on Trev's post, to point out a few details.


Yes, some people do play the emulator for the customized servers. But some do play because it is free instead of the high prices that SoE charges. Sure, 15$ a month isn't bad, but for some people, that is a lot. Also, some prefer to box multiple characters at once and multiplying that 15$ a month can add up VERY quickly. Some people also play because they are sick of the direction EQLive is going, but they still like EQ itself. Some just want certain PVP types, some want only classic, or maybe kunark, and some want other special rulesets that just aren't available on EQLive. So, there are many reasons to play the emulator other than just for custom servers. If you look at some of the general post from new members, many of them ask for recommendations for non-custom servers that are classic, or up to a certain expansion. So, there is definitely a need that PEQ is filling and I fully respect them for that and think that you should do the same.



The question we should ask ourselves, what is CLASSIC CANNON EVERQUEST?
EQ in first 3 month of release? EQ before Kunark? EQ before Luclin? EQ before PoP? The list just goes on.
Whats important to note that during its history EQ changed so many times SPECIFICLY in core of game mechnics, and thats at any given point of time (specialy when any new expansion came out) it was not the same as it was before.

Trev you said "some people left eq cuase they did not like where SOE was going". This statement is the core contradiction in itself, cuase as I said above- what is TRUE CANNON EVERQUEST? Where do you draw a line- what is CANNON, when is keeps continusly changing?

Even among strongest hard core EQ suporters we have people who do not recognize everquest beyond certain expansion as "pure cannon eq".

And important question to ask here - where does Emu/PEQ team draws a line?

Even going back on DMGB original topic - the damage bonus only appeared when? Somewhere after velious? thats can hardly be qualified as "classic".
While I am no fan of original vanila eq (and I truly belive that with years EQ core mechnics were geting BETTER and BETTER, cuase it become less and less ridiculusly hard core raid oriented, it just after 9 years MOST people eventualy got bored playing the same game and left anyway), I want to point out that there are NO TRUE DEFENITION of what is CANNON EQ is.

The DMGB did not existed before PoP era- isn't its implementation a violation of "eq spirit" ? What about quest journal recently implemented? There was no such thing in game during Kunark. Why zerker and beastlord classes are even playable? And list of "what was then" and "what is now" can go on and on.

And when PEQ team (and all who support them) say they want to stay true to original EQ - they only realy staying to true to Titanium expansion in specific.

The MAIN point I was trying to make is not "lets drop everything and do what Chaos tell you to" BUT: You CANNOT posibly have a TRUE LEGIT CANNON Everquest Emulator cuase the word CANNON when applied to EQ is a contradiction in itself.

And what TODAy you see as "LIVE-like" tomorrow will be taken by SOE and turned 180 degrees around and what you goign to do then? Follow SOE lead or "stay true" ? Either way you go you will be going either: against classic or againts "official CURRENT cannon". And you will be in either case

Some time from now ( I hope so) Emulator will move on to next retail bundle package and sudenly discover that a good chunk of "cannon" things no longer apply. Ranger going to get feign death and Wizard will get pickpoket- what you guys going to do? Code it in? In violation of all that "true classic everquest" stands for?

So once again - where do you draw a line "what is true cannon everquest"?
My answer is that: there is no such line. Everquets is like horizont- the more you move towards it- the more it moves away from you. The more PEQ team tries to "chase LIVE" the more it moves away from "original EQ". There is no way around that

The final thing i like to poitn out, that when I make a sugetsion that something should be implemented diffirently, it does not mean I am saying - "rewrite entire combat mechnics, so CHA can proc fear" - I am saying implement code in such way so its FLEXIABLE enough to be fine tuned at later time wihout having to rewite it at its core.

the Emu (IMHO) should not encompass only what "is classic" or "whats is current", but on ALL WHAT CAN POSIBLY BE

Thanks everyone 8-)

Cantus
09-26-2008, 12:55 PM
Hey, again, Chaos!

I agree with you that the game of EQ evolved over time. Each expansion, and even tweaks between the expansions, changed how things worked and added new content (zones, races, classes, features like in-game maps, instanced zones, etc.)

In general, those changes were made with the goal of balancing out the game, and making it even more fair and fun to play. Whether or not SoE achieved these goals with all of their changes is a huge debate that this thread is probably not the right place for. :rolleyes:

I don't think these changes were quite as earthshattering as you seem to make them out to be, Chaos. For example, I don't think that the release of EQ's next expansion will be a complete 180 degree change in the way things work. But that's just my opinion, and I respect yours.

You do have a good point in asking "Which version of EQ are we striving to emulate here?". I'm guessing that the answer is "the state of Live EQ when Titanium Edition was released", but it would be helpful to me (especially if I'm going to help contribute a bit) to have that point clarified by the senior folks involved with the project.

I understand that there are some folks who are interested in setting up and playing on highly-customized servers. Rather than thinking of it as a "them vs. us" situation, the folks who favor customization should support the efforts of the core team to build a highly stable, efficient, and feature-rich emulation of Live EQ, and then build their customizations on top of that foundataion!


P.S. I'm certainly not insulting or acting as the "grammar police", but I think the word you're looking for, Chaos, is "Canon" with one "n". That means "the standard; the officially recognized general rule".

"Cannon" with two "n"s is "a mounted gun for firing large projectiles" ;-).

janusd
09-26-2008, 01:37 PM
As I understand the situation, PEQ's purpose is to emulate the Live servers as closely as possible as they currently exist, but in order to maintain a modicum of balance and enjoyment, we move expansion by expansion in the order they were released so the people playing and testing can experience that content as if they were actual expansions just being relased. This allows us to encourage players to test the content as it comes instead of ignoring 'old' content in favor of 'new content' (IE releasing Velious and OoW at the same time would likely result in poor testing and play for Velious as people focused on getting the gear from OoW which would mean that Velious couldn't be tweaked properly). Each expansion is slowly being tuned up to its Live version circa its original tuning phase, and, in some cases its final tuning phase. This means then that we have to move slowly to ensure the project as closely resembles Live as possible. This means that we'll eventually be 100% Live, but at the moment we're sometimes forced to be 100% Live for the current expansion era. In some cases, as far as the database is concerned, we choose to make alterations to retain portions of EQ that no longer exist in their current condition (IE the database contains the code for Sleeper's v.1 and v.2 but the server runs v.2. Same with VP and I WISH PoM). The project attempts to 100% emulate Live, but it's a VERY slow process. The ultimate goal is to be 100% in-line with Live's final expansion, but at the moment we're hindered by the Titanium client (the current goal is to be 100% Titanium until someone can update our client and we can get a new sniffer). Until Sony ceases releasing expansions, we will not have a SET goal, but we will have an ideal goal. Were someone to take the upcoming expansion (4 weeks!) which contains all previous expansions and systems and update the EMU system to support it AND create a new sniffer that works with the new expansion AND can convert the information into a format that could easily be imported into the EMU and various databases, then things would go a lot faster... until then, though, we move as we can towards that good and final goal. I just hope we can complete the project before Sony makes the final move and pulls the last Live server some time in the future. We are, after all, on a time limit goverened by subscribing players. So... ya know... bribe your coder friends to update the client, the sniffer, and a packet converter.

ChaosSlayer
09-26-2008, 01:39 PM
In general, those changes were made with the goal of balancing out the game, and making it even more fair and fun to play.

some die hard vanila pre-kunark fans will say that this changes RUINED eq, starting from the point when iksar were allowed to be monks :grin:


I don't think these changes were quite as earthshattering as you seem to make them out to be, Chaos. For example, I don't think that the release of EQ's next expansion will be a complete 180 degree change in the way things work. But that's just my opinion, and I respect yours.


the were gradual and they did happen over course of 9 years, so if you kept playing all this time they did not come as surprise to you, but if you compare eq in 99 and eq today- there is a significant diffirence. I don't have a comprehensive list of things atm, but there were number of things which Brad/Soe keept saying "will never happen" back in a day and then one day the "vision" changed and those things were implemented.


You do have a good point in asking "Which version of EQ are we striving to emulate here?". I'm guessing that the answer is "the state of Live EQ when Titanium Edition was released", but it would be helpful to me (especially if I'm going to help contribute a bit) to have that point clarified by the senior folks involved with the project.


This is gona sound evil, but in no way an attack on you, but... the numbers for DMGB were "carefuly recorded from LIVE" when? Recently right? But EQ Titatium is what 2 years old? This means that they infact invalid :grin:
I do know that you guys trying to be as close as posible, but the thing is whatever changes SOE makes - they make it with current content in mind.
As dificulty of eq endgame grew - so grew the bonuses to the players.
And this is one of those little tiny things which "gradualy change" and pile up until you arive at "180 degres turn around" I mentioned.
And it simply will never stops.

And thats prety much when i decided that I am done listening to SOE "vision". Cuase SOE have all the power to change things, for better or worse, and all you can do is keep paying your $15 a month hopping the things will turn this way than another.

And this where I realise what TREMENDOUS potential project like Emu has, when you take the SPIRIT of IDEA behind Everquest but fine tune it in such way that it precisly matches your own vision, wihout having to live in terror that tomorrow your class going to get nerfed or something, and all you worked for (as a player) is complitly pointless now

And thats the idea I am trying to spread



I understand that there are some folks who are interested in setting up and playing on highly-customized servers. Rather than thinking of it as a "them vs. us" situation, the folks who favor customization should support the efforts of the core team to build a highly stable, efficient, and feature-rich emulation of Live EQ, and then build their customizations on top of that foundataion!


Well, let us hope that we all can contribute something to each other final goals 8-)


P.S. I'm certainly not insulting or acting as the "grammar police", but I think the word you're looking for, Chaos, is "Canon" with one "n". That means "the standard; the officially recognized general rule".

"Cannon" with two "n"s is "a mounted gun for firing large projectiles" ;-).

I like to spell things with 2 "n"s cause it makes then sound more impressive (j/K) thanks for correctin me =)

Cantus
09-26-2008, 05:32 PM
This is gona sound evil, but in no way an attack on you, but... the numbers for DMGB were "carefuly recorded from LIVE" when? Recently right? But EQ Titatium is what 2 years old? This means that they infact invalid :grin:

No, that's not the case. The damage bonuses in this function are consistent with both Live as it currently exists today, as well as Live when EQ Titanium was released. Furthermore, the actual damage bonus added by this function is consistent with the amount of damage bonus displayed on weapons in-game when you right-click on them.

What changed was the way Damage Bonuses were calculated for new levels when those new levels were unlocked, and that's what makes the formula such a mess. For example, when Kunark was released, the damage bonus formula used for levels 28-50 was not changed, but a new formula for 50-60 was implemented. When PoP was released, a new formula for 60-65 came out. That kinda thing. That's why we use many lookup tables in this function -- because there is no one single, simple, fast formula.

But those formulae have never changed retroactively, to the best of my knowledge. That is, if I logged in my level 30 Monk today on Live, his 2H weapon would have exactly the same Damage Bonus as it did five years ago.

ChaosSlayer
09-26-2008, 07:18 PM
that part I was not aware of, thanks for bringing it up =)
Back to DMGB - I juts want to make sure that as level goes beyond 80, the 2hs bonus will not start falling behidn 1hs, as I belive you previusly pointed out