次フレームの世界のコピー(http://d.hatena.ne.jp/propella/20070117/p1)

ゲームプログラミングにおいては、シミュレーションと同様に多体間問題が結構響いてくるので、いかにパフォーマンスを殺さずに実行順を無視するかということに非常に心を砕いています。
1.常に干渉は一方通行(優先順位を元に「相互」作用をあきらめる)
2.クリティカルな部分(主にオブジェクトの追加と削除)だけ、「Δt後の世界」を別途持つ
3.十分な時間がたったら相互作用の実行順の影響はきっと収束するだろう、という前提ではなから無視して考える(^^;)
まぁ、主に使うのは3.ですが(^^;)、ネットワークが絡む時には責任範囲をクライアントごとに決めて1.を使ったりもしますね。
次フレームにあたる世界のコピーを統一アルゴリズムで作成するというHaskellmonadの考え方は「ふつける」を読んだときに感銘を受けました……が、関数型言語をどうやって実装したらいいのかとっさに思いつかずに「これは私には荷が勝ちすぎる」と実装をあきらめた記憶があります。あ、いや、見たアルゴリズムを片っ端から自分で実装しようという方針は、実際問題として現実的ではないにしても(^^;)。
そういや、同じ理由でPrologもうまく使えないんだよなぁ。今なら制約や推論をうまく実装できるかなぁ。


話がずれた。閑話休題
私からさらっとΔt後の世界という考え方が出てくるってのは、無意識のうちに時間を離散情報として見ているためだとは思っています。自分の書いた微分形式(の、はずの)の数式になぜかΔtという変数が出てこないとか。
微分積分の関係を考えるには必ずΔtの意識を強く持つ必要があると思っています。id:propellaさんがeToyをみて、「微分形式で世界を見ることをすぐに理解できはず」という言説に対する不信感を抱いているのは、この「Δtが表から見えない」ことに起因するんじゃないのかと思っています。タイルの記述は「forward by 10」といった感じでどこにもΔt入ってませんし。
全部の数字に単位をつけるとかすると、見え方が変わってくるんじゃないかなぁ。「forward by 10(pixel/frame)」とか。
どうでしょうか?