# Relationship between TCRM and hitrate

## Relationship between TCRM and hitrate

According to my stats, a tcrm battle on average contains 1194.5213333333336 shots, ignoring 1.0 bullets, and given the hitrate as x, you get tcrm score = 1194.5213333333336 * 16 / 35 * x = 546.0668952380953x

for 100 tcrm score, the expected hitrate is 0.18312774656738373 and for 0.001 improvement in hitrate, you get 0.001 * 546.0668952380953 = 0.5460668952380954 improvement in tcrm score.

If the relationship is mostly linear, then you can just expect that, 0.55 diff in tcrm indicates only 0.001 in hitrate.

Question: is that worth it to work on tcrm scores so hard for only 0.001 hitrate?

Xor (talk)01:15, 9 July 2019

At first glance I would say no.

And doing some calculations, if the average points scored in a 35 round battle is ~5,000, and the average amount of bullets fired by you in a match is ~2,000, a gain of 0.001 in hitrate would mean that you hit 0.001 * 2,000 = 2 extra bullets per match.

The bullet damage done would go up to 20, assuming you are firing at a firepower of 2.

So if the prior score was 2500 / 5000 = 50%, a 0.001 hitrate gain would mean your score would go up to 2520 / 5020 = 50.4%.

But I took a lot of assumptions with my math and it's probably not super accurate.

05:20, 9 July 2019

And from practical perspective, my answer is no again. I have different guns with different tcrm score, however the best gun in tcrm generally performs even worse in rumble

The difference in tcrm score of those guns are ~0.5, sounds quite a lot, however after calc I know it’s only 0.001 However the best gun in rumble could score ~1.0 more APS than the worst (which, ironically, is the best gun in tcrm score) So I think it isn’t wise to improve tcrm score any more once the result is already among the best.

Maybe for gun challenges, we should create something more relevant to rumble score then.

Xor (talk)11:44, 9 July 2019

Hmm, we could make a Targeting Challenge 2k19

15:42, 9 July 2019

I would vote for the targets to fire a 1 power bullet away from you each time you fire. Then it would be more sensitive to small changes even at higher levels.

16:07, 9 July 2019

I am not sure about that. You get a bit more difference in bulletscore, but less difference in survival, at least against the good movers (which are the most interesting)

16:20, 9 July 2019

Well it will affect both. Basically then we actually have a direct measure of the hitrate, and not just a measure of the amount by which we run out of energy.

The score wouldn't go to 100 anymore though so we would have to scale it.

17:18, 9 July 2019

That makes sense.

We could calculate the scores by our bullet damage / a constant, or by our bullet damage / the total score

19:27, 9 July 2019

I think this is better than a non-firing target, as hit-rate is not the only thing that affects score.

If you choose to fire only when a guaranteed hit is possible, hit-rate will be 100%, however you merely earn score this way.

Then a target that losses energy which is the score you can earn potentially could better simulate real world situations

Xor (talk)07:49, 10 July 2019

I think the reverse of mc2k7 could be used

The reference bots will be using RaikoGun.java from mc2k7 for radar, gun and energy management

And the challengers use their own gun which fires 3.0 bullets where possible, and the movement should be a modified version of RaikoMicro’s, which allows prediction of one’s own movement. The appearance of the movement should be kept the same though.

Although bullet damage doesn’t scale to 100 in this case, since the only variable is your gun, all reference bots are given the same weight actually, scaling isn’t necessary.

Xor (talk)07:33, 10 July 2019

I like the idea of the reference bots using RaikoGun.java and the challengers using our own guns.

What type of bots should we have in the challenge? Maybe we should make the reference bots kind of match the LiteRumble population, so maybe ~20% wave surfers, ~50 random movement, and the rest oscillator/pattern movements?

I'm rather clueless on the average amount of each archetype in the LiteRumble, but I think these stats sound about right.

21:54, 10 July 2019

I think we could separate each type of movements, and weight them accordingly instead. A patch to roborunner may be done though.

Anyway IMO it doesn’t matter how you can hit sittingducks and other movements, as long as you can dodge their bullets well, so the weight for pattern movement depends on your movement in real rumble, and should be much lower in general, despite the popularity.

Xor (talk)02:06, 11 July 2019

another option would be to separate random movement and surfers into two challenges, since the strategy used to hit them generally differs a lot, it will be more convenient to make them into separate tc as well. So that gun development could be done without messing things up with virtual guns.

An overall ranking could be created though, by weighting the score of the two, given the challenger is kept exactly the same. This gives virtual guns a chance.

Xor (talk)02:13, 11 July 2019

The problem of letting the reference bots to use real guns is that it further obscures the relationship between hitrate and score, and the randomness added from reference bots hitting you means more seasons must be used for reliable score.

However this makes bullet shadow possible, so that you can finally test your guns’ performance against bullet shadowers in tc.

Xor (talk)00:58, 11 July 2019

OK.

I'm fine with any of these options, so we can do whichever one sounds best to you and then pick some reference bots!

16:29, 11 July 2019

Another option would be to use a snapshot of the entire rumble However in this case we can’t control the guns

So that each opponent maybe given different weights, where normalization should be used to compensate

I think this approach should be the most relevant one to rumble score, however it makes relationship between hitrate and score unclear, if different opponents aren’t normalized well

Xor (talk)07:41, 10 July 2019

Or we could just plug in a component to calculate raw hit-rate, and maybe even patching roborunner to report this result directly in this case

Xor (talk)07:45, 10 July 2019