リメイク版「System Shock」が遂に配信開始。BioShockの元となったタイトル。一応日本語字幕対応だが・・・

1994年にPC用タイトルとして発売されたSFアクションロールプレイング「System Shock」のリメイク版が遂にSteamやGOGなどで配信開始となった。

数々のレトロタイトルの現行機向け移植を手掛けてきたNightdive Studioによる開発で、2016年にKickstarterによるクラウドファンディングが成功したものの、方向性を見失ったために開発の延期、更にそこから年月が過ぎ7年が経過して製品として世に出ることとなった。

2072年の未来、とある企業のデータベースにハッキングしていた主人公の名も無きハッカーは居場所がバレて捕らわれてしまうが、連行先の宇宙ステーション「シタデル」の管理AI「SHODAN」の倫理的プロテクト解除を体を強化する神経インプラントとの取引を条件に会社の重役エドワード・ディエゴから持ち掛けられる。プロテクトの解除後、ハッカーインプラント手術の為に眠りへとつくが、目覚めた「シタデル」では「事が起こった後」になっていた。人類を滅亡させようと暴走するSHODANを止める為、そして自らが生き残るために生存者のいないシタデル内を散策することとなる。

タイトルのShockという名前からも分かる通り、名作FPSBioshock」はこのSystem Shockの(システムが簡略化された)精神的続編にあたるもの。

「既に事が起こった後」の舞台で拾えるオーディオログやメモなどから主人公がいない間に何があったのかを紐解いていくストーリーテリングや、マップ内を探索して武器やアイテムを探していくシステムは、Bioshockや他の類似するタイトルに与えた影響がよくわかる。

ゲーム内容自体はオリジナルのSystem Shockに準じたものとなっているが、流石に劣悪だった操作性や敵やアイテムがビルボード(スプライト)によるグラフィックは完全3D化したため、圧倒的に快適なゲームプレイとなった。

マップ形状にしても、そのまま表現してはただ急ばいな坂が配置されているだけでどこを見ても同じ場所にしか見えなかった通路の形状も省略もしくは新たなオブジェクトを配置してある程度場所によって変化を持たせており、単なる迷路にしかなっていない印象だった領域もメンテナンス用通路の役割をもった場所のように印象付けられている。マップの広さがプレイヤーの移動速度もあってか少しこじんまりした印象を受けるが、逆にオリジナルのままの広さを表現すると広すぎて人間が生活していたスペースとして移動するにしてもゲーム中の移動としても、快適とは言えない印象を与えるのでこれが正解か。

バリアや周りのアイテムをマップに表示させる神経インプラントの活用、それら神経インプラントの強化を行える道中のアイテムの発見、限られた弾薬やアイテムのリソース管理といった、サバイバル要素は今なお色褪せてないが、いかんせんゲーム進行において何一つ手を加えられておらず、道中に当然かのように用意されしかも解除しないと進められない配電盤のパズルやハッキングによる360度シューティングはシステムが分かりにくいのに一切チュートリアルは用意されていない、そもそもゲーム進行にしても「○○にいけ」「○○をやれ」といった通信が続編のSystem Shock 2・BioShockとは違いほぼ起こらず道中のメモや場面の状況から自らが考えて判断しないといけないシビアさは昨今のお膳立てされたゲームに慣れているとストレスが溜まるだろう。

オリジナルのSystem Shockファンなら大満足な内容なので遊ぶべきだが、それ以外の人には正直お勧めしにくいのは本音。だが、流石にオリジナル版System Shockを今から遊ぶにはキツ過ぎるし、古典ということで触りたいがある程度現代風な操作感とグラフィックで遊びたい人ならこれを手に出してもいいだろう。

日本語字幕にも対応しているが、壊滅的な誤訳があるわけではないが正直クオリティは相当に低い。

というのも、この手の海外ゲームのローカライズでよくある中華フォントの使用はもちろん、ゲーム中に流れてくる音声はともかくUIの文字が豆粒みたいなサイズでしか表示されず、アイテムの説明文やメールによっては改行されず画面外にはみ出して読むことすら不可能チュートリアルやガイドがないのはともかく、それの代わり自分で解決策を見つけるという行為すら難しい状態だ。ある程度進行方法が分かっていればいいが、英語が読める人は英語設定でやったほうがいいかもしれない。

果たして今後でアップデートで改善されるんでしょうか?

 

格闘ゲーム「ストリートファイター6」ベンチマークツールが登場。自分のPCでどれだけ動くか確認できる。

格闘ゲームシリーズ最新作「ストリートファイター6」のPC版向けベンチマークソフトが公式サイトで配布が開始されている。

ストリートファイター6 公式サイト - STREET FIGHTER 6 ベンチマークツール

容量は約15.8GB程度あり、もちろんダウンロード完了後もインストール作業があって導入までに時間がかかるのだから、どうせPC版はSteamオンリーなのでベンチマークソフトもSteam経由で配信して欲しいところだが、Steamでは既に実際に遊ぶことが可能なデモ版が配信されており、店頭デモなどでローカル環境でも導入しやすくするためかこのような配布方法をしているのか。

ストリートファイター6自体を触りで試してみたいのであれば、上記の通りSteamで配信されているデモ版を試せて、動作確認もそれで行うことが可能だが、フレームレートの他にスコア値と5段階の評価が出るようになっているので客観的にわかりやすくなっているのが特徴。

自分のPC環境(Core i5 12600、メモリ32GB、Geforce RTX 3060 Ti)で、1080p・最高設定(HIGHESTプリセットにした後最高フレームレートを120fpsに変更)にして測定したところ

対戦中:平均60fps(上限60fps)

バトルハブ(マッチメイクルーム):平均115.27fps(上限120fps)

ワールドツアー(一人プレイ用アドベンチャー):平均112.10fps(上限120fps)

というフレームレートで、スコア値は最高値の100、評価は「快適にプレイできます」となった。

Youtubeの広告掲載の無法地帯っぷり。

上の画像は実際にYoutubeのトップページに出てきた広告。動画を視聴してその統計から「おすすめ」欄で出てきたものでない。念のためもう一度言うがこれがYoutubeが許可した広告だ。

無法地帯っぷりに草すら生えないが、確かめるために自らもYoutubeに広告掲載を行ってみた(PC用Webサイトから自分のチャンネルを開いて「動画の管理」→「プロモーション」で設定可能)ところ

  • 法人でなくとも個人でも掲載可能
  • 掲載する広告(動画)は事前審査があり1営業日後に実際に載ることになるが、この審査はYoutubeガイドラインに沿っているかのみ。審査申込料とかは発生せず無料、掲載するコンテンツそのものの内容の良し悪しは審査されない。上の画像からも分かる通り明確な著作権侵害、詐欺の可能性がある商品を掲載している時点でガイドライン基準の審査をしてるかも怪しい
  • 広告料は1桁単位(日本円なら1円)で指定可能。数万円で設定しても10万プレビューほど稼げる。

アングラ系でもなく大手サイトのトップに載るもんだからネットリテラシーが無い人も多数いるだろうし、Youtubeが許可した広告だからこんなものですら公式(いや、任天堂という会社があるという認識すらないレベルの人が多いかも)と思い込んで躊躇いもせず開いてしまうだろう。下手に中途半端な掲載先を見つけてくるより、ここ一点集中で全予算つぎ込んでもよいくらいだ。

こんなローリスクハイリターンすぎる広告欄、馬でも鹿でも我先に広告申請するに決まっている。果たしてGoogleはこのゴッサムチューブを統治するのだろうか(多分しない)。

 

1992年の同名アドベンチャーゲームのリメイク版前日譚「Alone in the Dark Prologue」が配信開始

1992年に発売された同名サバイバルホラーゲームのリメイク版「Alone in the Dark」(アローンインザダーク)における前日譚を描く「Alone in the Dark Prologue」がSteamならびにPSストア/MS(Xbox)ストアで配信中となっている。体験版なのでもちろん無料。

本編は10月25日発売予定で、Steamストアページの対応言語には音声・字幕ともに日本語にチェックが入っているが、このプロローグ版は字幕のみ日本語対応。また、PS5・Xbox版は予約が開始され、プロローグでも予約受付中の表記があるがこの記事を書いている時点でSteam版はまだ予約は開始されていない。

1920年代のアメリカ南部、デルセト屋敷でジェレミー・ハートウッドが謎の失踪を遂げた。ジェレミーの姪エミリー・ハートウッドと調査を依頼された私立探偵エドワード・カーンビーはデルセト屋敷へと訪れる、といったゲームのストーリーで、このプロローグでは言動のおかしいジェレミーから依頼されエミリーへの手紙を置きに行くことになった11歳の少女グレイス・サンダースを操作することになるのだが、配達物を置いておく部屋に行く最中に「なにか」が待ち受けていた。

プロローグ版は18GBのデータ容量があるものの、ゆっくりやったとしても10分程度で終わってしまうボリュームで、戦闘シーンなどはなく移動のみ、演出についても3か所程度しか用意されておらず、消化不良は否めないかもしれない。だが、ゲームの舞台となるデルセト屋敷の雰囲気を感じ取ったり購入前にSteam版の動作確認は行えるだろう。

10分程度のプレイに18GB分のデータをダウンロードしている時間がもったいない人向けにプレイ動画。録画環境(Shadowplay)の問題か、常時60fps以上維持していたのだが何故かフレーム抜けが発生している箇所が存在する。

 

昨今のPCゲームにおいて最適化が問題となっているがこのAlone in the Darkは、プロローグ版をテストした限りでは問題は無さそうである。

Core i5 12600、DDR4-3200 32GB、GeForce RTX 3060 Tiの環境で解像度1440p・グラフィックプリセットを最高設定にあたる「シネマティック」にしていても常時60fps以上、スタッターなどもとある部屋でロードの為か一瞬発生する一か所箇所のみでそれ以外はカクツキの様なものは全く見受けられない。一応、FSRやDLSSといったアップスケーラ設定も用意されているが、すべてオフにしてネイティブ解像度のままで問題ないだろう。



NVIDIA コントロールパネルにある「Vulkan/OpenGLの既存の方法」とかいう設定 (結論を言うとVulkan/OpenGLアプリで遅延が減る)

GeForce ビデオカードのドライバ設定を行うNVIDIA コントロールパネルにある「Vulkan/OpenGLの既存の方法」という項目。

2022年10月頃のドライババージョンから追加されたようだけどどういった効果があるかわからず、ビデオドライバ設定を解説しているサイト/blogでもこの設定は「自動」を推奨しているところが大半のようだが、書かれている説明文と実際に試した結果から何が変わるかわかった。

どうやらこの設定はVulkan/OpenGLアプリにおいて「DXGI スワップチェーン」という機能を使ってフレーム待機時間、つまりは表示遅延を短くすることができるようだ。

Microsoft公式サイト - Windowsアプリ開発 DXGI スワップ チェーンによる遅延の減少 

ただし、遅延が減ると言っても前述のとおりVulkan/OpenGLアプリのみでDirectXを使用したゲームには何の影響もない。競技性のあるゲームで具体例としてはSourceエンジン系の「Dota 2」「Counter-Strike: Global Offensive」「Counter-Strike 2」、それ以外では「Rainbow Six: Siege」(描画APIをVulkanに設定したとき)くらいだ。「Fortnite」「Apex Legends」「VALORANT」、ほぼ全部の格ゲー等はDirectXを使用して描画しているのでこの設定を変更しても何の影響も与えない

自分はCS:GOもR6Sもやっていないものの、FM TOWNSエミュレータ津軽」を使っておりこれがOpenGLによる描画を行っていて、エミュレータ側とホストPC側でマウスカーソルがウィンドウ位置を同期して動くようになっているので遅延が発生しているのがわかりやすかった。設定前はホストPC側のマウスカーソルに3~4フレーム遅れて動いているような感覚だったが、設定後はかなりぴったりくっついて1フレーム程度に抑えられた。エミュレータは特性上完全に遅延は無くなるわけではないが、ゲームならもっと効果が発揮しやすい可能性がある。

 

設定方法の例として、NVIDIA コントロールパネルから「3D設定の管理」を開いて「プログラム設定」タブを選び(不具合を避けるため全ゲームで同じ設定を設定せず個別に行う)お目当てのゲームを選択(ない場合は一度そのアプリを起動して終了、「追加」ボタンを押してアプリを選ぶ)、

  • 「Vulkan/OpenGLの既存の方法」は「DXGI Swapchainのレイヤーを優先する」
  • 「スレッドした最適化」は「オン」
  • 「低遅延モード」は「オン」または「ウルトラ」(ゲームや使っているモニターによって最適設定が変わるので「オフ」も含めて試すこと)
  • 「垂直同期」は「オフ」または「高速」(ゲームや使っているモニターによって最適設定が変わるので「オン」も含めて試すこと)
  • 「電源管理モード」は「パフォーマンス最大化を優先」

に切り替えよう。これで遅延は最小限に抑えられるはずだ。

 

AI技術によって蘇った「ポートピア連続殺人事件」がSteamで無料配布開始。犯人は・・・

1983年の神戸を舞台に殺人事件を担当する刑事となり相棒のヤスと共に事件を解決へと導くアドベンチャーゲームポートピア連続殺人事件」をAI技術によって自然なコマンド操作法にしたリメイク「SQUARE ENIX AI Tech Preview: THE PORTOPIA SERIAL MURDER CASE」がSteamで配信が開始された。

表記名からもわかるとおり、あくまでも技術デモという位置づけでSteamでの登録もゲームではなくアプリ扱い、無料で試すことが可能となっている。

コマンド選択式だった有名なファミコン版とは違い、オリジナルにあたるPC版と同じようにテキスト入力でのコマンド操作となるが、事前に定義された単語を一文字も間違わず入力しないと処理できなかった旧来のテキストコマンドとは違い、AIによる自然言語処理によって曖昧な単語でも受け付けてくれるようになっている。

ただ、このデモでは登場人物の台詞がAIで作成されるわけではなく、プレイヤー側のテキストコマンドが「一文字も違わず入力しなくても認識してくれる」というだけで、ゲーム側で定義されていない指示をヤスに出すと「うーん・・・」や「え?」と答えになっていない返答をされてしまう。「凶器はなんだ?」「○○のアリバイは?」とヤスに聞いても「ちょっとよくわからないですね」と調べもせず返ってくる。ヤス、お前クビ。

認識しやすくなるよう右側に載っているリスト内の物や画面に映っている物体の名詞と「を調べろ」「を呼べ」「を見せろ」等といった動詞を組み合わせた簡単に文章を入力することを意識して進めることになるので、単に難易度が激減はしたものの、内容自体は選択肢の少ない40年前のゲームそのものでテクノロジーデモとしての実感が全く沸かない。一方通行の会話やテンプレート通りの入力では自然言語処理の意味がない。

皆が期待しているであろう、ゲーム開始直後に「犯人は○○」と言ってもヤスの反応は「ちょっとよくわからないですね」で終わってしまうのは変な感想だが失望しかない。

 

FM TOWNSに元祖FPSゲーム「Wolfenstein 3D」を移植した話

1989年に富士通が発売したパソコン「FM TOWNS」に、1992年にid Softwareが発売した元祖FPSゲーム「Wolfenstein 3D」を移植してみました。意味が分からないと思いますが今は令和です。

Google ドライブ - FM TOWNS版Wolfenstein 3D 「Wolf4FMT」 実行ファイル & ソースコード

FM TOWNS マーティーを除くFM TOWNSシリーズ全機種で動作可能なはず。メモリ5MB以上、HDD必須、TownsOS V2.1以降向け。386 CPUでも一応動くがローレゾ|全画面設定では8~10fpsしかフレームレートが出ないと思います。FM TOWNS II HR (486 20MHz)以上でFASTモード設定起動を一応推奨。

FM TOWNSエミュレータ津軽」で互換BIOSを使用してCPU 66MHz設定(FM TOWNS II MX相当)のプレイ動画。YM3812用の音源データを無理やりYM2612(FM TOWNSFM音源)に流している関係上、ドラム音が無かったりおなしな鳴り方だがとりあえず音楽は鳴るし、効果音もバッチリだ。しかもオリジナル版には存在しない「Graphics」とかいうオプション項目を追加。我ながら謎の完成度。

ゲームを実行するには製品版Wolfenstein 3Dのゲームデータが必要です。SteamやGOGなどで売っている(MSストア版はデータがコピーできるか未確認)ので、持っている人は中の拡張子.WL6群(CONFIG.WL6除く)をWOLF4FMT.EXPと同じディレクトリに入れてFM TOWNS OS上で実行すれば遊べるぞ。

はい、そこ、わざわざそんな手間かかることするなら今どきのPCで「ECWolf」使って遊べばよくね?とかド正論はいちゃダメ。

 

ところでなんでこんなものを作ってしまったかというと、事の発端はFM TOWNS版DOOMを作ったときの記事でコメント欄に「Wolfenstein 3D」は移植できる?という質問が来たこと。

DOOMと違い、Wolfenstein 3Dは思い入れはないし、IBM PC特化のソースコードとなっていて移植が面倒だったのでやる予定はなかったのだが、DOSエクステンダを経由して32bitプログラムを動かしているFM TOWNSと同じようにDOSエクステンダで32bit化した「Wolf4GW」というコードが公開されていたのでこれをベースに移植していけばいけるのでは?とちょっと魔が差して挑戦してみたのが1年前。今じゃありません、1年前です。が、頑張ってみたもののどうやってもゲーム開始直後にフリーズしたり、グラフィックが分割されて表示されるバグが取れず、そのうち移植作業が面倒になって放置していたのだが、今年に入り「CELESTE」「くるんくる~ぱ」と作ってきて直接VRAMを弄ってFM TOWNSのグラフィック描画ができるようになったのだからもうちょっと頑張ればできるかも、となんとかやる気を振り絞って再開。

今まで弄ったコードを全部破棄してバグの原因をようやく見つけ、日に日に現れる新作ゲーム(「Dead Space(2023)」「ホグワーツ・レガシー」「龍が如く 維新 極」「バイオハザード RE:4」「ライザのアトリエ3」「Forza Horizon 5 Rally Adventure」)をプレイして何度も作業を中断させながらとりあえず遊べるレベルのフレームレート・音ありで動かせる状態にまでできました。

本当はFM TOWNS マーティーでも動かせるようにページング方式のデータ管理(メモリが少ない環境では一部のデータだけ読み込んでおいて、必要になったら入れ替える)方法を実装する予定だったのだが、正直思い入れもないWolfenstein 3Dを移植する作業自体がなかなかモチベーションが上がらないのに、これもまた思い入れもないFM TOWNS マーティーとかいう機種に対応させるのは面倒、仮に実装できたとしてCDからのデータ読み込みなのでゲーム中に何度も読み込みで停止してゲームにならないのが分かり切っているのでやめにしました。ソースコードはあるのでマーティー対応版が欲しい人は自分で作ってください(いない)。

 

ちなみに、何故今まで動かなかったというと

fixed sintable[ANGLES+ANGLES/4];
fixed *costable = sintable+(ANGLES/4);

というSIN値、COS値を格納するグローバル配列の宣言があって、この記述の通りCOSの値はSINの一部と重複することを利用してSIN配列を共有してメモリ節約を元ソースでは行っているのだが、この記述はFM TOWNSのHigh Cコンパイラでは「costableの先頭のみに現時点のsintable+(ANGLES/4)の値が格納されるだけ」でSINと共有されない。

宣言時に同時にポインタ先を示す上記の書き方だと

fixed sintable[ANGLES+ANGLES/4];
fixed *costable;

*costable = sintable+(ANGLES/4)

のような解釈をされる様だ。

sintableの中身を初期化する関数内でcostable = sintable+(ANGLES/4);と記載したところ、見事動いてくれた。

 

ATMでもデジカメでもなんにでも移植されている「DOOM」と違い、見た目的に負荷も少なさそうだし、古いので実装も簡単そうなのに殆ど有志移植がない「Wolfenstein 3D」のコードを解説。

ゲーム自体はIBM-PC向けに出したもののNeXT Computer上でクロス開発を行っていた関係で機種依存となるような部分は極力抑えられている「DOOM」と違い、「Wolfenstein 3D」はゲームの実行環境も開発環境もIBM PCソースコードC言語なものの16bitプログラムを動かすDOS&80286環境ということで64KB毎にメモリ空間が分かれているポインタを操作する、高速化のためにx86アセンブラ部分は全体の10%以上、これも高速化のためにVGAグラフィック専用機能を使うという状況。数ファイル書き換えればそのマシン用に移植できるDOOMと違い、Wolfenstein 3Dは書き換え作業が相当面倒。

FM TOWNS移植版では32bit版となる「Wolf4GW」をベースにしたことで32bitメモリ空間をリニアに使え、面倒なメモリ操作部分や一部アセンブラ部分をCに置き換えられているので移植負荷が減ったが、それでもVGA専用機能を使った部分が面倒だった。

まずVRAM上でのピクセル毎の並び順が

0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F

とバイト毎に並んでいればいいのだがVGAだと256KBのVRAM空間を64KBでバンク分割されている関係でWolfenstein 3D側のデータは

0|4|8|C¥1|5|9|D¥2|6|A|E¥3|7|B|F (¥はバンク切替部分)

のような形となっているこれをそのまま「*vram++ = *source++;」とかいう形でVRAMに展開すると、

とそれっぽいもののメチャクチャな画像が表示される。

そこで

    int width_2 = width >> 2;
    int offset = VRAMWIDTH - width;
    int y2 = 0;

    for(y = 0;y < height; y++)
    {
        for(x = 0;x < width;x++)
        {
            *vram++ = source[(y2 + (x >> 2)) + (x & 3) *  width_2 * height];
        }
        vram += offset;
        y2 += width_2;
    }
}

 

という「(y2 + (x >> 2)) + (x & 3) * width_2 * height」と計算してからソース元のデータを取得することで

と正常に表示されるようになった。

 

高速化についてもVGAには1バイト書き込めばバンク切替せず別のバンクの同じアドレスにも同じ値を書き込める機能(つまり最大4ピクセル分一度に更新可能)があり、Wolfenstein 3Dでは左横側から縦一列ずつグラフィックを描画するので、もし次のピクセルでも同じグラフィックが描かれることが分かった場合、

if ( (pixx&3) && texture == lasttexture) //前の縦列のテクスチャと差異がない場合
{
        postwidth++;
        wallheight[pixx] = wallheight[pixx-1];  //前の壁の高さをそのまま入れる
        return;
}
ScalePost(); //壁を描画する関数。wallheight配列の高さ分描かれる
wallheight[pixx] = CalcHeight(); //主人公の視点からの壁までの奥行きから描く壁のピクセル数を計算して入れる
postsource+=texture-lasttexture;
postwidth=1;
postx=pixx;
lasttexture=texture;
return;

というように壁描画関数(ScalePost)自体を飛ばして、描画関数内では「VGAMAPMASK(masks[postwidth-1][postx&3]);」と記載したマクロでバンク同時書き込みのレジスタを変更して、後から1~4列分書いてしまう遅延描画を行っている。

だが、バンク切替が不要でリニアにVRAMが並んでいるFM TOWNSにはもちろんこんな機能はない(あるのは指定ビットの書き込みを禁止するマスク機能のみ?)。

この時点で同じCPU速度だったとしても速度が出ないとわかるので、別の手段で高速化。

画質は諦めて横解像度を半分として1バイト毎に書き込まず一気に2バイト書き込んでしまう、更にテクスチャ座標の取得方法も変更したローレゾモードを新設した。

void ScalePost_Low(void)
{
    _Far word *vram;
    _FP_SEG(vram) = 0x10c;
    _FP_OFF(vram) = 0x0;

    int ywcount, yoffs, yendoffs;
    fixed frac, fracstep;
    int height;
    word col;
    height = wallheight[postx];

    ywcount = height >> 3;

    fracstep = 16777216 / height;
    yendoffs = (viewheight >> 1) + ywcount;
    if(yendoffs >= viewheight)
    {
        yendoffs = viewheight;
        frac = (((height >> 2) - viewheight) >> 1) * fracstep;
    }else
    {
        frac = 0x4000;
    }

    yoffs = _max(((viewheight >> 1) - ywcount), 0);

    ywcount = yendoffs - yoffs;

    vram += ( (yoffs * SCREENWIDTH_WORD + (postx >> 1)) + (vbuf >> 1)); // << 9 = * SCREENWIDTH_WORD
    do
    {
        *((byte *)&col+1) = *(byte *)&col = postsource[frac >> 16];
        *vram = col;

        vram += SCREENWIDTH_WORD;
        frac += fracstep;
    }while(--ywcount);
}

テクスチャ解像度(64ドット)/壁の高さ(wallheight)でピクセル毎の小数ありの移動ドット数(fracstep)を割り出して描画ピクセル毎に加算→整数部のみ切り出して求めることができるが、16777216という数字はテクスチャの解像度が64ドット、壁の高さピクセルを格納するwallheightが小数部3ビットの固定小数点、更に桁数を高めて精度を上げるためにこの数字にしている(小数部16ビット)。

精度の問題で並びがズレて少しジャギーが出てしまうが、解像度自体縮小している関係でそこまで目立つような感じではなかった。主人公と壁との距離を求めるレイキャスト自体の計算自体端折っているが、これだけで一気に2倍近くフレームレートが向上。一応オリジナル通りの解像度と描画方法にも切り替えることができる(GraphicsオプションからLow-Res Modeトグルを切り替え)

新設したグラフィックオプション

 

オリジナル通りの解像度

 

ローレゾモード

壁が若干荒くなるものの距離によっては目立たないし、壁以外のスプライトは解像度は変えていない。