PHP8.0を利用してみてわかっていること

  • 外部拡張のCurlハンドルがリソース型ではなくなり、オブジェクト型に
    #if (is_resource($handle))
    if ($handle instanceof CurlHandle)
    
  • stream_socket_client や stream_socket_server を同一のスクリプトで複数扱うとjit関連のエラーで不正終了する(Linux,Windows両環境共)ので、php.iniで以下の設定を追加し、jitコンパイルの範囲から除外する。 php.iniのopcacheのディレクティブ項目の設定
    opcache.blacklist_filename="d:\etc_path_to\PHP\80-x64.blacklist"
    
    80-x64.blacklistの内容 (ワイルドカード可能)
    e:\my_library\class\php\net\*.php
    

barrier (synergyフォーク) をわかっている範囲の注意点

barrier (synergyフォーク) を使用する際のわかっている範囲での注意点について書きます

Windows版(2.33-release-3395cca9)

  • 通常はクライアントからサーバーへ初回接続するときにフィンガープリントの確認ダイアログが出るが、ログレベルの設定が警告以上だと出現しなくなってしまうようで、通知以上にしておくのが無難な感じ
  • 使い勝手的にはclient側でVirtualBOXを使う場合などではElevateをAlwaysにしたほうがいい感じ

Linux版(2.32-Release-00000000)

  • GUI版の方はメモリ管理にやや問題があるのか、起動して常駐させていると使用量が数十MBに跳ね上がってしまうので、コマンドラインで直接barriercやbarriersを起動時に実行させるようにしたほうが良いみたい、~/.config/systemd/system に設定ファイルを置いてsystemctl --userで登録する手段で動きました

FreeSpace2のMODマネージャ/ランチャ Knossos について

FreeSpace2について

20年以上前に米国Volition社が開発し発売されたPC向けのスペースコンバットシミュレータゲームです

良いところ

  • 全体的にはゲームバランスがとても良い。
  • 英語ではあるがHUDに作戦の概要が比較的簡単な単語で表示される為、把握しやすい
  • 艦船の護衛や捕獲のために部位破壊をして無力化する作戦など多彩な遂行達成型であり、作戦中にも敵基地の発見などのイベントなどもあり飽きさせない
  • 僚機付きの作戦では指示の出し方次第で作戦の明暗が分かれる場合がある
  • 艦船が大破したときの衝撃波のエフェクトはFS2Openでアップデートされているのより揺らいでる感じや自機の画面が影響で振動するところに臨場感がある
  • 当時の2chスペースコンバットシムを語ろうのスレッドのスレッドではEgoSoftのX2が出る辺り迄は内容の殆どがこのゲームについてであり、あの頃でかなり良スレだった
  • 20年前も以上にリリースされたゲームの割にソースコード公開の経緯もあって現行でアクチブな開発MODも結構あり、Mission PackなどだけでなくTotal Conversionも結構ある

微妙な所

  • 上記でゲームバランスが良いとは書きましたが、最終2ミッション辺りは難易度がとても高くサブターゲットも含めてのミッションコンプリートがどうやっても無理だったような覚えがあります。(※FS1のほうは最終ミッション - ワープ中での大きな艦船との戦闘のほうは更に桁違いに難しすぎてクリア自身できていない)
  • 当時のゲームとしては間違いなく星4以上付与したい評価のゲームだと思うものの、20年以上前の作品ということもあり、Steamでの評価欄でも素の状態で起動しない由来の低評価が多く、現時点で安易に過去の良作として人に薦められるゲームではなくなっている感じ
  • 英語が解らずストーリー展開がわからめ
  • BGMにソプラノが入るのは不要
  • 所謂ワープイン/アウト時のエフェクトがださい
  • Sivanの艦機の虫のモチーフっぽさのデザインがわかり易すぎィ

現行のオンラインで購入して入手できるバージョンについて

  • GOG版 / DRMフリーのDL販売元、実は去年Cyberpunk2077のリリースで話題になったこともあるCD Project Redのサービスなのでこういう取り組みもしているのかと少々応援もしたくなる。
  • Steam版 / 流石に現行のOSで20年以上前のゲームが普通に動作するというのは厳しそうと思われ、ストアのユーザー評価の欄を見てみるとその理由由来で評価はあまり宜しくない感じ。動作させるのに困難なのは上記のものも同じかもしれない

両方とも購入してはいないので保証できないが、後述のKnossosを導入してリテール版も含めて遊べるようにするには確かKnossosのインストールウィザードにSteam版のインストールディレクトリの指定項目がなかったような気がするので購入を検討している人はGOG版を購入したほうがいいと思う

Knossosについて

f:id:SriVidyut:20210417210523j:plain

FreeSpace2のMOD導入マネージャ/ランチャです。

Windows98~SEくらいの頃に発売されたゲームですし、本ゲームのみ遊びたいにも当時のリテール版のみのままでは動くわけがなく、という状況になりつつあり FS2Open などを入れて使っていた訳ですが、扱いやすくなった形で安心ですね。これで更に色々なMODをお試し出来る環境にもなります。

fsnebula.org 

去年の12月に導入を試してみた時点でのメモ

  • 少なくともリテール版 (所有していたのはGOTY Edition)からのセットアップは比較的簡単でした
  • かなりの量のMODが比較的簡単な操作で導入できるようで単純にパッケージを数えても146 (2021/03/15時点) ある。色々導入していくとフォルダサイズが結構な量になるでしょうけど
  • Direct X12環境前提っぽいようで、Windows7だったときの2台のPC環境でゲーム中でのHUD表示不良やランチャーから起動しないなどの不具合がありました。片方のノートPCはIvy Bridge世代と古いものの、OSをWindows10に乗り換えた所動作しました
  • デリケートな印象で、パッケージのダウンロードやインストールの途中でアプリケーションを終了したら不味そうな感じなので注意
  • 相性では例えば WingCommander系の2つのMODのうちのどちらかと相性が悪く、インストールするだけでランチャーから他の全てが起動しなくなる (ある程度満足の行く導入の時点でバックアップを取ったほうが良いかも)

日本語化MODの導入について

過去に一寸だけ試したことはあるのですが、国内の日本語化のリソースが殆どリンク切れになっていたので入れる事ができてよかったです。

言語化MOD ( NTP - A Multi-Language Translation Library Interface )で日本語化版をプレイするには別途でプレイヤーを新規で作成しプレイ開始する必要があります。以下の作業を時点でリテイル版のインストールフォルダを含めて23GB位になっています。

  1. Knossosから NTP - A Multi-Language Translation Library Interface の依存MODを導入する
    • Media VPS系統
    • MjnMixaels HD Mainhalls / 上記のMedia VPSに含まれている場合はそちらでチェックして一緒にインストールで大丈夫っぽいようです
    • 必要ならば FS Port をインストール / FreeSpace1をFreeSpace2のエンジン/UIで遊ぶMOD
  2. 当のNTPを導入する。(Language Pack: Japanese にチェックを入れる。EFGISは不要)
  3. インストールの完了を確認したらKnossosを終了する
  4. FreeSpace 2 Language Selector 1.2.1 file - Mod DB から Language Selector をDLする

  5. 解凍してLanguage Selector.cmdを起動する
  6. Choose desired program language で 2 ( =English) を選択する
  7. Choose your desired game language or program option で 3 ( =Japanese)を選択する
  8. Language Selector.cmdのプロンプトを閉じる
  9. Knossosを実行し、NTPを選択して起動

 

TwitterIRCGatewayを改めてセットアップ

利用しているネット環境のノートOSをWindows7からWindows10に移行したのですが、その際に色々弄ってしまったせいかログインできなくなってしまいました。日頃から殆どTwitterは使ってないんですが情報の流れに目を留められうる環境のほうが良いと考えるほうで、頑張って色々調べつつ再セットアップを試行しました。しかし検索しても情報少なめでやや苦労したので覚書きとして書いておきます。

※ 即知の問題としてtwitter apiの利用制限由来でコンソール窓に「エラー: リモート サーバーがエラーを返しました: (404) 見つかりません」と表示される前後でのツイートの送信は不可能だと思います。

TIG (Twitter-IRC-Gateway)のセットアップ

  1.  配布元 :

    GitHub - opentig/TwitterIrcGatewayBinary: TwitterIrcGateway のビルド済みバイナリ
    TwitterIrcGatewayBinary-master.zip をダウンロードしておく(こちらTwitterIrcGateway.zipのほうは動作しなかった )

  2. Windows.NET Framework 3.5での規定の利用での暗号化通信をTLS1.1/1.2にする為にレジストリを変更しておく必要がある。regjumpregscannerなどがあると楽にキーの箇所を探し出せます。

    参考になったサイト 項目5の 「.NET Framework 3.5 で TLS 1.1 および 1.2 を既定値にするための方法」

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727

    両者のキー以下に種類は REG_DWORD (REG_QWORDのほうではない)で名前は SystemDefaultTlsVersions 、値は 1 で登録する。変更は上記の二箇所だけで良い。

  3. https://developer.twitter.com/en/portal/projects-and-apps

    素のままで動作させてもフォロワーのツイート閲覧は可能なものの、ツイートは出来ないようになっている。素で入れた状態でのTwitterIRCGatewayの開発者が用意したらしい規定のAPIキーでは制限対応されていると思しきようで、自らツイート出来るようにするためには開発者向けのアプリ側用のConsumerキーが必要なので用意する。
    1. 使用するプロジェクトを用意(無ければ新しく作成申請する)し、そのプロジェクトを開き以降の設定する
    2. 上のタブ項目からSettingsを開き、Authentication settingsでTIGでのPIN-Code方式の認証に合わせる為、3段階認証をdisabledにする
    3. App permissionsではRead, Write, and Direct Messagesにする
    4. 上のタブ項目からKey and tokensを開き、Consumer Keysを新しく生成し必ず控えておく
    5. Authentication TokensのAccess token & secret の生成は必要ないと思う
  4. ダウンロードしたTwitterIrcGatewayのビルド済みバイナリを、インストール先にしたいフォルダに解凍し、中のTwitterIrcGateway.exe.configを開き、編集する
    <setting name="OAuthClientKey" serializeAs="String">
       <value>上で作成したConsumer Key</value>
    </setting>
    <setting name="OAuthSecretKey" serializeAs="String">
      <value>上で作成したConsumer Secret Key</value>
    </setting>
    1. APIの制限に耐えるようにname="Interval"の項目のvalueの値を規定の90から大きめに変更する。
    2. 別のPCから接続して利用する場合はname="LocalOnly"の項目のvalueをTrueからをFalseにする
    3. UTF-8文字コードで利用する為に name="Charset"のvalueISO-2022-JPからUTF-8に変更する。
    4. TwitterIRCGateway.exeを実行
  5. IRCクライアントを用意し、TIGサーバーへの接続設定をする
    1. 接続先、ポート番号などを設定する。(規定でのポート番号は16668)
    2. ログイン名をTwitterアカウント名 (自分のユーザーページを開くときのURLの https://twitter.com/*** の***部分)にする。nickは適当につける。
    3. 文字エンコードUTF-8
    4. パスワードは空欄にしておく
  6. IRCクライアントからTIGサーバーへ最初の接続をする。

    パスワード無しで最初の接続をし、TwitterAPIへの認証手続きをする。接続時に、チャンネルリストに$OAuthという項目が出現して以下のようなメッセージが出力されている場合、認証段階に入る接続迄は成功している

    次のURLをブラウザで表示してアプリケーションのアクセスを許可してください。また、許可のあと表示される暗証番号(PINコード)を入力してください。
    https://api.twitter.com/oauth/authorize?oauth_token=xxxxx...
  7. 以降,$OAuthとの対話に添ってブラウザに表示されたPINコードの入力やパスワードの設定をし、認証作業を終了する。IRCクライアントのTIGサーバーへの接続設定を再び開き、設定したTIGサーバへの接続パスワードを入力して再接続し、#twitterにフォローユーザーのツイートが表示されているのを確認する

その他の追加の設定など

  1. 適当に「#カテゴリー名」のチャンネルを作って該当のツイートをするユーザーをinviteして見やすくする
  2. AddinのTypableMapを有効にして使いやすくする

手続きが必要なものとはいえ、10年以上前のソフトが未だにきちんと動作するのはよくできたものですねー

2016年10月29日のツイート