モロウィン、Xbox版はロード中にこっそり再起動してRAM解放してたってマジ!?

挿話
知らなかった。初代Xbox版のThe Elder Scrolls III: Morrowindは、RAMを解放するために、ユーザーに気づかれないうちにロード画面中にXbox本体を再起動することがあったらしい。

どんな話題?

『Morrowind』の裏技:まさかのリブート戦術!?

伝説のRPG『Morrowind』、広大な世界をシームレスに冒険できる…と思いきや、実はロード画面の裏で、Xbox本体が「強制再起動」していた!?開発キットを使った検証で、ロード中にOSを再起動させる「XLaunchNewImage」という命令が使われていることが判明!

ファイルサイズを極限まで小さくするため、ドアを必ず閉める、アイテムは死体に隠す…なんて涙ぐましい努力も。今のリッチなゲーム開発環境からは想像もできない、ギリギリの戦いがあったんですね。

そういえば、昔、友達の家で『Morrowind』を遊んだ時、ロードが「信じられないくらい」長くて、まるで「時間がねじ曲がった」かのような感覚に…。もしかして、その間Xboxは必死に「頑張って」いたのかも!?当時の開発者たちの熱意に、改めて頭が下がる思いです。


イメージ画像 「The Elder Scrolls III: Morrowind」の初代Xbox版は、ロード画面中にRAMを解放するため、ユーザーに気づかれずにXbox本体を再起動することがあった。

みんなの反応


多分、主人公が大陸を一っ飛びした時にXboxが爆発するのを防ぐためだったんだろうな。
デベロッパーキットでテストして、その方法をちょっと解説してるぞ:
ファイルサイズをできるだけ小さく保つのが重要だった。だから、ドアを閉めたり、物をむき出しで保管したりしない癖がついた。常にトランクか死体に保管しろと。大したことないように聞こえるけど、時間が経つにつれて貴重なメガバイトを節約できたんだ。
それが俺が最初にMorrowindをプレイした方法だ。まさに言われてる通り最悪だったぜ。
システム全体をリブートする方が、メモリ内のデータをアンロードするよりも早いって、かなりワイルドだな。
俺がXboxを買うきっかけになったゲームだ。Toonamiでやってた広告で、世界がどれだけ広大で詳細に描かれているかって語られてて、即決だった。俺の若い心に、ゲームの可能性を大きく広げてくれた
リソースが限られたゲーム機にしがみついていた時代が懐かしいな。最近業界に入るプログラマーは、パフォーマンスとかメモリ使用量、最適化とかを気にしたことがないんだろ。いつも十分なリソースがあるのが当たり前なんだから。
昔々、組み込み開発者として、ある組み込みハードウェアでTCP/IPスタックを動作させる仕事をしていた。その「オペレーティングシステム」は原始的すぎて、Cのソースコードとして提供されていて、ある行から自分のコードを編集するように指示されていた。
前にもこれについて聞いたことがあるような気がするんだけど、他のゲームとかハードでもやってたような…。でも、ネットで具体的なものが見つからないんだよな…。
セーブファイルのサイズが大きくなりすぎて、RAMが限界だってエラーが出て、プレイをやめざるを得なくなった。新しいXboxを買った時に、物理的なコピーを失くしてしまったから、いつかやり直したいと思ってる。
Morrowindは時代を先取りしてたよな。すごいゲームだったけど、バグも多かった。OblivionとかSkyrimを知らなかったら、あんなゲームができるなんて想像もできなかっただろうな。
バグじゃなくて仕様だ。
新しいセルに入った途端に、いきなり死ぬことあったよね。
あのロード画面はマジで長かった。
PCでプレイしてたのを覚えてるけど、友達の家でXboxでプレイしたら、フレームレートがマジでヤバかった
いつもこのちょっとした事実に感心してた。
時々、ロード時間が異常に長かったのはそういうことか。
ゲームのロード画面の裏側で何が起こってるのか見るのはマジで面白い。
IIRC、戦利品を漁った後の死体を消して、容量を空けることもできた(たぶん)。
これがきっかけで、X1/PS4のタイトルで全く同じトリックを実装したんだ。元々は、必要になったメモリの問題が解決するまでのプレースホルダーのつもりだったんだけど、結局そのまま発売された。その後すぐにスタジオを辞めたから、ちゃんと修正されたかどうかは知らない(賭けるなら直ってない方に賭けるけど)。
大ファンだったから、ロード時間がバカみたいに長かったXboxでもPCでもプレイしてた。セーブデータをロードして、朝食を作って帰ってきたら、ロード画面のヒントをいくつか読むのに間に合うくらいだった。
MOD入れたXbox持ってたら、MorrowindのPC版MODをXboxのハードディスクにあるフォルダに追加して、コンソールで実行できるってことを発見したんだ。若い頃はマジで衝撃だった。コンソール版Morrowindをbetter bodies modでプレイしてたんだぜ。笑
Overflow Loot Bag(あふれかえる戦利品袋)
あのゲームは素晴らしかったけど、クラッシュもめちゃくちゃ多かった。ボスにたどり着く頃には、ゲームがクラッシュせずにそこまでたどり着けるかが唯一の苦労だった。
ゲームのロードもマジで遅かったから、フリーズしたのか、本当にロードしてるのか、数分待ってみないとわからなかったんだよな。
今でも最高のゲームだよ。
ジャンプしてドアを開けるとゲームがクラッシュしたのは、これが原因?わかる人にはわかる。
2000年代初頭のゲームデザインの極み。Morrowindはハードウェアに対して野心的すぎたから、ロード画面中にコンソール自体が休憩しないと続けられなかったんだな。
今じゃXboxはジョークになっちまったな。悲しいけど、PS5を買えば最終的には全てのゲームをプレイできるってわかったから嬉しい。

Xbox版Morrowind、驚異の最適化術

はい、承知いたしました。「Morrowind, Xbox, optimization」をテーマにした解説記事を以下に作成します。 Xbox版『Morrowind』に見る驚きの最適化技術:ロード中の再起動とRAM解放の秘密 『Morrowind』、フルネームは『The Elder Scrolls III: Morrowind』は、2002年にBethesda Softworksから発売されたオープンワールドRPGの傑作です。PC版の圧倒的な自由度と複雑なシステムでゲーマーを魅了しましたが、その翌年には初代Xboxにも移植されました。しかし、当時のXboxのハードウェアスペックはPC版に比べて遥かに低いものであり、広大な世界を快適に動作させるためには並大抵ではない最適化が必要でした。 ゲーム開発者たちは、限られたRAM容量(当時のXboxは64MB)を最大限に活用するために、驚くべき技術を駆使しました。その一つが、ロード中の再起動という手法です。これは、エリアの切り替えなど、大規模なデータ読み込みが必要な際に、ゲームを一時的に再起動させ、不要なデータをRAMから解放するというものです。 一見すると、再起動は処理を中断させるため、逆効果に思えるかもしれません。しかし、当時のXboxのアーキテクチャでは、完全にRAMをクリーンな状態に戻すためには、OSレベルでの再起動が最も確実な方法でした。通常のゲームプレイ中には保持しておく必要のない一時的なデータを、ロード画面という中断を許容できるタイミングで消去することで、ゲーム全体のパフォーマンスを向上させていたのです。 この技術は、完全にシームレスな体験とは言えませんが、当時のハードウェア制約下では、ゲームの安定性とプレイアビリティを両立させるための苦肉の策だったと言えるでしょう。開発者たちは、グラフィックの品質を落としたり、ロード時間を可能な限り短縮したりするなど、様々な工夫を凝らしていました。 具体的に、MorrowindXbox版における再起動によるRAM解放の効果を数値化するのは困難ですが、この技術がなければ、ゲームが頻繁にクラッシュしたり、パフォーマンスが著しく低下したりしていた可能性は否定できません。ゲームの規模が拡大するにつれて、この種のメモリ管理はますます重要になっています。 現代のゲーム機やPCでは、RAM容量が大幅に増加し、より高度なメモリ管理技術が採用されているため、ロード中の再起動のような力技は必要なくなりました。しかし、XboxMorrowind最適化技術は、限られたリソースの中で最大限のパフォーマンスを引き出すという、ゲーム開発における永遠の課題に対する創意工夫を示す好例と言えるでしょう。 このように、MorrowindXbox版は、単なる移植作品ではなく、開発者たちの知恵と努力の結晶でした。その最適化技術は、今日のゲーム開発にも通じる、重要な教訓を与えてくれます。

コメント