PDA

View Full Version : Exp rate measurements



shadowart
11-03-2015, 02:59 AM
I wanted to share my thoughts on the different ways to measure exp rates in the botting community. So let me start out introducing three different methods:


The 15-min average: This is what the Tibia client and the build Xenobot HUD displays. It's a 15 minutes rolling average, and it's essentially useless. I see no reason why you would ever care about this stat if you have access to something better. However, it is what most scripters use when they label their scripts, probably because it is the highest value.

The per real-time average: You measure the total exp earned across the entire session and divide it by the total session length. What is important to keep in mind about this number is that it includes refill times.

The per stamina average: You measure the total exp earned across the entire session and divide it by the total consumed stamina. This number includes 2 minutes of refill times regardless of what the actual refill times are. In general it's a good approximation of your exp rate inside the spawn.

This post is mainly a response to Joshwa534 who is a proponent for the per real-time average measure. I think that what measure you care the most about should depend on what is limiting how much you can bot. For example, if you can only bot 4 hours per day, or if you have 4 characters per account, then the real-time average is definitely what you should care about. Because the actual time that you have available is what's limiting you from botting more.

However, if you only have one character per account and can keep the bot running for 10h a day, then I'd like to argue that you should care more about the third measure, the per stamina measurement.

So let me give you a hypothetical example. Consider two different spawns:

In spawn A a hunt lasts for 55 minutes and refilling takes 5 minutes. Your exp rate is 350k/h (a per real-time measurement), which corresponds to ~381k/sh (a per stamina measurement).
In spawn B a hunt lasts for 50 minutes and refilling takes 10 minutes. Your exp rate is ~333k/h, which is 400k/sh.


Which spawn should you go for? What we ultimately care about is how much exp we can gain at the end of the day. So let's calculate that under the assumption that we will bot for as long as we have stamina available. Let H be the total time in the spawn per day and let R be the total time refilling per day. Regenerating 1 hour of stamina takes 3 hours of offline time so we know that (24-(H+R))/3=H. The right hand side is how much stamina we can burn on hunting each day, and the left hand side is how much stamina we can regenerate during the offline hours to fuel that hunt. In the equilibrium they must be equal.

Furthermore, for spawn A we know that H=11R, which solves for H~=5.86 hours. At 381k/sh this becomes 2233k/day. For spawn B we know that H=5R, which solves for H~=5.71 hours. At 400k/sh we'll gain 2284k/day. So spawn B would be better for us, under the assumption that we're not limited by much how time we have available to bot. In this case R evaluates to ~= 1.14 so we'd need to keep the bot running for around 7 hours per day.

I did not bring up the example to prove my point, merely to illustrate it.

What do I want you to take away from this? First of all, what you're limited by, should determine what measurement you use. Second, the per real-time average assumes that time spent refilling is just as important as time spent hunting. If you're not limited by how much time you have available, then this is wrong. On the other hand, the per stamina measurement assumes that time spent refilling doesn't matter at all. This is also wrong, but it is often less wrong than putting refilling time on the same pedestal as the time you spend hunting. The truth is that time spent refilling matters, because you're not regenerating stamina while you're refilling, but it is heavily discounted, since you're not consuming stamina either.

auto
11-03-2015, 04:18 AM
There should be an average exp/h worked out from say a 20 hour hunt in one day as this would give a good estimate of the average exp you could expect taking into account different respawn times and refill times.
I bot deeplings simply because loot sells to the npc per refill and its got the best exp/h factoring in refills I believe

Joshwa534
11-03-2015, 03:25 PM
This was a good read shadowart, thank you. It makes a lot more sense now.


The rate you're talking about auto is what most people are used to, the "per real-time average" (#2 in Shadow's example), which considers all time online. This is the method most of us here at XenoBot use in our HUDs. It makes the most sense to most of us and thus is the most relevant to us since we know we get that much experience each hour. Its what I use, I'd rather know the experience per hour so I knew how much experience I'd gain in 4 hours since I'm only ever going to bot at maximum 4 hours, stamina is out of the equation for me entirely since it regenerates enough each day to recover those 4 hours. In which case, a 10 minute resupply time in Fenrock Dragon Lords making 350k/hour is still better than a 2 minute resupply time in Darashia Dragon Lords making 300k/hour, simply because the rate is per hour, including resupply time.

What Shadow is talking about is that during resupplying, since you don't use stamina, you are able to bot longer and experience should be factored in an alternative way (#3 in Shadow's example). Sort of like if you're at 16 hours of stamina and you will logout at 14 hours of stamina, you won't logout in exactly 2 hours unless you're non-stop decreasing your stamina (killing creatures). So instead, he takes your stamina used per bot session and gets the rate "per stamina hour". You could have 2 hours of stamina left but be online for 2.5 hours due to resupply times, yet he will only track the experience rate for time that stamina decrements. That is why the rates will almost always show to be higher (experience is only tracked when stamina decrements).


Aside from what each of them are, most users won't read this thread and will have no clue what the difference is or why one shows a different rate than the other. That being said, the fact that users don't know the difference and only see a number (/h, /sh doesn't matter to them) makes for a great marketing ploy - just like those scripting teams that advertise their rates based on the "15-min average" (#1 in Shadow's example). They are each correct in their own way, but again, the end-user only sees a number. The higher the number, the better they think they're botting, even while not knowing the difference in how the rates are being factored.

This is why there should always be total rates shown, for example:


1) With the "per real-time average" method:
If the rate shows you're getting 500k/h and you're botting for 6 hours, you will likely be at, or around (+/-), 3kk total experience gained after 6 hours.
The user reads 500k "per hour" understands it equates to the 3kk experience gained, everything is good - continue botting.

2) With the "per stamina hour" method:
If the rate shows you're getting 600k/sh and you're botting for 6 hours, you will always have less than 3.6kk total experience gained after 6 hours.
The user reads 600k "per stamina hour" but doesn't understand why it doesn't equate to the total experience gained, something is wrong - report it as a bug.
(This is simply due to not attributing the experience gained while stamina is not decremented. Achieving the "per stamina hour" rate.)

As you know, I consider the end-user quite often when deciding what or how to do something in the scripting realm. A rate that appears to conflict with the total experience gained will cause confusion and because of that, its not something we would ever use. Even though your method is equally correct as the other 2 methods, users simply wouldn't be able to grasp the idea and it would turn into a bug report. Or the rates could be questioned by other scripting teams, which could be equally bad and considered as advertising "false" rates, even though they are correct for what they are (per stamina hour vs per hour).

shadowart
11-03-2015, 03:57 PM
Being limited by stamina rather than time has some more implications for script design that I didn't bring up in the original post. For example, my Orc Fortress scripts has an option for running to Thais to sell the creature products before refilling. This is will totally trash your exp if you're measuring by real-time. But I have my computer running 24/7 and I expect my faccs to get deleted around level 100 so I only have one character per account. I don't care at all about real-time when it comes to faccs. Running there is not so bad from a stamina point of view, and it saves me the trouble of selling it manually in bulk. From my point of view it's definitely worth it, but a person that can only bot for 4 hours per day should never enable such an option. I guess my point is that most scripts don't have these options, for they're catering to the real time point of view.

Edit: I'm pretty sure I was wrong about the 15-min average. I think it actually measures 14-15 minutes worth of exp and then divides it by 15, which means it's lower than it should be, but it's still normally the highest measure.

Brute
11-05-2015, 03:28 AM
What's even worse about the 15-min average is there is a lot of variation in it, since it only measures whole minutes. So when it's at its peak you're actually dividing 15.5 minutes worth of exp by 15 minutes (it might even be 16 minutes of exp by 15 minutes, I'm not sure how well they've implemented it). I'm not actually sure how most teams label their script here, but on windbot the 15 minute avg is the standard way of doing it, and I'm pretty damn sure many of their top teams are using the (inaccurate) peak 15 min average when listing the max exp for their scripts.

However, being limited by stamina rather than time has some more implications for script design that I didn't bring up in the original post. For example, my Orc Fortress scripts has an option for running to Thais to sell the creature products before refilling. This is will totally trash your exp if you're measuring by real-time. But I have my computer running 24/7 and I expect my faccs to get deleted around level 100 so I only have one character per account. I don't care at all about real-time when it comes to faccs. Running there is not so bad from a stamina point of view, and it saves me the trouble of selling it manually in bulk. From my point of view it's definitely worth it, but a person that can only bot for 4 hours per day should never enable such an option. I guess my point is that most scripts don't have these options, for they're catering to the real time point of view.

Shadow, interesting concept you bring up in this post with the Thais depositor for halberds. But let me play the devils advocate on this. If you are botting knowing your char will be deleted around lvl 100, then why care about exp? (I know you're probably just using this for a crystal clear example) For botting FACC knights at orc fortress, wouldn't the primary concern be halberds per hour? It needs to also be taken into consideration what the script is being used for. I couldn't care less about stamina on FACC knights since you can just make a new one. I'd rather blow through stamina as fast as possible knowing my makers are staying in the spawn getting me them coins. Seems like the profit/hr would be significantly diminished by running to Thais each time capped out. I know this isn't a thread about profit/hr, but just thought I'd voice my opinion. Why wouldn't you just have knight deposit all halberd in "x" bp in the depot and once a month take all knights running orc fort and parcel all halberds to 1 char in Thais or whatever town you pick and have a script run depot to weapon store and sell them?

Sorry for running off topic with this post by the way.

shadowart
11-05-2015, 01:48 PM
Shadow, interesting concept you bring up in this post with the Thais depositor for halberds. But let me play the devils advocate on this. If you are botting knowing your char will be deleted around lvl 100, then why care about exp? (I know you're probably just using this for a crystal clear example) For botting FACC knights at orc fortress, wouldn't the primary concern be halberds per hour? It needs to also be taken into consideration what the script is being used for. I couldn't care less about stamina on FACC knights since you can just make a new one. I'd rather blow through stamina as fast as possible knowing my makers are staying in the spawn getting me them coins. Seems like the profit/hr would be significantly diminished by running to Thais each time capped out. I know this isn't a thread about profit/hr, but just thought I'd voice my opinion. Why wouldn't you just have knight deposit all halberd in "x" bp in the depot and once a month take all knights running orc fort and parcel all halberds to 1 char in Thais or whatever town you pick and have a script run depot to weapon store and sell them?

Sorry for running off topic with this post by the way.

You missed every single point I was trying to make.

Stusse
11-05-2015, 02:54 PM
I think it relates to the every manual users measurement of the experience per hour they can get in a spawn.

If you're measuring the 15min way, or count exp without refill time you get what your experience/hr is at best. If someone playing manually they may claim "Yeah I got 2kk/hr on LC". I highly doubt they refer to that being including refill time or what so ever. Not saying which is better to use, just an answer to why many people refer to exp/hr with the 15min rolling version. It's basically "how much can the bot make me exp/h compared to myself" which normally is counted without refilling time or so.

/Stusse

shadowart
11-05-2015, 03:47 PM
I think it relates to the every manual users measurement of the experience per hour they can get in a spawn.

If you're measuring the 15min way, or count exp without refill time you get what your experience/hr is at best. If someone playing manually they may claim "Yeah I got 2kk/hr on LC". I highly doubt they refer to that being including refill time or what so ever. Not saying which is better to use, just an answer to why many people refer to exp/hr with the 15min rolling version. It's basically "how much can the bot make me exp/h compared to myself" which normally is counted without refilling time or so.

/Stusse

Indeed that is a good point.