UE4のソースコードを見てもわからないことはある
妹「関数の中身がもうちょっとわからないもんかなあ。ブループリントのだったらダブルクリックして中身見えるけど、シー何とかのやつだと、なんか見えないし、見えてもわかんないんだけど」
「何を見るの?」
妹「何をっていうほどのことはないんだけど。たとえばSqrtとか、どうやって計算してんのかなあ、と」
「一応ソースコードをたどっていけば、わか……らないね。これはわからないやつだ」
妹「わかんないの? 見ようと思えば見えるものなのでは?」
「そうなんだけど、この場合」
「ずーっと追いかけていって、ここまではたどり着けたんだけど、でもここで最終的に呼び出してるsqrtfっていう名前の関数は、C++の標準ライブラリだから。UE4のソースコードには中身が含まれてない。元々ある関数を呼び出してるだけ」
妹「じゃあその標準ライブラリというやつの中身を見れば?」
「コンパイラ自体もオープンソースの場合はそれも可能だけど、UE4で使ってるVisualC++というのは、ソースコードを公開してないコンパイラなものだから、そこから先はブラックボックスになっている」
妹「そういうこともあるんだ……」
「他にもオープンじゃない部分というのはいくつかある。Epic社が作ってない部分だから勝手に公開できないやつ」
妹「全部わかるわけじゃないんだ」
「ゲーム機とかスマホとかの中身もわかんないからね。この関数を使えば出来ますよ、という状態になってて、その関数を呼び出すところまではわかる。でも関数の具体的な中身はわからない」
妹「じゃあ例えば、Sqrtの中身がバグってた、なんて場合はどうするの?」
「標準のやつの中身を勝手に書き換えできないから、標準関数の代わりに自分の関数を呼び出すように変更する。ゲームエンジン内部で使う分はそのままでいいなら、ブループリントでSqrt2とか何とかの適当な関数を作って使ってもいいし。ブループリントだと速度的には問題ありそうだけど」