Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Vanthor

Pages: [1] 2
1
NA (Official) / Hospitaller_Thugicus
« on: July 05, 2014, 02:03:00 am »
1. Name of your character involved
    Literally_Shard
2. Name of offending character(s)
    Hospitaller_Thugicus
3. Time and server, as accurately as possible
    7:40 Eastern Standard time
4. Written description of what happened, the whole story. Also what happened before and after.
    Was walking up a ladder. I got to the top and threw one throwing lance. Thugicus then killed me from behind.
5. Why you think the offender did what he did.
    He says I was blocking the ladder.
6. Multiple Screenshots
http://imageshack.us/photo/my-images/840/06l1.png/http://imageshack.us/photo/my-images/849/l9hr.png/
7. Names of players that can witness what happened.
    Literally_Circler, Literally_Phignewtenz

2
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: June 24, 2014, 09:52:27 pm »
Tydeus, any update on how that little auto balance test change went?

3
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: March 10, 2014, 03:26:51 pm »
On Topic:
Better than juming between x1 and x2 all the time if you ask me... The real balance mechanism in Battle works only after round 1; the rest is fine-tuning.
The teams after round 1 are guaranteed to have roughly the same total level (Team 1 might have 2 level 30s, team 2 4 level 15s) and banner balanced. Every thing it does after that is random flailing caused by:
(click to show/hide)
That piece of code basically gives every person on the losing team -30 value per round. Thats about -5% of the players total value. Per loss. So if they loose twice, its -60, 3 times its -90. The problem with this strategy is that in low pop games, the type of player it will balance is peasants (Lowest value to make the teams even).

Off Topic:
Quote
I'm not alone!

Go agi pikes! I like it much better than my old 24/18 piker. Much easier to get into position.

4
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: March 07, 2014, 04:44:24 pm »
With that many screenshots, getting them OCRed might be better than reading them

Tried it. Images are way too noisy.

5
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: March 07, 2014, 03:05:28 pm »
Just realized I could just share the data I've collected.

https://docs.google.com/spreadsheets/d/1e3lIiCPT0i2wxmgdBM2m2GlUsgQ0yH5T9dr6RiTSuzA/pubhtml

Sheet1 is raw data
Sheet8 is all unique player names from the raw data
Sheet9 is play data on each unique player.
Final is sheet 9 filtered on players I have 3+ games for.
Match info contain what team won
Match Displays useful data on each match. If you copy the spreadsheet you can change the cell B1 to see the data on each Game. Ok you can't copy it. Weird.

6
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: March 05, 2014, 09:53:35 pm »
And the aggregate data (more to come)
(click to show/hide)

7
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: March 05, 2014, 09:43:45 pm »
Ok, so I've managed to collect up some data:
  • I've input the top 21 players from each team for 20 matches (and growing!) evenly split between EU and NA
  • This gives me roughly ~= 840 individual player match (player,score,kills,deaths,rounds won).
  • Which in turn gives me aggregate data on 516 unique players (player,total score, total kills, total death, total rounds,score per round).
  • I filtered this on players who I had at least 3 matches for. This gave me about 71 players. Not the greatest dataset, but data entry takes time

From this, I was able to determine that there is a linear relationship between a players score per round and their average k/d.
average_score_per_round = 3.46 * average_kd + 4.40
The average score value should be correct to with +-30%

So if we want to get the auto-balancer to stop being level dependent, I propose we change the script_cf_crpg_autobalance_get_level to be the following.
(click to show/hide)

Breakdown in story form (See Sir_TryHard post):
(click to show/hide)

And for those of you who just want to see the results:
PlayerOriginal ValueNew Value
Sir_TryHard_CarriesAlot636100
ArcherWith300Ping65429.25

And again, I'd like to that Sniger for providing me we the EU screenshots. Ill be posting some comparisons of how those two algorithms perform in a bit.

8
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: March 01, 2014, 04:15:10 pm »
whoops

9
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: March 01, 2014, 04:02:04 pm »
Thanks Tydeus, that's useful information to have.

10
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: February 28, 2014, 08:31:45 pm »
Sorry for the long time between posts, been busy with work and such.


Although I can't help but feel the energy functions working at odds with each other, but as you said before, perhaps some simulations with past data can shed light on how well it would work. I don't fully understand how the values for mean and variance of the Gaussian for TrueSkill would work for warband, but it sounds nice if we could get something working. I think average score per round is a good placeholder before something more complicated is used.


The energy functions are somewhat at odds with each other, but the key is to use them to come up with a best case compromise. As for TrueSkill, its the best algorithm I know of for rating players in games like this (Although it takes it a long time for a game like warband) so I suggested it. I agree that average score per round would be a good placeholder for the time being. A TrueSkill implementation would be way better.

Do you still have intentions of modifying the script yourself, Vanthor?  :wink:

Currently working on it. I've just never worked with anything quite so unique as the "M&B scripting language". I'm thinking of quickly revamping the "cf_crpg_autobalance_get_level" function in the current balancer, as i'm pretty sure its the root cause of the weirdness in the auto-balancing.

It puts way too much stock in a players level (1 level ~= to 33.33 points). This matters quite a bit in the auto-balance after the first round.

What I'm currently doing:
  • Reading through the current auto-balancer code - Done
  • Gathering data & getting  (Thanks sniger for all the screenshots of match end scoreboards) - 20%
  • Porting the current auto balancer algorithm to something I can test (I want to make sure the new one isn't worse. Also helps me understand old code)- 10%
  • Write a new auto-balancer in something I can test
  • Port new auto-balancer to M&B scripting language.



11
For those who can't figure out their faction id:
(click to show/hide)

12
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: February 24, 2014, 10:22:14 pm »
So, this may explain why the auto balancer is awful.   This is the power (energy) function it uses. Lets choose two example players Sir_TryHard_CarriesAlot and ArcherWith300Ping.

Its a 30 on 30. Sir_TryHard_CarriesAlot is on blue, and is an old school two-handed hero. He started the match of well, hitting the enemy murderball (massed infantry) like a tidal wave, killing 7 people while taking little damage. ArcherWith300Ping is a strength crutcher with a long bow. He hasn't had a good round so far, hasn't had a clear shot. So he says fuck it, and starts lobbing arrows into the melee at head height from a mile away.

Sir_TryHard_CarriesAlot is on a roll. He going to set a personal record this match. Sir_TryHard turns to fight the next enemy, and suddenly an arrow sprouts from his head. He goes down.

Lets take a look at how our two players did round 1.

P1 Sir_TryHard_CarriesAlot
Level: 30
Overall K/D from all matched: 10:1
Round 1 kills: 7 ( Had a bad round)
Round 1 Deaths: 1
Round 1 Points: 40
On Losing team(Re: Bad round)

P1 ArcherWith300Ping
Level: 31
Overall K/D from all matches: 1:4
Round 1 kills :0
Round 1 Deaths:0
Round 1 Points: 3
On winning team

Some boilerplate:
Code: [Select]

          (store_script_param, ":player_no", 1),
(try_begin),
(store_add, ":troop_no", "trp_player0_multiplayer", ":player_no"),
(troop_get_slot, ":level", ":troop_no", slot_troop_crpg_level),
(gt, ":level", 0),

(val_add, ":level", 5), #add 4 levels to everyone so every player counts higher
(try_begin),
(eq, "$g_multiplayer_game_type", multiplayer_game_type_rabbit),
(val_add, ":level", 25), #in rabbit, people by itself count more
(try_end),
Ok, so we have our new levels. Also, wtf is rabbit?
Sir_TryHard_CarriesAlot Level:  35
ArcherWith300Ping Level:         36

Code: [Select]
(player_get_score, ":kill_count", ":player_no"),
(player_get_death_count, ":death_count", ":player_no"), #get_death_count
So we've got our kill count.... wait... player_get_score?

P1 Sir_TryHard_CarriesAlot
Level: 35
kill_count: 40
deaths: 1

P2 ArcherWith300Ping
Level: 36
kill_count:10
deaths: 0

Code: [Select]
(val_div, ":kill_count", 10),
(val_sub, ":kill_count", ":death_count"),
(val_mul, ":kill_count", 3),
Well, at lease Sir_TryHard is still in the lead. He did such a good job.

P1 Sir_TryHard_CarriesAlot
Level: 35
kill_count: 9
deaths: 1

P2 ArcherWith300Ping
Level: 36
kill_count:3
deaths: 0

Code: [Select]
(store_mul, ":player_score_plus_death", ":level", 10),
(val_add, ":player_score_plus_death", ":kill_count"),
And ArcherWith300Ping takes the lead!

P1 Sir_TryHard_CarriesAlot
Level: 35
player_score_plus_death: 359

P2 ArcherWith300Ping
Level: 36
player_score_plus_death:363

Code: [Select]
(set_fixed_point_multiplier, 10000),
So  I *think* this is going to multiply any number we convert to fixed point by 10000 and divide everything converted by the same. However, I'm going to assume I'm wrong, and was put in to fix a bug with fixed point numbers or something.

Code: [Select]
(troop_get_slot, ":kd", ":troop_no", slot_troop_crpg_kd_ratio),
Yes! Go Sir_TryHard!

P1 Sir_TryHard_CarriesAlot
Level: 35
player_score_plus_death: 359

P2 ArcherWith300Ping
Level: 36
player_score_plus_death:363

Code: [Select]
(val_div, ":kd", 100),
(val_add, ":player_score_plus_death", ":kd"),
(val_max, ":player_score_plus_death", 0),
....
Maybe its stored its stored as 100x? Game doesn't seem to like fixed point numbers. Lets say it is.
Yeah... Go Sir_TryHard!

P1 Sir_TryHard_CarriesAlot
Level: 35
player_score_plus_death: 369

P2 ArcherWith300Ping
Level: 36
player_score_plus_death:363
Code: [Select]
(assign, ":power", 1),
(convert_to_fixed_point, ":player_score_plus_death"),
(convert_to_fixed_point, ":power"),

(val_mul, ":power", 11),
(val_div, ":power", 10),
(store_pow, ":tmp", ":player_score_plus_death", ":power"),
(assign, ":player_score_plus_death", ":tmp"),


(convert_from_fixed_point, ":player_score_plus_death"),
                        (assign, reg0, ":player_score_plus_death"), #What the function will return
Ok... So lets assume what I said earlier about that multiplier is true. So Sir_TryHard increases his lead! Looks like I was wrong. Looks like the balancer will rank Sir_TryHard as he deserves. Although I was expecting him to end up more than 1% better...
P1 Sir_TryHard_CarriesAlot
reg0: 666

P2 ArcherWith300Ping
reg0:654

Code: [Select]
(try_begin),
(player_get_team_no, ":team", ":player_no"),
(is_between, ":team", 0, 2),
(team_get_score, ":this_team_score", ":team"),
Wait, what? Whats going on?

P1 Sir_TryHard_CarriesAlot
reg0: 666
this_team_score:0

P2 ArcherWith300Ping
reg0:654
this_team_score:1
Code: [Select]
(store_sub, ":enemy_team", ":team", 1),
(val_abs, ":enemy_team"),
(team_get_score, ":enemy_team_score", ":team"),
Maybe this will be the boost Sir_TryHard deserves...

P1 Sir_TryHard_CarriesAlot
player_score_plus_death: 666
this_team_score:0
enemy_team_score:1

P2 ArcherWith300Ping
player_score_plus_death:654
this_team_score:1
enemy_team_score:0
Code: [Select]
(val_sub, ":this_team_score", ":enemy_team_score"),
(lt, ":this_team_score", 0),
Or not....
P1 Sir_TryHard_CarriesAlot
player_score_plus_death: 666
this_team_score:-1


P2 ArcherWith300Ping
player_score_plus_death:654
this_team_score:1


Code: [Select]
(val_mul, ":this_team_score", 30),
(val_add, reg0, ":this_team_score"),
And ArcherWith300Ping is now more useful (According to the autobalancer) than Sir_TryHard_CarriesAlot
P1 Sir_TryHard_CarriesAlot
player_score_plus_death: 636
this_team_score:-1


P2 ArcherWith300Ping
player_score_plus_death:654
this_team_score:1

Moral of the story is that the fame weights level too much, and overall K/D far too little.

13
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: February 21, 2014, 04:53:39 pm »
Here is the current team balance code, feel free to modify it directly:


Thanks! I'll do exactly that.

14
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: February 20, 2014, 08:58:38 pm »

BIGGEST ISSUE which should be rather simple to change is the following:
When a clan stack is going strong, the balancer will often STILL give good, well performing players to that side.

Let's consider a scenario that you might see quite often in game:
- A clan stacked team is winning 3-0 and the top half of their team has scores like 11/1, 8/2, 5/1 and many scores in the 100's.
- Meanwhile the other team has lost all the rounds that map, it's top half of the team has kdrs like 5/2, 4/3, 3/3 and scores in the 50's or so. 

In this situation, it has to keep the banner stack together, but shouldn't it give any "free agent or small clan" that is doing well to the OTHER TEAM?  And yet, it does not. 
This seems insane to me and it kills gameplay....
I think everyone's seen that happen. Thats why I included

The Balancer code has access to a useful number that abstracts a players "skill / worth" to the team (I'm at work right now, but I recall seeing a number in the log showing the points each team has after a round)

in the lists of assumptions I was making.  I know that the server calculates some kind of skill/worth value for every player, but I have no idea how its calculated or how useful it is. It doesn't really matter what system your using to balance teams if they rely on a bogus skill value.

15
Suggestions Corner / Re: Proposed change to team-balance algorithim
« on: February 20, 2014, 08:32:27 pm »
Thanks for the input Kafein, I'll see what I can do to re-arrange it so the energy function piece more prominent / succinct.

Pages: [1] 2