User:Rupert: Difference between revisions

From The Urban Dead Wiki
Jump to navigationJump to search
Line 2: Line 2:
__TOC__
__TOC__
= News =
= News =
No updates, most of my alts are dead. --[[User:Rupert|Rupert]] 06:37, 18 March 2008 (UTC)
Cool! Bargain Hunting doubles your odds of finding something in a mall, even if the mall is ruined! This means the best place to find first aid kits when everything is ruined is still a mall. A ruined mall beats a lit hospital. Ha! --[[User:Rupert|Rupert]] 04:01, 20 March 2008 (UTC)
Most of my alts are now revived. I'm seeing some strange things with the odds since The Dead have trashed most of Malton. On March 24 all my alts suddenly had an obscene success rate for finding syringes. And what's with the high success rate in dark malls? --[[User:Rupert|Rupert]] 05:48, 27 March 2008 (UTC)
I continue to find First Aid Kits at an amazing rate. --[[User:Rupert|Rupert]] 03:08, 28 March 2008 (UTC)
No updates. Stopped playing when The Dead were around because I felt the changes to the game's search odds were a violation of the spirit of the game. Let The Dead win, Kevan, don't change the search odds in an attempt to stop them. I've been playing again lately, as zombies, and it's fun. No searching though. I've been collecting stats on zombie attack rates instead (debarricading, equipment smashing, mauling, biting). If anyone resurrects any of my alts, I'll look into the new drug store search odds. I hope the drastic reduction is true. --[[User:Rupert|Rupert]] 21:24, 16 October 2008 (BST)
The odds of finding a syringe have dropped:
<table border=1 style="text-align:right;border-collapse:collapse;">
<tr style="background:#ccf; text-align:center;">
  <th>item</th>
  <th>percent</th>
  <th>AP</th>
  <th>building</th>
  <th>inside</th>
  <th>cond</th>
  <th>lights</th>
  <th>shopping</th>
  <th>bargain</th>
</tr>
<tr style="background:#dfd"> <td>syringe (now)</td> <td>8.71%</td> <td>11.48 AP</td> <td>necrotech</td> <td>in</td> <td>okay</td> <td>lit</td> <td>-</td> <td>-</td> </tr>
<tr style="background:#ddf"> <td>syringe (old)</td> <td>12.58%</td> <td>7.95 AP</td> <td>necrotech</td> <td>in</td> <td>okay</td> <td>lit</td> <td>-</td> <td>-</td> </tr>
<tr style="background:#dfd"> <td>first-aid kit (now)</td> <td>19.69%</td> <td>5.08 AP</td> <td>mall_drug_store</td> <td>in</td> <td>okay</td> <td>lit</td> <td>shopping</td> <td>bargain</td> </tr>
<tr style="background:#dfd"> <td></td> <td>18.23%</td> <td>5.48 AP</td> <td>hospital</td> <td>in</td> <td>okay</td> <td>lit</td> <td>-</td> <td>-</td> </tr>
<tr style="background:#ddf"> <td>first-aid kit (old)</td> <td>56.08%</td> <td>1.78 AP</td> <td>mall_drug_store</td> <td>in</td> <td>okay</td> <td>lit</td> <td>shopping</td> <td>bargain</td> </tr>
<tr style="background:#ddf"> <td></td> <td>17.87%</td> <td>5.60 AP</td> <td>hospital</td> <td>in</td> <td>okay</td> <td>lit</td> <td>-</td> <td>-</td> </tr>
</table>
--[[User:Rupert|Rupert]] 22:43, 20 November 2008 (UTC)


The odds of finding a syringe are back up to 13%. Generators don't make any difference. I added Confidence Intervals to my data. Consider the binomial likelihood function: L = (n choose y) * p^(y) * (1-p)^(n-y), where n is the number of searches, y is the number of successes, p is the predicted search rate and L is the likelihood that the predicted search rate is correct. To compute the 50% confidence interval I throw away the first and last 25% of the area under the curve. This interval contains 50% of the likelihood. If p=10% and the 50% confidence interval is -1/+2 then there is a 50% chance the true search rate is in the interval 9% to 12%. --[[User:Rupert|Rupert]] 03:02, 12 April 2009 (BST)
The odds of finding a syringe are back up to 13%. Generators don't make any difference. I added Confidence Intervals to my data. Consider the binomial likelihood function: L = (n choose y) * p^(y) * (1-p)^(n-y), where n is the number of searches, y is the number of successes, p is the predicted search rate and L is the likelihood that the predicted search rate is correct. To compute the 50% confidence interval I throw away the first and last 25% of the area under the curve. This interval contains 50% of the likelihood. If p=10% and the 50% confidence interval is -1/+2 then there is a 50% chance the true search rate is in the interval 9% to 12%. --[[User:Rupert|Rupert]] 03:02, 12 April 2009 (BST)

Revision as of 22:07, 12 April 2009

I am a stats junkie. I wrote my own Javascript/PHP page that scrapes search results from the HTML as I play Urban Dead.

News

The odds of finding a syringe are back up to 13%. Generators don't make any difference. I added Confidence Intervals to my data. Consider the binomial likelihood function: L = (n choose y) * p^(y) * (1-p)^(n-y), where n is the number of searches, y is the number of successes, p is the predicted search rate and L is the likelihood that the predicted search rate is correct. To compute the 50% confidence interval I throw away the first and last 25% of the area under the curve. This interval contains 50% of the likelihood. If p=10% and the 50% confidence interval is -1/+2 then there is a 50% chance the true search rate is in the interval 9% to 12%. --Rupert 03:02, 12 April 2009 (BST)

Zombie Attack Odds

The results of my zombie attack rates are this: percentages are as advertised. Debarricading averages 25% at most, most of the time it seems like 20%. It varies quite a bit per zombie. A good basher is around 30%, a poor basher is below 20%. I occasionally find myself getting the zerg flag for no reason, perhaps someone in the same suburb on the same subnet? Zerg flags are obvious: 30 bashes at less than 10% success. No other attack is susceptible to these erroneous zerg flags. If I use a proxy myself, the problem goes away. Equipment bashing is at least 50% and often 75%. Maul: 53% or so. Bite: 30%. These are fully trained zombies by the way. This is based on several thousand combined samples, but I kept each day separate and guessed at the combined average (too damn lazy). --Rupert 05:18, 15 November 2008 (UTC)

Okay, okay, fine. I combined all my samples. I was shocked at how many I had, I guess I've been playing zombies for a while!

maul=6213/12114 = 51 %

bite=312/1131 = 27 %

bash=802/3181 = 25 %

equip=86/194 = 44 %

Latest

These results were collected starting April '09 or so. --Rupert 02:48, 12 April 2009 (BST)

By Building

building_type cond lights searches item count percent 50%
confidence
90%
confidence
AP
auto repairokaylit226nothing17276.1%-2.1/+1.7%-5.0/+4.3%1.3
crowbar135.8%-0.8/+1.3%-2.0/+3.2%17.2
spray can125.3%-0.7/+1.4%-1.9/+3.1%18.9
fuel can114.9%-0.7/+1.3%-1.8/+3.0%20.4
bottle of beer52.2%-0.3/+1.1%-1.0/+2.4%45.5
newspaper52.2%-0.3/+1.1%-1.0/+2.4%45.5
fire axe52.2%-0.3/+1.1%-1.0/+2.4%45.5
toolbox31.3%-0.2/+0.9%-0.7/+2.1%76.9
dark241nothing19078.8%-1.9/+1.6%-4.7/+4.0%1.3
spray can145.8%-0.7/+1.3%-1.9/+3.1%17.2
crowbar135.4%-0.7/+1.3%-1.9/+3.0%18.5
fuel can135.4%-0.7/+1.3%-1.9/+3.0%18.5
newspaper52.1%-0.4/+1.0%-1.0/+2.2%47.6
toolbox31.2%-0.2/+0.9%-0.6/+2.0%83.3
fire axe31.2%-0.2/+0.9%-0.6/+2.0%83.3
factoryokaylit454nothing33774.2%-1.4/+1.3%-3.5/+3.2%1.3
length of pipe337.3%-0.7/+1.0%-1.8/+2.3%13.7
fuel can224.8%-0.5/+0.9%-1.3/+2.0%20.8
crowbar194.2%-0.5/+0.8%-1.3/+1.9%23.8
portable generator163.5%-0.4/+0.8%-1.1/+1.8%28.6
toolbox163.5%-0.4/+0.8%-1.1/+1.8%28.6
fire axe112.4%-0.3/+0.7%-0.9/+1.6%41.7
hospitalokaylit1280nothing95174.3%-0.9/+0.8%-2.1/+1.9%1.3
first-aid kit32925.7%-0.8/+0.9%-1.9/+2.1%3.9
dark1323nothing105980.0%-0.7/+0.8%-1.8/+1.8%1.2
first-aid kit26420.0%-0.8/+0.7%-1.8/+1.8%5.0
necrotechokaylit447nothing34577.2%-1.5/+1.2%-3.5/+3.1%1.3
syringe6213.9%-1.0/+1.2%-2.5/+2.9%7.2
DNA extractor245.4%-0.6/+0.9%-1.5/+2.1%18.5
GPS unit163.6%-0.5/+0.8%-1.2/+1.8%27.8
dark458nothing36579.7%-1.4/+1.2%-3.3/+2.9%1.3
syringe5912.9%-0.9/+1.2%-2.3/+2.8%7.8
GPS unit194.1%-0.4/+0.8%-1.2/+1.9%24.4
DNA extractor153.3%-0.4/+0.7%-1.1/+1.7%30.3

Mall

building_type cond lights bargain searches item count percent 50%
confidence
90%
confidence
AP
mall_drug_storeokaylitbargain678nothing56383.0%-1.0/+0.9%-2.5/+2.3%1.2
first-aid kit11517.0%-0.9/+1.0%-2.3/+2.5%5.9
no bargain724nothing66091.2%-0.8/+0.6%-2.0/+1.5%1.1
first-aid kit648.8%-0.6/+0.8%-1.5/+2.0%11.4

Result Set 2

User:Rupert/Results2

Result Set 1

User:Rupert/Results1

Methods

I play every page of Urban Dead through a Javascript page on my home computer that I coded up using the Prototype Javascript library (awesome) that uses AJAX HttpRequests to a php proxy (super awesome). That's because Javascript can't contact urbandead.com directly due to the security sandbox, but it can contact php on the same machine and php can contact any website it wishes, so it's more of a two-level proxy, sometimes three. I can then over-analyze the HTML with Javascript till my heart's content, extracting all sorts of information, as well as auto-searching (a fire-and-forget time saver). Javascript is surprisingly good at this and fun to program.

Each search result scraped by Javascript is sent via another AJAX request to a similar php page that stores the data in a MySQL table with these columns:

+--------------------+---------------------+------+-----+---------+-------+
| Field              | Type                | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+---------+-------+
| name               | char(25)            | NO   |     |         |       |
| date               | date                | YES  |     | NULL    |       |
| building_name      | char(40)            | NO   |     |         |       |
| building_type      | char(20)            | NO   |     |         |       |
| inside             | tinyint(3) unsigned | NO   |     |         |       |
| building_condition | char(10)            | NO   |     |         |       |
| building_light     | tinyint(3) unsigned | NO   |     |         |       |
| has_shopping       | tinyint(3) unsigned | NO   |     |         |       |
| has_bargain        | tinyint(3) unsigned | NO   |     |         |       |
| item_found         | char(40)            | NO   |     |         |       |
| has_necro          | tinyint(3) unsigned | NO   |     | 0       |       |
| has_necro_lab      | tinyint(3) unsigned | NO   |     | 0       |       |
+--------------------+---------------------+------+-----+---------+-------+

When I'm done playing, I run a SQL script that copies that data into a temporary table, transforming all items named "pistol(*)" to just "pistol" because I don't care about the odds of pistol ammo right now, same for "shotgun(*)". Then I transform "NecroTech syringe" and "revivification syringe" into just "syringe", "rusty knife" and "pocket knife" and "hunting knife" into just "knife". Then I count identical rows. This condenses the table from thousands of rows (one per search) to only hundreds, at which point it looks like this:

+-------------+----+-----------+-------+----------+---------+-------+-----+----------------+-------+
| building    | in | condition | light | shopping | bargain | necro | lab | item           | count |
+-------------+----+-----------+-------+----------+---------+-------+-----+----------------+-------+
| auto repair |  1 | okay      |     1 |        0 |       0 |     1 |   1 | bottle of beer |     2 |
| auto repair |  1 | okay      |     1 |        0 |       0 |     1 |   1 | crowbar        |     1 |
| auto repair |  1 | okay      |     1 |        0 |       0 |     1 |   1 | fire axe       |     1 |
| auto repair |  1 | okay      |     1 |        0 |       0 |     1 |   1 | fuel can       |     4 |
| auto repair |  1 | okay      |     1 |        0 |       0 |     1 |   1 | nothing        |    34 |
| auto repair |  1 | okay      |     1 |        0 |       0 |     1 |   1 | spray can      |     3 |
| auto repair |  1 | okay      |     1 |        1 |       0 |     0 |   0 | bottle of beer |     1 |
| auto repair |  1 | okay      |     1 |        1 |       0 |     0 |   0 | crowbar        |     3 |
| auto repair |  1 | okay      |     1 |        1 |       0 |     0 |   0 | fire axe       |     1 |
| auto repair |  1 | okay      |     1 |        1 |       0 |     0 |   0 | fuel can       |     2 |
+-------------+----+-----------+-------+----------+---------+-------+-----+----------------+-------+

Then the script builds up a second temporary table populated by three queries on the first temp table:

  1. all non-mall and non-necrotech rows grouped by building type, light, and item
  2. all malls and mall substores further grouped by has_shopping and has_bargain
  3. all necrotechs grouped by the same as (1) but also by has_necro and has_lab (because the odds appear to be different)

Then I order the table by building and condition to get the "By Building" table, and by item for the "By Item" table. Then I execute a php page to get the html tables to paste into this lovely wiki.