たけけんブログにご訪問いただきありがとうございます。

インターネット利用者のITリテラシーを向上したいという設定ではじまり、サーバー弄りからプログラミングまで手をだした自称エッセイスト。最近はストリートファイター6のランクマでやっとマスターになれた勢いでGGPOを読んでみたくなり、読めるようになるまで頑張るぞなサイト。だいたい14年ほど続いている長編IT浪漫小説。

最新記事

安心安全の自作プラグイン。と思っていたら半日落ちたのだった
スト6はじめました(1年前から)
syntaxhighter evovled を使ってたところが文字化けしてたわけです
JessieからStretchにアップグレードしてHTTP2に対応した話

最新の投稿

安心安全の自作プラグイン。と思っていたら半日落ちたのだった

サーバーのアップデート作業をなんやかんやした翌日にサイトが表示できていないエラーメールがやたらと届いていた。
ということに気がついたお昼頃。
Google Anaryticsを使ったブログのランキング表示が原因で落ちていた。

ブログが落ちていたとしても以前ほど気にすることもないのだけれども、10分おきにメールがとんできている着信履歴をみると結構鬱陶しいもんだ。

鬱陶しいなと思いながらも年に1回あるかないかの頻度なので、10分おきに飛んでくるというピチピチの設定も放置されているのだった。
一人で割れ窓理論をぶん回しているらしい。

パッとみてもなんだかよくわからないエラーで、とあるリポジトリがダメになっているらしくDebianをアップグレードしないといけないらしい。
自作のプラグインだから安心だと思ってたけれども、壊れた時に治すのは自分なのだ。そこまで考えていなかった。
なんといっても極力シンプルにして自分で書いてたら問題は起こらないだろう。という精神で書いていたのだから。

この記事をアップしようと思うと古いDebianを使ってるということを公開することにもなって、
いやまあ問題ないんだろうけども、なんかいやっていうかね。

ってことでDebianをアップグレードしたらこの記事をぶん投げる!
プラグインは気が向いたら直す!

と思ったんだけど、せっかくだしアップグレードした。がんばった。

スト6はじめました(1年前から)

PS Plusでストリートファイター5の配信が始まった頃にちょっとだけと思ってやってみると、ストリートファイター2と同じ感じでプレイできてすげーなとポチポチ。次第にその奥の深さに驚嘆して、大昔は「なんかこの技強いから振っとくわ」みたいなのがフレームとかなんとかで当時の謎が明らかになっていくほどに少しづつ興味も湧いてきて、それからなんやかんやと調べたりしてるうちにストリートファイター6が出るらしいということで今に至る。

そしてスト6発売から1年、世間でどれくらい流行っているのかは正直わからないけれど、カプコンカップというスト6の大会の優勝賞金が1億円らしいので間違いなく流行っていると思われる。

無印ストリートファイターがリリースされてから数えてなんと36周年らしい。
36周年。スト2がリリースされたのが1991年2月らしくそれが32年前。

SFC版ドラクエ5のリリースが1992年らしいので、いつ頃なのやらと思ったら大体その辺の時代を想像すると良さそうである。

スト6のランクマッチを初めてみるとなんとルーキーからのスタートだった。ルーキーって何かねというとランクマッチの段階でいう一番最初のランクだ。上手い人はもっと上位のランクから始まるのであった。のびしろしかないってことや。
前作スト5はどうやら7年くらい(今も普通にできるけれど)現役で稼働していたそうなので、まぁ5年6年もあればマスターランクにもいけるだろうというめちゃくちゃ軽い感じで目標を立ててみた。

そしてあと昨今のオンライン対戦格闘ゲームというとGGPOというもので革新的な発展をしたという記事をみてこれだと思い、GGPOについて調べていこうと思ったのだった。
インフラのブログだし。GGPO自体は2006年に初版がリリースされたらしいので結構古い技術だった。CentOS5が2007年4月らしい。古いね。

GGPOというのは、ゲームのラグを減らすもので、従来のというか古くからあったものはディレイ方式というもので、入力を待ってるという感じで遅延があるとスローモーに見えるというやつだ。GGPOはというと行動を予測して遅延が起こった時に巻き戻しする感じの仕組みらしい。実際に修正する遅延は1から3フレームくらいで極わずかなフレーム遅延を修正する。ロールバックというらしい。ロールバックという言葉の方がなんとなく有名かもしれない。知らなかったけど。

そもそもネットワークの速度が昔とは比べ物にならないのだけど、ほぼストレスなくオンライン対戦ができるのはこの技術あってのものなようだった。

あとスト6関連の動画とか見てるとEvoという大会のことは知っている人も多いと思うけれど、そのEvoの創設者キャノン兄弟のトニーキャノンさんが開発したそうです。歴史を感じるわ。

斯くしてランクマでマスターを目指すぜ。と、GGPOを読もうぜ。という2つの目標ができたのだった。

だったのだけども、この記事を書き始めたのが実は1年前の2023年7月くらいで、全く手をつけずになっていたのだけど、スト6の方はスコスコとプレイを続けていて、先日やっとマスターランクの方は達成できたのだった。1年3ヶ月でようやくできた。いやたったの1年3ヶ月と言っても良いかもしれない。大変だったわ。いやこれからがもっと大変な感じがすでにしているが。沼のときに色々と試したことはあるのでまたの機会に書いてみたい
昔と比べて、いや昔はインターネットもなかったから比べようも無いけれども、巷には攻略サイトがものすごく溢れていて、この攻略のおかげでへたっぴーな自分でも進歩できるというもの。
ただへたっぴーむけの内容というのはあまり無いような感じもするので、いろいろ考えることになるのだよね。

GGPOの話に戻して。とりあえずどんな感じに学習していくといいかChatGPTに聞いてみた。ちなみにタグも書いてくれていいね。

  1. ネットワークプログラミングの基礎を学ぶ
    1. ソケットプログラミング: PythonやC++でクライアントサーバー通信を実装する
    2. UDPの理解: パケットロス・順序保証について理解する
  2. 並行処理・スレッドプログラミング
    1. mutex(排他制御)やセマフォの使用方法を学ぶ
    2. イベント駆動型プログラミングの理解
  3. シミュレーションとロールバックの仕組みの理解
    1. 固定フレームレートの理解: ゲームの進行をシミュレートする
    2. 状態のスナップショットの保存と復元
  4. C++の知識を深める
    1. STL(標準テンプレートライブラリ)の理解: vector、list、map、queueなど
    2. ポインタ操作: メモリ管理とポインタ操作に慣れる
  5. オープンソースプロジェクトでのコードリーディング
    1. プロジェクトの全体像を掴む: ディレクトリ構造やファイルの役割を理解する
    2. 小さな機能から解析する: パケット送受信やロールバック処理にフォーカスする
  6. 実際のゲームエンジンで試してみる
    1. GGPOを使ったゲームやUnity、Unreal Engineでロールバックネットコードを実装する
  7. 参考資料を活用する
    1. ネットワークプログラミング関連書籍やC++プログラミングの教科書
    2. GGPOの公式ドキュメントを読む

1番はC言語だけど過去記事でやってたのでやったことにして、目的は5番なので、、まぁ4番だね。ChatGPTに聞こうか聞くまいが同じ結果なのな。

syntaxhighter evovled を使ってたところが文字化けしてたわけです

最終更新が2020年8月みたいで、どうもお久しぶりなんてレベルではないけれども、最近は公開せずとものんびりと昔の記事を更新はしていたわけです。
コードを表示するところは「Syntaxhighter evovled」というプラグインを使っていたのだが、どうやら「Syntaxhighter evovled」で表示しているコードの一部で文字化けしているところを見つけたわけです。
もしかすると [c]とか、[php]で書いているところがたくさん文字化けしまくっている可能性があるわけです。うぎゃあ。

この件について、wordpress.orgのサポートにも載っていた。4年前の記事だったが!古い。
https://wordpress.org/support/topic/ampersand-character/

Googleでも本件について調べに調べに調べて見ると、どうやらこのコードを書けばいいのよーってみたいな感じの定石のようなコードは見つかったので、この流行っているらしいやつを使おう。
それはこんな感じのコードだった。

function kagg_syntaxhighlighter_precode( $code, $atts, $tag ) {
	if ( 'code' === $tag ) {
		$code = wp_specialchars_decode( $code );
	}
	return $code;
}
add_filter( 'syntaxhighlighter_precode', 'kagg_syntaxhighlighter_precode', 10, 3 );

「syntaxhigher evoled」の設定画面では、ショートコードパラメータとして、[c][/c] みたいな書き方を例に載せていてご多分に漏れずこのような書き方をしていたわけで。
なんだけれども この wordperss.org のコードをこのまま使おうと思うと、[code lang=”c”][/code] みたいな感じで書かないといけないぜご安全にってことらしい。

「syntaxhigher evoled」の設定画面で引数指定のやや後ろくらいに例があるものの、この形式で書けば良さそうでしたっていう説明が書かれたサイトは、ざっくりと調べた中にはなかったりしてるのでここで書いておいても良いのかななんてな。

他にもバケがないかネットサーフィンして過去のコードを見てると、大丈夫なところもあればあかんところもあるという。
あと、プラグインもいつの間にやらまともに動かなくなっているところもあったりして、いくつかのプラグインは自分で書いて設置したんだな。
とりあえずは一応ちゃんと動いておるようです。

JessieからStretchにアップグレードしてHTTP2に対応した話

対応したっつうか今まで対応してなかったという大失態!な訳だけれど、普通に動いてはいたのでそれほど大きな問題ではない。でもやっぱりウッとなってしまう。という心境で、どうもやったつもりがやってなかったということらしい。設定ファイルにhttp2と書けば良いだけなのよ〜ということで、おお簡単じゃんっとhttp2と書いて終わった。気がする。気がする。
入れていたプラグイン。http2に対応しているサイトにアクセスすると青い稲妻がピカンと光るプラグインを入れていた。どうもその稲妻が光っていなくなくないかと調べてみるとopensslが対応してないらしいのだった。

built with OpenSSL *****

ついでに言うとNginxもdotdebというのを使ってたらしく、これもいったいいつ入れたのかってこの際だから細かいことは気にしないというのがこの場合一番で考え出すとスタートが遅れてしまうのだ。ともかく一番手っ取り早い方法を調べてみるともう流石のDebianはDebianでDebian自体をアップグレードするのが良さそうだ。自分の中のDebianは安定している説はまだある。でも令和アップデートもしないとあかん。こないだどこかで聞いて気に入った感じ。

やっぱりLinuxでなんだかんだといろいろなものにたいしていろいろとやらなくても、設定ファイルをjessieからstretchに書き換えてだね、アップグレードしたら終わったよ。っと思ったけれど最終的にはNginxとPostfixを入れ直して完了できた。プラグインが動いてなくて気付いた。監視が良くないのかな。

青い稲妻もまた光るようになったよ。設定ファイルごと変えるにはpurgeでガッツリ削除しないといけなかった。というところがポイントだったわ。

やったつもりになってたのが最大のなんかっていう、なんかですね。
そして少ししたら証明書が切れてしまった。

m9(^Д^) ぶふー

更新する気満々だったのがすっかり忘れていたようだ。満々が聞いて呆れるんだが。已む無しで昔はまったく使う気もなかった無料SSLを入れておこうとすると、ここでまたDebianすごいのが、Certbotを入れて数分で無料SSL、Let’s encryptの設定が終わった。そんなふうにまろやかに終わる。だるいだるい感じよ。

スコスコ、ドラクエ

なんとブラウザでドラクエ10ができるということを知った。時代はクラウド。しょこたんのヲでドラクエ10の実況をされていて、これなら自分でもできそうじゃんかと感じたのではじめてみることにした。最初の方は攻略代わりに実況動画を見ながら進めてみつつ、住宅街はサーバが同じとからしく、オンラインで芸能人を見に行くなんてイマドキ感の溢れるナウいことをやってみたり、そしてけっこうな人数だったけれど運良く見ることができたり、そしてこれ負荷すごそうだけどまったくモッサリしないしすげえなあとか思ったり。そして数年前のとある日のことを思い出したのは、本屋さんに並んでいたこれだった。

当時はオンラインゲームはしやんし、あんまり好きでもなかったし、いらんかなぁとまあなんとなしにはスルーしていた。ここに来てこれはこの本を読まねば(使命感)と、Amazonで本を買う。この本を読むとなんとなしにでも中のことを妄想することもできるし、オンラインゲームとなっているけれど、どちらかというとドラクエみたいっていうかこれはまさしくドラクエだった。そしてこの本はリスペクトすぎた。最後までプレイしたくなってしまった。最後までやるかはわからないが。で、勉強のためにドラクエ10をやる。勉強のために。こないだやっとバージョン1をクリアした。