Technology ED.315

11年かけた大作戦!昔の宇宙ゲームを2人で遊べるように改造した兄弟の話

Two Brothers Spent 11 Years Hacking 1990's Wing Commander to Add Co-op

要約ようやくThe story in English

How two brothers spent over a decade reverse-engineering a classic single-player DOS flight simulator so they could finally fly wing-to-wing.

Two Brothers Spent 11 Years Hacking 1990's Wing Commander to Add Co-op

The same story at several JLPT levels. Tap a level to switch, and all levels are free.

30年以上いじょう前まえの古ふるいゲームが、いま新あたらしく生うまれ変かわりました。
1990年に発売はつばいされた「ウイングコマンダー」というゲームです。
これは、ひとりで宇宙うちゅうを飛とぶパソコンのゲームでした。
でも、ある兄弟きょうだいが11年かけて、ふたりで遊あそべるようにしました。
インターネットをつかって、いっしょに宇宙うちゅうの旅たびに出でられます。

第1章: ふたりで飛びたい子どもの夢

ダニエルさんとパトリックさんは兄弟きょうだいです。
ふたりは子こどものころ、このゲームが大好だいすきでした。
ひとつのパソコンの前まえに、ならんで座すわって遊あそびました。
ひとりが船ふねをうごかして、もうひとりがビームをうちました。
本当ほんとうは、それぞれじぶんの船ふねに乗のって、いっしょに戦たたかいたいと思おもっていました。
子こどものころの夢ゆめをかなえるため、ふたりは2015年に動うごき出だしました。

第2章: メモリの数字をさがす旅

この古ふるいゲームの作つくり方かたは、どこにも残のこっていません。
そこでふたりは、パソコンのメモリの中身なかみを調しらべることにしました。
まず、宇宙うちゅうで船ふねをとめて、メモリの数字すうじを記録きろくします。
そのあと、船ふねをすこし前まえにうごかして、もういちど記録きろくします。
変かわった数字すうじをさがせば、船ふねの場所ばしょがわかります。
こうして、船ふねの場所ばしょやスピードを示しめす数字すうじをみつけました。
GIGAZINEによると、ゲームのプログラムを上手じょうずに使つかって、ビームをうつ命令めいれいも動うごかせるようにしました。
宇宙うちゅうのいしや敵てきの動うごきをふたりで合あわせるのは、とても大変たいへんでした。
ふたりはあきらめずに、問題もんだいをひとつずつ解決かいけつしていきました。

第3章: ネットと声でつながる宇宙

2020年に、いちどゲームは遊あそべるようになりました。
しかし、友ともだちと簡単かんたんにつなぐ方法ほうほうがなくて、作業さぎょうは止とまりました。
そして2026年、新あたらしい技術ぎじゅつをつかって、ついに完成かんせいさせました。
いまは、インターネットのブラウザですぐに動うごきます。
ゲームのデータを用意よういして、画面がめんに入いれるだけです。
秘密ひみつのコードを入いれると、遠とおくの友ともだちとすぐにつながります。
さらに、AIの力ちからも借かりて、声こえで話はなせる機能きのうもつけました。
画面がめんのむこうの仲間なかまと、笑わらいながら宇宙うちゅうを飛とぶことができます。

子こどものころの小ちいさな夢ゆめが、11年かけて、本当ほんとうの星空ほしぞらになりました。

1990年の名作めいさくゲームを、2人の兄弟きょうだいが11年かけて2人協力きょうりょくプレイに変かえてしまいました。
そのゲームは、昔むかしのパソコンで大人気だいにんきだった「ウイングコマンダー」です。
もともと、1人のプレイヤーだけで戦たたかう宇宙うちゅう戦闘せんとうシミュレーターでした。
しかし今いま、2人が別々べつべつの戦闘せんとう機きに乗のって一緒いっしょに宇宙うちゅうを飛とべるようになったのです。

第1章: ひとつの席から2機の戦闘機へ

この挑戦ちょうせんを始はじめたのは、ダニエル・ホーンさんとパトリック・ホーンさんの兄弟きょうだいです。
子こどものころ、2人は1台のパソコンに並ならんでこのゲームを夢中むちゅうで遊あそんでいました。
1人が操縦そうじゅうをして、もう1人が攻撃こうげきボタンを押おすという方法ほうほうで協力きょうりょくしていたのです。
でも2人は、いつか別々べつべつの機体きたいを操縦そうじゅうして、仲間なかまとして飛とびたいとずっと願ねがっていました。
その子こどものころの夢ゆめをかなえるため、兄弟きょうだいは2015年10月つき4日に開発かいはつを始はじめました。

第2章: 640キロバイトの宇宙を調べる

昔むかしのDOSゲームは、使つかえるメモリが640キロバイトと非常ひじょうに限かぎられていました。
兄弟きょうだいは、ゲームの全ぜんデータが小ちいさなメモリ領域りょういきに収おさまっていることに注目ちゅうもくしました。
そして、エミュレーターの分析ぶんせき機能きのうを使つかって、メモリの中身なかみを詳くわしく調しらべ始はじめました。
宇宙うちゅう空間くうかんで機体きたいを止とめたときと、動うごかしたときのメモリを何回なんかいも比くらべたのです。
根気こんき強つよい作業さぎょうの結果けっか、兄弟きょうだいは機体きたいの位置いちを示しめすメモリアドレスをついに突つき止とめました。
しかし、メモリの数値すうちを書かき換かえるだけでは、武器ぶきを発射はっしゃすることはできませんでした。
そこで兄弟きょうだいは、ゲーム自身じしんが持もっているプログラムの命令めいれいを横取よこどりする仕組しくみを作つくりました。
使つかわれていない文字もじの場所ばしょに新あたらしい命令めいれいを書かき込こみ、攻撃こうげきを呼よび出だせるようにしたのです。
さらに、飛とんでくる隕石せきやレーザー弾だんが2人の画面がめんでずれないように修正しゅうせいも重かさねました。

第3章: ブラウザと最新技術での復活

GIGAZINEの報道ほうどうによると、ゲームは2020年に一度いちど動うごくようになっていました。
しかし、友人ゆうじんと簡単かんたんに接続せつぞくして遊あそぶ方法ほうほうが見みつからず、プロジェクトは一度いちど眠ねむりにつきます。
それから数年すうねんが過すぎ、最新さいしんの技術ぎじゅつによって計画けいかくが再ふたたび動うごき出だしました。
兄弟きょうだいはWebRTCという通信つうしん技術ぎじゅつを使つかい、ゲームをブラウザ上じょうで動うごくように作つくり直なおしたのです。
さらにAIの力ちからも借かりて、会話かいわしながら遊あそべる音声おんせい通話つうわ機能きのうも追加ついかしました。
プレイヤーはゲームのデータを用意よういして、ブラウザに置おくだけで遊あそぶことができます。
合言葉あいことばとなるコードを入力にゅうりょくすれば、遠とおくの友達ともだちとすぐに同おなじ宇宙うちゅうへ飛とび出だせます。

子こどものころに小ちいさな画面がめんの前まえで話はなした夢ゆめは、11年という長ながい旅たびを経へて、本物ほんものの星空ほしぞらへと届とどきました。

かつて一ひとつのキーボードに寄より添そい、一方いっぽうが操縦そうじゅう桿を握にぎり、もう一方いっぽうがレーザー発射はっしゃとアフターバーナーの操作そうさを受うけ持もちながら宇宙うちゅうを飛とんだ幼おさない兄弟きょうだいがいました。1990年に発売はつばいされたMS-DOS向むけ名作めいさく宇宙うちゅう戦闘せんとうシミュレーションゲーム『ウイングコマンダー』は、本来ほんらいは一人いちにんプレイ専用せんようとして設計せっけいされた作品さくひんです。あれから長ながい年月としつきを経へて、その兄弟きょうだいが11年間にわたる執念しゅうねんのリバースエンジニアリングを完遂かんすいし、互たがいに独立どくりつした戦闘せんとう機きを駆かって同おなじ宙ちゅう域いきで戦たたかう本物ほんものの2人協力きょうりょくプレイを実現じつげんさせました。

テクノロジー系けいメディアのGIGAZINEなどが報ほうじたところによると、このプロジェクト「Wing Commander Together」を成なし遂とげたのはダニエル・ホーン氏しとパトリック・ホーン氏しの兄弟きょうだいです。

第1章: 640KBの深淵を探る地道なメモリ解析

兄弟きょうだいが技術ぎじゅつ的てきな挑戦ちょうせんへと舵かじを切きったのは、2015年10月つき4日のことでした。彼かれらは、当時とうじのDOS環境かんきょうにおける使用しよう可能かのうメモリである640KBの領域りょういき、とりわけ約やく64KBのデータセグメント内ないにゲームの全ぜん状態じょうたいが収おさまっている可能かのう性せいに目めを留とめました。もしメモリ内部ないぶから自じ機きや僚機きの三次元さんじげん座標ざひょうデータを特定とくていできれば、外部がいぶからネットワークパケットを送おくることで僚機きを直接ちょくせつ制御せいぎょできるのではないか、という着想ちゃくそうがすべての発端ほったんでした。

開発かいはつはDOSBoxのデバッガーを駆使くしした極きわめて泥臭どろくさい作業さぎょうから始はじまりました。周囲しゅういに他たの宇宙船うちゅうせんが存在そんざいしない空間くうかんまで進すすみ、機体きたいが静止せいししている状態じょうたいと移動いどうした直後ちょくごの状態じょうたいの双方そうほうでメモリのスナップショットを取得しゅとくして、バイナリ比較ひかくを実施じっししたのです。画面がめん上じょうのチェイスカメラの挙動きょどうと照てらし合あわせながら30以上いじょうの候補こうほ領域りょういきを絞しぼり込こみ、ついにメモリ番地ばんち「13D3:A9C2」に自じ機きの位置いち座標ざひょうが格納かくのうされている事実じじつを突つき止とめました。さらに、速度そくどデータが「CAE2」に存在そんざいすることや、右みぎ、上うえ、前方ぜんぽうを指さす各種かくしゅ方向ほうこうベクトルの格納かくのう場所ばしょも次々つぎつぎと割わり出だしていきました。

第2章: 内部関数の乗っ取りと同期の壁

しかし、単たんにメモリ内ないの座標ざひょう数値すうちを上書うわがきするだけでは、戦闘せんとうシミュレーターとしての真しんの協力きょうりょくプレイは成立せいりつしませんでした。僚機きが兵へい装そうを発射しはっしゃしたり被弾ひだん判定はんていを処理しょりしたりするには、ゲームプログラムそのものが備そなえる関数かんすうを正規せいきの手順てじゅんで呼よび出ださなければならなかったためです。

そこで兄弟きょうだいは、ゲーム内ないの関数かんすうを外部がいぶから乗のっ取とって実行じっこうさせる「トランポリンシステム」を構築こうちくしました。当時とうじのゲームで画面がめんに表示ひょうじされるだけで放置ほうちされていた「Loading WING COMMANDER」という使つかわれていない文字もじ列れつ領域りょういきを命令めいれいの置おき換かえ場所ばしょに転用てんようし、関数かんすうの呼よび出だし口ぐちを確保かくほすることで、武器ぶきの一斉いっせい発射はっしゃ関数かんすうなどを遠隔えんかくから実行じっこうさせるブレークスルーを生うみ出だしました。

さらに、ゲーム内ないの一時いちじオブジェクトが引ひき起おこす不ふ整合せいごうという難所なんしょにも直面ちょくめんしました。隕石せき群ぐんやレーザー弾だんといった一時いちじ的てきなオブジェクトの出現しゅつげん順序じゅんじょによってサーバー側がわとクライアント側がわでスロットの不一致ふいっちが生しょうじる現象げんしょうに対たいし、サーバー上じょうの機体きたい識別しきべつ情報じょうほうをローカルの識別しきべつ情報じょうほうへと相互そうご変換へんかんするマッピング機能きのうを実装じっそうすることで解決かいけつへと導みちびきました。

第3章: 放置されたプロジェクトと現代技術による結実

技術ぎじゅつ的てきな骨格こっかくは2020年の時点じてんでほぼ整ととのい、ゲーム自体じたいは動作どうさする段階だんかいに達たっしていたものの、友人ゆうじん同士どうしで手軽てがるに遊あそべるネットワーク環境かんきょうを整備せいびするアイデアが尽つき、成果せいか物ぶつはGitHub上じょうに置おかれたまま長ながらく沈黙ちんもくを保たもっていました。

この状況じょうきょうを一変いっぺんさせたのが近年きんねんのWeb技術ぎじゅつの進化しんかです。兄弟きょうだいはGo言語げんごで書かかれたWebRTC対応たいおうのロビーツール「lobbylink」を導入どうにゅうし、大だい規模きぼ言語げんごモデルを活用かつようしてEmscripten向むけのビルド設定せっていを整ととのえました。これにより、現在げんざいではGOGなどで入手にゅうしゅした正規せいきのゲームファイルをブラウザ上じょうにドラッグ&ドロップし、共有きょうゆうルームコードを入力にゅうりょくするだけで、専用せんようのクライアントを用意よういせずとも即座そくざに2人協力きょうりょくプレイが立たち上あがる仕組しくみが完成かんせいしました。

加くわえて、WebRTCを用もちいたリアルタイムのボイスチャット機能きのうも組くみ込こまれ、コックピット越ごしに互たがいの声こえを聞ききながら編隊へんたい飛行ひこうを行おこなうことが可能かのうになりました。

子こどもの頃ころに単一たんいつのコックピットを窮屈きゅうくつに分わけ合あっていた2人の少年しょうねんが、30年以上いじょうの時ときを経へてそれぞれの戦闘せんとう機きの操縦そうじゅう桿を握にぎり、同おなじ宇宙うちゅうで共ともに笑わらい合あう瞬間しゅんかんが訪おとずれています。

Key vocabulary

生まれ変わる (うまれかわる)to be reborn; to be transformed
宇宙 (うちゅう)space; universe
記録 (きろく)record; to record
解決 (かいけつ)solution; resolution
機能 (きのう)function; feature
Sources12

Yominews stories are original Japanese adaptations of credited reporting, written with AI assistance at several JLPT levels and reviewed by a person before they are published. Read the full reporting at the sources above to support the original publishers.

質問しつもん

Questions & answers

What is "Two Brothers Spent 11 Years Hacking 1990's Wing Commander to Add Co-op" about?

How two brothers spent over a decade reverse-engineering a classic single-player DOS flight simulator so they could finally fly wing-to-wing.

What JLPT level is this Japanese news story?

This story is written at JLPT N4, N3 and N1. Yominews rewrites the same news at several JLPT levels with furigana over the kanji, so you can read it at your level and switch levels with the tabs on the page. Reading is free and needs no account.

Where does this Japanese news story come from?

This is an original Japanese-language adaptation written by Yomimaru for learners, based on reporting from gigazine.net, fireflyk64.github.io, toksickmagazine.com and other outlets. It is not a republished source article; the original reporting is linked in the sources.

始めようはじめようGet Started

Read this story in Yomimaru

Tap any word for instant lookups, ask Tomo-Sensei to explain the grammar, and save words to your own study deck.

技術ぎじゅつRelated stories
最新さいしんMore from Yominews

The latest stories, in easy Japanese

A short email whenever we publish: the newest stories at your JLPT level, with furigana and an English summary. No spam, unsubscribe anytime.