HeadlinesBriefing favicon HeadlinesBriefing.com

2004年56kダイアルアップでRuneScape

Hacker News •
×

2004年、母が電話をかけると落ちる56kモデムでRuneScapeをプレイした。最大で数千人がプレイできる3Dワールドがブラウザ内で完全に動作した。これは、バイトを無駄にしないという継続的な訓練のおかげだった。北のタイルをクリックすると、バイトがクリックからサーバーを経由して別のプレイヤーの画面に届く。中央の fountain、Varrock Square。詳細は2004年のRuneScape 2クライアントを逆コンパイルしたものから得られた。制約は厳しかった:56kモデムはダウンストリームで56キリビット/秒に同期し、約5KB/秒、アップストリームはもっと少ない。2000年にはブロードバンドが利用可能だったが、イギリスの多くの家庭は2000年代後半までダイアルアップを継続した。Javaアプレットはセキュリティサンドボックスで動作し、ネイティブソケットとUDPをブロックする。ゲームサーバーは約600ミリ秒の離散サイクルで進行する。ログインハンドシェイク後、小さな暗号化レイヤーが設定される。各パケットは操作コードバイトで始まり、ISAACと呼ばれるストリーム暗号で暗号化される。2つのストリームが存在する——クライアントからサーバーへのもの、逆方向のもの。両方の側は両方のストリームが必要である。クライアントは2つのシード整数を生成する。サーバーはハンドシェイクの一部として他の2つを提供する。サーバーからクライアントへのストリームは、各単語に50を加算して方向を分離する。出力時、一つの行が操作コードを暗号化する:putOpcode(int opcode) { this.putByte(opcode + this.outboundCipher.value()); } 入力時、ミラーがそれを取得する:currentOpcode = (currentOpcode - this.inboundCipher.value()) & 0xFF;操作コードのみが暗号化され、サードパーティのパーサーからの保護に役立つ。歩行リクエストを送信すると、ネットワーキングが発生する前に幅優先探索がトリガーされる。