
こんな電源延長ケーブルもあるんだ。 とても高い。 amzn.asia/d/0be69KJ0
rimka
2.5K posts

@rimka_com
プリコネ,ブルアカ,カゲマス,ヘブバン,ラスバレ,ウマ娘,アズレン・・・を周回中

こんな電源延長ケーブルもあるんだ。 とても高い。 amzn.asia/d/0be69KJ0






恥ずかしながら、新人の頃からゲーム開発の現場で「割り込み処理」という言葉には何度も触れてきたのに、若手から質問されてうまく説明できませんでした。きっかけは、「この関数って、コード上で直接呼んでいないのに、なぜ動くんですか?」「割り込み処理って、なぜ突然呼ばれるんですか?」という素朴な疑問でした。 自分なりに整理すると、コード上で直接呼んでいないのに動く関数には、大きく2種類あります。 1つ目は、エンジンのメインループの中で定期的に呼ばれるもの。UnityのUpdateのようなライフサイクル関数がこれです。 2つ目は、入力、通信、タイマー、非同期処理の完了など、何らかのイベントを起点に、OSやエンジン側から呼ばれるもの。現代のゲーム開発では、こうした処理をUnityやUnreal Engine、OS、ライブラリ、エンジンが用意したイベントやコールバックとして扱うことが多く、アプリ開発者が直接、割り込みベクタや割り込みハンドラを書く場面は多くありません。 ただ、その裏側には、CPU、OS、デバイス、タイマー、入力、通信などが関わる「通常の処理とは別のタイミングで処理を起動する仕組み」があります。 ハードウェア割り込みとして見ると、CPUは通常処理の途中で通知を受け取り、現在の処理状態を保存し、決められた処理へ制御を移します。 処理が終わると、保存していた状態を復元し、元の処理に戻ります。 つまり「突然呼ばれる」のではなく、イベント発生をきっかけに、通常の関数呼び出しとは別の経路で制御が移っている訳です。 アプリ側から見るとコールバック。 エンジン側から見るとイベント処理。 さらに下の層では、OSやハードウェアの通知機構が関わっている。 だから若手に説明するときは、いきなり割り込みベクタの話をするより、「エンジンやOSが、決められたタイミングやイベント発生時に呼んでくれている」「そのさらに下に、ハードウェアやOSの通知機構がある」と上から順に話す方が伝わりやすいなと感じました。 使ったことがあることと、仕組みを説明できることは別物ですね。 #エンジニア #ゲームプログラマー