2 ポイント 投稿者 GN⁺ 2023-08-11 | 1件のコメント | WhatsAppで共有
  • 2023年に再リリースされた Quake II では、サーバーとゲームモジュール間の通信のための新しい API、新しいネットワークプロトコル、そしてモッディングの機会を強化するための「クライアントゲーム」モジュールが導入されました。
  • 更新されたコードベースでは、元のゲームの分離されていたゲームモジュールが統合され、C++17 コンパイラが必要です。
  • ゲーム DLL は Clang、VS2019、VS2022 と互換性があり、C++17 と C++20 の両方でコンパイルできます。
  • 再リリース版は 40hz ティックレートをサポートし、元の 10hz と比べてより優れたゲームプレイ体験と精度を提供します。
  • ゲーム DLL は関数内で varargs を使わなくなり、フォーマット処理の責任は呼び出し側に移されます。
  • 再リリース版には、作業をより容易にするための数学関数の変更が含まれており、適切な場合には constexpr と演算子オーバーロードが使われています。
  • 「エンティティがフレーム内でクライアントに表示されるか」に関する方式の変更には、スプリットスクリーン対応とサウンド減衰カリングが含まれます。
  • 再リリース版は拡張されたモッディングの機会を提供しますが、大規模な構造変更により、既存の MOD は新しいコードベース向けに書き直しが必要になる場合があります。
  • プレイヤーの移動処理が修正され、ゲームモジュールが物理挙動を変更しつつもクライアント予測と連携できるようになりました。
  • Configstrings が更新され、最大長が 64 から 96 に増加し、特定の範囲を複数行にまたがって拡張できるようになりました。
  • 再リリース版には構造体への変更も含まれており、svflags に新しいフラグが追加され、effects_t は uint32_t から uint64_t に変更されて、より多くのエフェクトを表現できるようになりました。
  • 同じエフェクトがスプリットスクリーンのプレイヤーに複数回送信されるのを防ぐため、新しい _key パラメータが導入されました。
  • セーブシステムは、開発者がより簡単に確認できるよう、レベルとゲームデータを UTF-8 JSON に書き出すようになりました。
  • セーブシステムはもはやファイルシステムと直接インターフェースせず、他の MOD が JSON を使う必要もありません。
  • Quake II のサーバープロトコルが更新され、帯域外チャレンジの削除、接続メッセージの変更、各種 svc パケットの更新などが含まれます。
  • このテキストでは、さまざまなサーバー・クライアント間の相互作用、ビットストリームから各種データ型を読み取る方法、データ内の特定のフラグやキーを処理する方法について詳しく説明しています。
  • このテキストではさらに、svc_waitingforplayers、svc_bot_chat、svc_poi、svc_help_path、svc_achievement といった各種サーバー・クライアントパケットの機能と、それらのデータの読み取り方法についても説明しています。
  • clc_stringcmd パケットは、クライアントからサーバーへ送られる文字列コマンドを読み取るために使われます。
  • またこのテキストでは、たとえば POI に 0 以外のキーが指定された場合や、POI の時間が 0xFFFF または 0 に設定された場合など、特殊なケースの処理方法についても説明しています。

1件のコメント

 
GN⁺ 2023-08-11
Hacker Newsのコメント
  • ゲーム Quake II のソースコード再公開は、技術コミュニティで懐かしさの波を呼び起こしている
  • 多くのコメント投稿者が Quake II でコーディングを学んだ経験を共有しており、ゲームの明快で一貫したコードが優れた学習教材として強調されている
  • Quake II は 1990年代後半から2000年代初頭にかけて、子どもたちに VR の授業を教えるために使われ、独自のバーチャルリアリティゲームレベルを作ってみる機会を与えていた
  • 一部のユーザーはゲーム用モッドを作った思い出を共有しており、あるユーザーはコンピュータープログラマーとしてのキャリアを Quake II との初期の経験のおかげだとしている
  • ゲームの公開は、古いゲームの保存をめぐる議論も引き起こし、一部のユーザーは、もはや販売もサポートもされていないゲームは、その文化的な重要性のためにオープンソースとして公開されるべきだと提案している
  • Quake II ソースコードの再公開は、clang のような現代的なプログラミングツールとの互換性の点でも称賛されている
  • 一部のユーザーは、再公開に Linux 版が含まれていないことへの失望を表明しているが、iD(ゲーム開発者)が原則を貫いていることは認めている
  • 再公開はまた、Quake II のソースコードで使われている C/C++ の型名に "_t" を接尾辞として付ける慣習についての議論も呼び起こした
  • ユーザーたちは、懐かしいゲーム体験のために Oculus Quest 2 で Quake2Quest を試してみることを勧めている