エンジニアと生成AIの活用の先をみたい

いろんなブログなどで生成AI活用して生産性上がりました!などの記事を見るけど正直ふーん...ぐらいしか思えていない自分がいる。

自分がコード書きたいからというのと、生産性上がりました=サービスとして成長したり、世の中の役に立ったり、エンジニアの生活がよくなりました。というのをあまり聞かないからかもしれない

また、本当かどうかわからないけど、コードレビューの時にAIが作ったのでわからないとか、機能を作ってもらったけどわからないとか、わかる人がプロンプトを作ったけどその人がいなくなってからそれをメンテできないとか、なんかコピペエンジニア、オフショア開発による空洞化、CI設定おじさんみたいな印象を持ってしまっている自分がいる。ちゃんと使っている所は使っているのだろうけど、それはもう20年以上前に通った道だし、何よりなんか限定的過ぎないか?という。

違うのはそれをAI自身がなんとかできる。という所は違うのだろうが、それまでにどのぐらいの時間とお金をかけたんだろうか?それに費用対効果は見合っているんだろうか?と常々疑問に思う。

結局、金の弾丸でなんとかするみたいな感じになると、自由経済の原理としては正しいのだろうけど、良くも悪くも低くなったエンジニアへのハードルがまた上がってしまうのと、それは本当に世の中がほしいエンジニアなのかな?という気持ちにはなる。

個人的には

  • 世の中が求めているエンジニア像が変わっていくのか?
  • 技術へより簡単にアクセス・理解されて、そこからよりよいアイデアを持った人(AI自身かもしれない)が新しい技術を生み出すのかとか
  • 今のインターネットにどう影響を与えるのか
    • 例えばAI同士がネットワークを持ってプラットフォーマーになるとかね
    • そもそもインターネットという単語が生きてるのか?

それとも「エンジニアリング」というものが誰も想像できなかったものに置き換わっているとか、なんかそういう「2025年は何言ってるんだ?」→「2045年はこうでした」みたいなそんな世界を見てみたい気持ちがある。それがユートピアディストピアかはわからないし、2045年のシンギュラリティなのかもしれない。もしかしたらAIやAGIの先の別のものかもしれない。そういう未来を見てみたい。

(ローンを返さないといけないので頑張ってついて行ってその世界でも働けるようにします)

perf.tokyo #1 で5年ぶりに人前で発表した

発表当日

X(Twitter)にたまたま流れてきたので、どの会社に所属してるときでもずっとパフォーマンスチューニングやってたからなんか話せるかなーと思って話してきた。

まずは、運営のみなさん、参加者のみなさんありがとうございました!!!

perftokyo.connpass.com

Webアプリケーションのチューニングをサーバ、インフラ、フロントといろんな話を5つぐらいしてきた。 トップバッターの発表でちょっと緊張したけど、懇親会で「「ログ見ようね」という一番基本的な話だったから一番最初の発表でよかった」という言葉をもらったのでそれが何よりも嬉しかった。

speakerdeck.com

懇親会で話してるとやっぱりみんな色々苦労してて特にデータベースで困ってるんだなぁという印象。そうですよねーー

発表前日まで

申し込んでから「何を話すか」はそんなに悩まなかったのだけど、「どう話すか」はちょっとだけ悩んだ。
前に人前で話したのはSpeaker Deckによるとコロナ前の2020年でそれも所属してる会社が主催している勉強会だったし、それまでに話してた部分もあったので、上手だったかどうかは置いておいてどう話すか?はなんとなくわかっていた。その時はエンジニアリングマネージャーをやっていたというのもあって初対面の人と話すのも慣れていたし。

今回は5年ぶりに人前で話すとなった時に淡々と話してもよかったけど、気軽に聞いてほしいなぁというのもあったので、サイバーエージェントの同じ部署で飲食しながらLTやったのを思い出してそれと同じラジオ形式でやってみた。
これは昔TRPGとかやってたからかもしれないけど、ラジオ形式だと一種のロールプレイになるので、変に緊張せず気持ち的に楽というのもある。

資料の作り方とかはテキスト書いて、パワポに清書する流れなのは仕事でもやっていることなのでさして苦労はなかった。
同じエンジニアで自分より文章書くのがうまい妻にレビューしてもらえたのは大きかったかな。忌憚なくレビューしてもらえるし、技術力も人並みにあるので的確なレビューをもらえた。ありがとう。

後はひたすら練習してた、月曜に3回やってスライド直して、水曜に3回やって、普通に話した練習だと大体このぐらいで終わるから、本番ではもうちょっと速くなることを想定して、スライドにない言い回しや身振り手振りを追加して、最終的にこのぐらいで終わるかな。という見立てはできてて、実際に本番では見立て通りの時間で終わった。

昔、そーだいさん (@soudai1025) が発表は3回練習するというのを呟いていて、いろんなところで発表している人でも3回練習してるんだと。だったら発表になれてないし得意でもない自分はもっと練習しないと話せないな。と思って練習は5分LTでも20分の発表でも納得するまでやるようにしてる。

ということで、今週は頑張った!!明日はテニスだ!!!

設定に悩むゲーマーのPC版SF6体験(タイトルはAIが作成しました)

PS4でプレイしていたストリートファイター6(以下、SF6)をPC版に変えた。ゲーミングPCを買ったのは初めてでいろいろ分からなすぎたので、誰かの役に立てばよいなぁと思って書いておく。 なお、あらかじめお断りしておくが、これがみなさんの環境に必ずマッチするというわけでもなければ、これが最高の設定というわけでもない。(というかそれがあったら教えてほしいdesu)

2025/05/12時点で、こういうサイトを見たよ。こういう調べ方をしたよ。という参考になれば幸いである。

環境

設定の方向性

まず、ゲームをプレイするにあたって優先順位と方向性をざっくり決める。
ワールドツアー、オフライン対戦は考慮しない。ネットのランクマ・カジュアルマッチのみ。という前提条件を入れている。

3つの方向性を出した

  1. 最低遅延 ただし、カクついたりするのを許容する
  2. 1〜2 fpsの入力・出力遅延は許容するが、ティアリング(1枚の画像の中に複数フレームの画像が描画されてしまい、映像が途中で左右にずれたように見える現象)は許容しない
  3. グラフィック重視

まずグラフィック重視は外した。ネット対戦がほとんどなので可能な限り遅くなる現象は排除する。
また、SF6だとパリィとかあるし、カクつきなどあるとやっぱりプレイしてるとストレスになるので、画質を含めて見えにくいというのも避けたい。ということで方向性は2番とした(まぁその後ブレるんですが...)

まず何から手をつけてよいか分からない

設定できるところが

  • ゲーム内の設定
  • NVIDIAの設定
  • モニターの設定
  • Windowsの設定

この時点でどこから何に手をつけていいのか分からないし、出てくる単語も分からない。何?G-SYNC?VRR?PS4にはそんなもんなかったぞ。なので、まずは分かる所から手をつけていくのと、ストリートファイター6のコミュニティに関係している人のブログや動画、ストリートファイター6で具体的な検証しているサイトを漁っていく所からスタートした。

初手でやらなかったのはChatGPTなどに聞くこと。理由は簡単でサービスによって言ってることがまったく異なるので、最初は用語解説に使っていた。(ぶっちゃけ、スタッターとかティアリングとかすら知らんかった)

ゲーム内の設定を見る

一番わかりやすそうなかなーと思った(けど全然そうではなかったw)のと、設定する項目が他項目と比べて少なかったのでまずは小さく初めてみる。

参考にしたサイト、動画

ここで、VSync(垂直同期)をどうする?という宿題が残る。
そもそもVSyncとはなんぞや?から調べていく。

NVIDIAの設定

垂直同期とG-SYNC

まず、垂直同期をオフにするとテアリング現象がおきて、オンだとスタッター現象が起きるということを 【西川善司のグラフィックスMANIAC】VRR=Adaptive-Sync=FreeSync=G-SYNC。ゲームで重要な可変フレームレートについてまず知るべきこと - PC Watch で知る。なにそのデッドロック

それを解決するためにVRR(今回はG-SYNC)という技術があるらしい。何じゃそれ。 次にVRRについてお勉強する。

ずっと参考にしているのはこのサイトで、かなり検証されているので個人的には納得できている。
【動画で実証】60FPSのスト6でも240Hzモニタで遅延が減る!PCのほうがPS5よりも有利という事実 : 自作とゲームと趣味の日々

また、上の西川さんがVRRについての説明を配信していた(この配信が記事になったのかな?)


www.youtube.com

こちらはFPSのゲームで、設定云々よりもそもそもVRRとは?というのをわかりやすく解説していた。


www.youtube.com

こちらのPC Watchの若杉さんのポストも参考にした

このあたりを見ると以下の設定をすると、目的を満たせそうということを理解する

  • G-SYNCはオン
  • NVIDIAの設定で垂直同期をオン
  • 最大フレームレートに制限を入れる

その他の設定

NVIDIAのコントロールパネルで3D設定の管理をみると、設定がめちゃくちゃあって、説明を読んでも分からん!!! 1個だけ分かったのは「テクスチャフィルタリング - クオリティ」は説明欄にちゃんと書いてあったので、「ハイパフォーマンス」に一度してみてから、なんかやばかったら考えるか。ぐらいで設定した。

残りはひたすらChat GPTやGeminiに「これなに?どうなるの?」の質問を連呼してた。それぞれが言ってくることが真逆だったり、前提が変わってたりしてるので、ひたすら前提を伝えるという、対人間にするコミュニケーションと同じことをやっていた

  • テクスチャフィルタリング - クオリティ」を「ハイパフォーマンス」にすると、自動的に「トリリニア最適化」と「異方性サンプル最適化」が変わるのでそれはそっちに任せる
  • テクスチャフィルタリング - ネガティブLODバイアス」はChatGPTとGeminiくんが珍しく同じ答えを出したので「クランプ」に設定。ちらつきや視覚ノイズを防止。より安定した描画が得られる。らしい
  • 低遅延モードは「オン」と「ウルトラ」で未だに悩んでいるが、いったん遅延が少ない「ウルトラ」で検証中

モニターの設定

モニターはオーバードライブ(OD)を「オフ」のままだと、リフレッシュレートが平均60Hzになって、「オン」になると平均120Hzぐらいでるという、よく分からない事象が起きているので「オン」にしている。

ちなみに GeForce G-SYNC モニター: メーカーおよび仕様 でモニター毎に可変リフレッシュレート範囲が検索できる。自分のモニターは48-240Hzになっているのでもうちょっと出てほしいが... 😑

最初は可変ODという項目があって、何にも説明がなかったのでChat GPTくんに聞いたら UFO Test: Ghosting / Pursuit Camera / Pixel Response Test を紹介してもらったので、それで見やすいレベルに設定した。

また、最初はODの上限値を280Hzにしていたが、長時間プレイすると途中でちらつきが発生したので270Hzに落として様子を見てる。

Windowsの設定

こっちはこっちでいろいろ設定できて分からんってなって、まず用語から同じように調べてた。 設定がNVIDIAのコントロールパネルでやるのとかぶる所もあった(これはゲーム内も同じ)ので、そこはいじらないようにした。また「自動HDR」などの「自動〜」は安定しないだろうなぁと思ってオフにしている。

やったのは

  • ハードウェアアクセラレータによるGPUスケジューリングは「オン」
    • ただしググったり、Xをみると怨嗟の声も聞こえてくるので何かあればオフにする
  • アプリケーションのカスタム設定でSteamとSF6のGPUのユーザ設定を「ハイパフォーマンス(NVIDIA〜)にする
    • Windowsに任せず明示したい
  • ゲームモードはON
  • GameBarはオフ
  • スタートアップアプリで余計な物は無効にする
  • 動的リフレッシュレート、可変リフレッシュレートはオフ
    • NVIDIA側コントロールパネルでやってるので二重にやるのは無駄かなと思っている

計測する・体感する

【動画で実証】60FPSのスト6でも240Hzモニタで遅延が減る!PCのほうがPS5よりも有利という事実 : 自作とゲームと趣味の日々 のページで出てきた「CapFrameX」とNVIDIAの統計情報を使って計測してた。

重いとされている「Ranger's Hut」ステージでCPU同士を戦わせたり、アンテナが低い所まで検索範囲広げたりして実際にカジュアルマッチをして数字と体感の両方で調整してた。

画像にはNVIDIAの統計情報が映ってないが実際は映している

いったんまとめ

途中で固定リフレッシュレートがいいのでは?とか寄り道も大分したのだけど、数字と体感両方とも悪くないので、最終的には上記のような設定に今は落ち着きつつある。ちなみにPS4をPCに変えたら、一気にランクが2つ上がったので俺は今まで界王星でプレイしてたのかな?という気分になって少し泣けてきた。

これみんなどうやって設定してるのよ...みたいな感じでPS5, Switchなどのゲーム機はこの辺をうまく隠してくれてるのはすごいなぁと思った。

今もまだ何かしら設定とにらめっこしてるので、何かよい設定があれば共有できると少しはSFの世界に恩返しできるかなぁ...

おまけ(NVIDIAのドライバーのダウングレード)

NVIDIAのドライバーのアップデートが来たわーい。と思ってアップデートした直後にバグがあります。という記事を見つけてロールバックしてた。というか、どれが安定してるのかがまったく分からんので、こういうときこそChatGPTくんにWebから検索してもらって安定バージョンを教えてもらった。

アップデートが来て少し待ったつもりだったけど、やっぱりこの辺はデリケートなんだな...と痛感した

買って早々のアケコン(M-GAMING A01 Arcade Controller)を少しだけ壊したけどすぐ直せた

2019年からHORIさんの リアルアーケードPro.N HAYABUSA を使っていて、その後家の事情とかもあり三和電子の静音タイプのスティックとボタンをつけてプレイしていた。

hori.jp

ストリートファイター6をプレイしていくとどうやっても8ボタンがきついというか、一番右下のボタンにインパクトボタンをアサインしているので、インパクトがまったく打てない、返せないという困りごともあり、そんなときにあのプロゲーマーの「NEMO」さんが監修したアケコンがでると言うことで二次販売で買えた。ちなみに、実際にどうアケコンが作られているか?という動画も出してて、こうやって作られてるんだ。と楽しかった。

m-gaming.jp

先日、アケコンを床に置いて、PCをちょっといじってた時に何かの弾みでアケコンをつないでいるUSBケーブルの根元の固い部分に変な力をかけてしまって、ケーブルとアケコンをつないでる部品を壊してしまった。ケーブルがちゃんと刺さらなくなっていつ外れてもおかしくない状態。 ああーやっちゃったなぁと思ってた時にあれ?これ筐体にネジでつけているし、ボタンやレバーも三和電子の既製品だから買えるんじゃない?と思ったんだけど、この部品の名前が分からない。

うーん... と悩んでいたときに、昨今のAIサービスは画像もあげられるから、Geminiに画像を食わせたら分かるんじゃない?と思ってダメ元で画像を食わせたら型番まで分かった。AIすげぇ。

NAUSB-W - Neutrik という部品らしくて確かにそっくり、しかもAmazonでサクッと購入できたし、取り替えもネジ外して、交換するだけというめちゃくちゃ楽だった。

また同じことをやりそうなので、家にあった無印の入れものをひっくり返してそれにアケコンを置くようにしたのと、そもそもケーブルつないでいる固い部分を小さいL字型のUSB 2.0 ケーブル 2m Type-A - Type-B(L型左向き) オス/オス というやつに変えた。固い部分が大分小さくなったのとGemini曰く「ケーブルが真後ろではなく、横方向に出るようになるため、足で引っ掛けにくくなったり、引っ掛けた際の力がコネクタに直接かかりにくくなる効果が期待できます。」とのこと。 今の所は変な遅延とかもないのでしばらくはこれでやろうかなぁとは思っている。

画像検索とかで調べるのが大分楽になったというのもあるけど、既製品で構成されているというのはとてもありがたい。使っていれば必ず壊れたりするものなので、そういうのが気軽に買えるもので作られていて、自分で交換できるというのは本当にありがたい。メーカーさんやNEMOさんに感謝。(探しにくい部品は部品名を公開してくれていたらもっと楽だったのはそうだけど。)

アケコンが作られるまでの動画 youtu.be

ストリートファイター6をやめた その後立ち直ったかもしれない

hachi.hatenablog.com

のその後のエントリーになります。

アケコン以外のPS4とかモニターは全部処分してしまったのだけど、その後もYouTubeやブログでスト6関係の動画を追いかけていたり、PS4で実際どのぐらい不利だったのかとかブログなどでずっと調べていた。自然とそうやっていて自分で気づいたときに一人でウケてた。

自分の実力がないというのが一番の原因ではあるし、ハードが何であろうがそこは変わりは無いのだけど、やっぱり妻に「あなたらしくない」と言われてじゃぁ今までの自分だったらどうしていた?特に毎週テニスをやってる(草トーナメントに出る実力も体力も無い)し、自分の思い通りのプレイなんで週1回1レッスン80分の内10分できていたらいい方なのになんでできてるんだろう?と考えてみた。

テニススクールはある程度のプレイができる人たちを同じクラス分けにするのだけど、当然その中でもレベル差はある、年齢幅もある、得意なプレイ、苦手なプレイみんな違う。でも楽しめている。 それでも続けていられているのは2つの理由があるなぁと思っている

  • 自分だけではなく周りの人がいい人で同じテニスが好きで楽しんでいる
    • 上達したいかは明確に聞いたことが無いので分からないけど、ちょっとでもうまくなりたいという言う人もいる
    • それ以上にテニスを楽しんでいていいプレイにはみんなで褒めて、テニスが好きで楽しんでいる
  • 自分が上達するために自分なりに無理しない範囲でやってる
    • 特に自分が主にやっていた時は高校時代だったので、そのときからラケット含めていろいろ進化しているので、打ち方などを今の常識にアップデートしないといけない
    • 分からないところとかうまくいってないところはコーチに聞いたり、家ではYouTube見てる
    • レッスン後に風呂の中で反省会をしてそれをesaにまとめている。翌週の練習前にその課題を解決できるか調べたり、家で時間があるとずっと素振りとかトスアップの練習してる
    • esaの記事は2022年から134件あった

要は自分も含めて楽しめていることと、無理しない程度だけどとことんやってるなぁと思った。 と考えたときに、スト6をこのレベルまでやってる?と言われるとやってない。一人でやるものではあるけど、今はとてもよいリプレイ機能があるわけだし、YouTubeなどでプロがいろいろ動画を出してくれている。

って考えたときに、なんか中途半端だな。と思ってしまった。大会に出なくても別にめちゃくちゃうまくならなくても、今の中途半端感で止めるのはやだなとなってから火がつきました。

プレイをする環境もある。上達するためのツールもある。次に止めるときは自分が納得するプレイができるようになって中途半端ではなくやりきった。と思ってやめたい

ストリートファイター6をやめた

格闘ゲーム(格ゲー)は昇龍拳出せないレベルで苦手だけど、小さい頃から餓狼伝説KOFなどなどゲーセンでやってたり、大人になってからスト4、スト5のそれぞれ途中から自分でもプレイしていた。 スト6はプレイ初日からずっとやってたけど今日止めた。

ゲームとしても面白かったし、スト5のころからプロシーンを追い続けているのも楽しかった。なないさんがお亡くなりになったときは、妻曰く「今まで見たことがないぐらい落ち込んでいた」し、こないだのカプコンカップとか最高だった。日本人選手だけじゃなくて海外の選手のプレイにも燃えたし、特にSHUTO選手がトーナメントで勝ってるのを見てた時は5でまったく勝てない時期を見てた自分としてはめちゃくちゃ感情移入してしまった。

自分でプレイしてても、本当に下手だったけど5の頃から楽しかったし、6も楽しかった。本当に開発の人たちが格ゲーに対して危機感を持って新しい人たちを増やしたいという思いを持って細かいところまで気を配って作ってるんだなと言うのが自分でも分かるぐらいに丁寧に作られていた気がする(ワールドツアーはやってないけど)

でも、今日止めることにした。

自分が今PS4でやってるからというのもあって、外的要因が理由でどこかのタイミングで止める可能性はあるのかなぁと考えてたけどそうではなかった。考えていた外的要因はほぼゲームをする時間がない状態でPS5を買うのもコスパ悪いし(あとPS5ほしいなぁと思っていた時に変えなかったのもある)、ゲーミングPCは20万という30年前のパソコンみたいな値段をしてて高すぎる。例えば今のアケコンはHORIさんとかを除くと大体がPS5,PC対応となっていてPS4はもう除外されている。

でも外的要因ではなく、自分の気持ちが原因で止めることにした。

理由は今まではまったく勝てない時期が長く続いて、それだけならまだそういう時期もあるよね。こういうプレイしたらそれは負けるよね。という自分の中で納得できる理由ができて、そこに折り合いをつけることができていた。

でもこの1〜2週間以上は毎日夜遅くまでやってもまったく勝てない時期が続いたのに加えて、なぜか自分の中で納得できる理由も見つけられなくて折り合いがつけられなくなってしまった。 要は負ければ負けるほど、ストレスしか溜まらなくなってしまって、解決方法も見つからず、辛い気持ちでプレイをしていた。

それこそ台パンするとかそういうことでしか、ストレスの発散場所がなくなってしまって、最後にはその場所もなくなってしまって、八つ当たりがもっとひどくなっていた。

そのときに「こういう状態になってまで続けるのは何より自分のために一番よくない」と思ったので止めることにした。後付けではあるがゲーム作ってる人にも失礼だと思うし、ゲーム業界を活性化させようとしてる人たちにも後ろめたい気持ちが芽生えている。

決めた翌日にPS4は買取に申し込んで、モニターはリサイクル申し込んだ。アケコンは粗大ごみでお金がかかるのでしばらくは置いておく。2週間前の自分ではまったく考えられなかったし、1週間後にはまたやりたくなってるのかもしれないけど、今はこれでよいと思っている。

プロシーンをこれから見続けることができるかどうかも分からない。また楽しくプレイしたいと思えるとそれは一番幸せなんだろうけど、そういう日がいつか来るといいな...

ELECOMのトラックボールIST PROをレンタルして使ってみた

少し前にELECOMのトラックボール IST PROをレンタルして使ったので感想を書く。 ちなみにトラックボールを常に使ってたのはKensingtonのトラックボールで10年ぶりぐらい。 Macロジクールトラックボール試してみたが結局購入しなかった。

www.elecom.co.jp

もとめていた機能

  • Magic Mouse 相当の動きができる
    • 1ボタンでデスクトップの左右を移動できるとか
  • 1台で複数のMacに接続できる
  • Bluetooth / Wifiなどの有線接続でないこと

あまり気にしてないもの

  • 手のひらタイプか親指タイプか
  • dpiの切り替え

感想

手のひらサイズにちょうどよく、ボールの滑りやボタンクリックもよくて、さすがいい値段するだけある...と関心してた。電源スイッチもMagic Mouseと違って裏にない!!
が!!!
結論はお見送りでした。
理由は

  • オンボードメモリ(ハードウェアモード)ではスクロールの左右スクロールの速度が変えられなくて、スプレッドシートとかで結局Shift + ホイールを押すことになる
  • マウスアシスタント6を使うと「進む」ボタンを押すと、なぜか1passwordのメニューのクイックアクセスが開く。ちなみに command + →を「進む」ボタンにアサインするとスプレッドシートの右端にカーソルが行くので却下でした

となってしまいレンタル終了です。

逆にこの辺が気にならない人でお金出せるなら買いだと思う。

オンボードメモリの機能とマウスアシスタントに機能差があるのはしょうがないけど、スクロールが変えられないのは基本的な機能じゃないかなぁ...と思っているのでそういう意味では残念なんだけど、初期ロットだからまぁ長い目で見ると改善されるんじゃないかな。というのは期待してます。お願いします。ELECOMさん