Descent 3のソースコードが公開
(github.com/kevinbentley)- Descent 3オープンソースエンジンがGPL-3.0ライセンスで公開され、利用するには別途ゲームファイルを自分で用意する必要がある
- この公開版には、Kevin BentleyとJeff Slutterが過去に作成した**「1.5」パッチ**が含まれている
- このパッチはDescentコミュニティによって安定した状態にされた
- インストールの詳細はUSAGE.md、ビルド手順はBUILD.mdに従うよう案内されている
- ビルドまたは実行時の問題はGitHub trackerに報告し、貢献パッチはGitHubで提出する
公開されたエンジンとライセンス
- Descent 3オープンソースエンジンが公開された
- ライセンスはGPL-3.0
- このエンジンには、Kevin BentleyとJeff Slutterが数年前に作成した**「1.5」パッチ**が含まれる
- このパッチはDescentコミュニティによって安定した状態にされた
利用とビルド
- エンジンを利用するには、ユーザーが自分のゲームファイルを提供する必要がある
- インストール関連の詳細はUSAGE.mdにある
- ゲームのビルド手順はBUILD.mdのビルド手順に従うよう案内されている
問題報告と貢献
- ビルドまたは実行中に発生する問題はGitHub trackerに報告する
- 誰でも貢献できる
- 開発コミュニティはDiscordのDescent Developer Networkにある
- パッチはGitHubで提出する必要がある
1件のコメント
Hacker News の意見
このゲームが本当に大好きだった。このコンセプトがなぜ一つのジャンルとして定着しなかったのか、いつも理解できなかった。
実際の「上」がなく、360度の自由移動が可能で、敵は賢くて狙撃までしてきた。昔ものすごい時間を費やしたし、今回もぜひやってみたい。
https://store.steampowered.com/app/753640/Outer_Wilds/
ただし、このサブジャンルの直接的な後継作としては Overload がある。
https://store.steampowered.com/app/448850/Overload/
https://youtu.be/T2-IHgNYaKA
https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
https://youtu.be/9U0KNVQmlcM
このゲームが恋しい。
このコンセプトがなぜジャンルになれなかったのか分からない、という話については、宇宙飛行シミュレーターが残念ながら常にニッチジャンルだったからだと思う。フライトシミュレーターよりもさらにニッチだった。
面白い機能として、スーツの電源を切ってステルスモードに入ることができた。そうするとすべてのHUD要素が消え、爆発音や弾丸がかすめる音のような、ゲームプレイ上のほとんどの音も消えた。
世界観上、それらの音はすべてスーツのコンピューターが生成しているもので、宇宙は静かだという設定だった。
最近はElite Dangerousという現代版があるが、飛行力学が航空機の飛行力学にかなり近く、Descentと比べるのは難しい。
PS1で Descent 1 をプレイしたが、箱に敵がプレイスタイルに適応すると書いてあった記憶がある。年を取って機械学習やいくつかのAI手法を学んでから、それが正確にはどういう意味だったのか、ずっと気になっている。
自分のPS1が勾配降下法を回していたわけではないだろうから、敵がプレイヤーを学習して適応するという主張の裏には、どんなトリックがあったのだろう?
妻と私は Descent フォーラムで出会い、3人の息子の名前はDescent仲間のKoolBear、Jediluke、Mark392から取った。Descent仲間の結婚式にも行ったし、残念ながら葬儀にも行った。JinXの冥福を祈る。
D3はDescentシリーズの中で最も弱い作品だと思っていたが、このニュースは本当にうれしい。Kevinに感謝。
Descentコミュニティで最後に活動してから、もう15年以上が過ぎた。PlanetDescentのメールがなくなってICQアカウントへのアクセスも失い、今ではオンラインでDCrazyという名前も使っていない。当時の10代前半の自分と距離を置きたい理由もある。
それでもDescent、特に D3 は、自分がソフトウェアエンジニアリングに入るうえで大きな影響を与えてくれたし、その思い出にはいつも感謝している。
12歳のときにDescent FAQを読んで IRC を知り、14.4kモデムでIHHDを設定してプレイしようとしていた。DEVILでレベルも作った。
今はエンジニアでありゲーム開発者だ。Descentを世に出してくれてありがとう。個人的にものすごい影響を受けた。
ゲームを手に入れること自体が、たいてい一つの旅だった。
今の子どもたちはスマートフォンにゲームが無限にある。その下にあるシステムとつながる機会はほとんどなく、努力も必要ない。ただダウンロードして、次のよさそうなものをプレイすればいい。
この世代は何かを取り逃していると思う。
Descent の操作体系は、自分にとって一人称ゲームでマウスの Y軸反転を永遠に定着させるきっかけだった。
自分の脳は6自由度の考え方に完全に合っていて、それ以降のあらゆる FPS は、飛行ベースでなくてもそれに合わせる必要があった。
そうしていたのは私たちだけだったのかな?
Descent も Flight Simulator 95 と一緒に、自分の脳を壊すのに一役買った。Y軸反転なしではプレイできない。
すべてのゲームのデフォルトが Y軸反転ならいいのに。いつ慣れたのかは分からないけれど、おそらく X-Wing をやっていた時か Quake をやっていた時だと思う。
引くと機首が上がる航空機の操縦方式から来ているのだと思う。スティック、ジョイスティック、ヨークはどれもそうだ。Counter-Strike が台無しにした :)
結局、実際にはどちらの操作方式も同じくらい直感的ではないと感じたし、誰かが現代の Zelda をマウスでちゃんと動くようにしてくれるまで待つしかなさそうだ。
友人たちの何人かが Descent を対戦でプレイしていて、いわゆる トライコーディングを知って驚いた。速度を最大化するには、複数のキーを同時に押して3つの軸を一度に移動する必要がある。たとえば前進/右/上の組み合わせだ。
上級者たちはマップを斜めに矢のように駆け回る。
自分はずっと、これは Tribes のスキーのように、バグが機能になった例だと思っていた。さっきリポジトリを見ながら手がかりを探してみたが、結局この現象が起きるコード行の周辺には関連するコメントを見つけられなかった。
https://github.com/kevinbentley/Descent3/blob/142052a67d4318...
Descent では上/下軸まで加わり、前進だけの時より約 1.7倍の速度になった。
Descent 2 と 3 には前方速度を上げる アフターバーナーもあり、エネルギーは限られていたがかなり速く再充電され、100% のエネルギー時にブースト効果が最も大きく、残りエネルギーが 0% に下がるほど効率が落ちた。
そのため人々は、1秒間に何度も短くオン/オフして、ごく短い使用の合間に再充電させ、低い値まで急落させる代わりに常に約 95% を維持する方法を覚えた。
本当に速く進むには、3次元の斜め方向に移動しながら、アフターバーナーを1秒間に何度もパルスのように押す必要があった。
発見された後は、否定的に見るデザイナーもいれば肯定的に見るデザイナーもいて、Descent を離れて何年も経ってからチームが Overload を作るために再集結した時にも論争の種だった。
妻と私は D1 を MOD で修正していくつかの代替案を試し、Mike/Matt/Luke/Dan とその日スタジオにいた人たちの前でデモを飛ばして見せた。結局「ベクトルの独立性は単純に気持ちいい」という結論に達し、そのため Overload には、より速い1次元飛行をする正規化飛行モードとトライコーディングモードを切り替える機能が入った。
x ベクトルと y ベクトルをそのまま足す素朴な実装では合成ベクトルになり、対角線の長さ分、つまり 1.41倍速くなる。3次元ではさらに大きくなる。
これは多くの昔のゲームで非常によくあるバグであり機能だ。
Quake は歩行中にはこのバグを考慮していたが、ジャンプ中には考慮しておらず、その結果、速度を上げるより複雑な技術である ストレイフジャンプが生まれた。
var playerX_input = Input.GetHorizontal(); // float in range -1 to 1
var playerY_input = Input.GetVertical(); // float in range -1 to 1
var playerVelocity = new Vector2(playerX_input, playerY_input);
これでプレイヤーは X に 1単位/フレーム、Y に 1単位/フレーム動けるようになり、斜めに動くと速度ベクトルの長さは (1,1) ベクトルの長さである sqrt(2)、つまり約 1.41 になる。
これを直すには、おおむね次のようにできる。
if(playerVelocity.length > 1)
{
playerVelocity = playerVelocity.normalized();
}
後ろから追っている時、本当に当てるのが難しくなった。
ラダープレイヤー数人と対戦したことがあるが、実力の次元がまったく違っていて驚いた。
あの元祖ゲームたちが自分にとってあれほど魅力的だった理由の一つは、実質的に スキル上限がなかったことだ。
ああいう試合をストリーミングプラットフォームで見られたら、本当にすごかっただろう。
「誰かが最近、Descent 3 のソースコードが公開されるか尋ねた」という部分の参考リンク: https://news.ycombinator.com/item?id=40009248
本当に素晴らしい、ありがとう。
「Interplay の独自サウンドおよびビデオライブラリの一部が削除された。ACM と MVE 形式だ。昔のカットシーンが動くようにコンバーターを作るのを誰かが手伝いたいなら、そのコードは持っている。コンパイルできるようにそのコードをスタブ化するには少し手間がかかる」という部分を見ると、ちなみに FFMPEG はこれらの形式をサポートしているようだ。
裏で承認を得るのに何が必要だったのか気になる。意思決定の過程を少し説明してもらえるだろうか? 良いことではあるけれど、最近ではあまりにも珍しいことだ
当時もコード公開の話はあったが、まずパッチを出して、MVEデコーダの代替を見つけたいと思っていた
数日前、ここの別の記事のコメントを見て所有者にメールを送り、公開できないコードを取り除いてそのまま進めてもよいか尋ねたところ、「やってよい」と返事があった
Wikipediaのページで、こんな宝石のような内容を見つけた[0]
「2002年に発表されたある研究では、Descent 3を使ってスズメガの飛行活動を研究した。ゲームの編集モジュールを使い、研究者たちは長方形の柱がある平坦な平面で構成された仮想環境を作り、動物はその中をうまく航行した」
[0] https://en.wikipedia.org/wiki/Descent_3#Other_uses
「本論文では、現実的で相互作用的な視覚環境を機械感覚および嗅覚刺激と組み合わせ、最新の多チャンネル神経生理学的記録手法と併用する、新しい昆虫飛行シミュレータの設計について説明する。このシステムは現在利用可能なコンピュータ技術とMEMS製作技術を活用し、スズメガ Manduca sexta の現実的な閉ループ飛行中に、複数の中枢神経系ニューロンの活動を並行して調査するために用いる」
https://www.sciencedirect.com/science/article/abs/pii/S01650...
Descentが好きな人は多いと聞いていたし、見た目も素晴らしく見えた。X-WingとQuakeを混ぜたようにも思えた
だが数分以上はプレイできず、長いゲーマー歴の中であれほど早く投げ出した最初のゲームだったかもしれない。何か不安にさせる感覚があり、ボクシンググローブをはめて磁石を扱っているような感じだ。プレイ動画を見るだけでも同じ感覚になる