従来の MMO は、Linux 上で実行される C++ サーバー アプリケーションに基づいており、OpenGL または DirectX を使用して、バックエンド ストレージおよびファット クライアント アプリケーション用のデータベースと通信します。
多くの場合、クライアントとサーバーにはスクリプト エンジンが組み込まれており、動作を高水準言語で定義できます。EVE は、大部分が Python で実装され、大部分が C++ で高レベルのスクリプトを使用するのではなく、Stackless 上で実行されるという点で注目に値します。
通常、サーバーは接続されたクライアントからの要求を読み取り、それらを処理してゲームの仕組みを強制し、クライアントに更新を送信するループに置かれます。UDP を使用して遅延と古いデータの再送信を最小限に抑えることができますが、RPG は一般に単収縮ゲームプレイを使用しないため、通常は TCP/IP を選択することをお勧めします。Comet または BOSH を使用して、Web ベースの MMO の HTTP を介した双方向通信を可能にすることができます。Web ソケットは、すぐに適切なオプションとなるでしょう。
今日新しい MMO を構築する場合、おそらく XMPP、BOSH を使用し、JavaScript でクライアントを構築します。これにより、ファット クライアントをダウンロードしなくても動作し、XMPP ベースの IM および音声システム (gchat など) と相互運用できるようになります。WebGL が広くサポートされると、ブラウザ ベースの 3D 仮想世界も可能になります。
環境は大きすぎて 1 つのプロセスでシミュレートできないため、通常は、世界の小さな領域をシミュレートするプロセスごとに地理的に分割されます。多くの場合、世界には最適な人口が存在するため、さまざまな人々が使用する複数のコピー (シャード) が実行されます。
オペレーション ディレクターであった Ian Wilkes による Second Life アーキテクチャに関する優れたプレゼンテーションがあります: http://www.infoq.com/presentations/Second-Life-Ian-Wilkes
Second Life テクノロジーに関する私の講演のほとんどは、私のブログ ( http://jimpurbrick.com ) からリンクされています。