I'm sure you've all thought of this before, but here are a few suggestions from a coder's point of view:
To reduce stress on the highscore page:
1) Cache it and check for version number only, so you don't re-download the whole table each time, only if the version number has increased. (Or last-changed date)
2) Make sure it isn't an http download, but make a custom protocol that requires far less bytes.
Example:
>> GETVER 12050125 21
(command) (hold) (room)
<< 0000013
(version)
|| Check for version mismatch
>> GETFUL 12050125 21
<< *data*
It's a matter of a few bytes that get spared, but remember - multiplication can create powerful numbers.
We're talking.. maybe a thousand requests a day? (I don't know!)
3) Of course this is essential in improving data travel, make a really compact way of transferring the data.
Instead of transferring, say, an html file, transfer compact data and then parse it to an html file.
Example, Replace:
<html><body><table>
<tr><td>Name</td><td>Score</td></tr>
<tr><td>Blah</td><td>12345</td></tr>
<tr><td>xyz</td><td>1337</td></tr>
With:
Blah(NUL)12345(NUL)
xyz(NUL)1337(NUL)
This saves loads of bandwidth too.
Now I'm sure most if not all of these have already been thought about, and probably even implemented, but I'm just re-recommending it.
-Insane