現在、C# .net XNA ゲーム エンジンを開発しています。
エンジンの設計について質問がありました。まず第一に、エンジンに独自のスクリプト言語を組み込むことができるようにしたいと考えています。そのためには、ゲーム内のすべてのオブジェクトのすべてのプロパティ、または変更したいオブジェクトだけにアクセスできる必要があると考えていました。
私が最初にやり始めたのは、文字列でアクセスできるようにすることです。そのために、画面に描画できるすべての「エンティティ」に、すべてのプロパティのディクショナリを持たせました。プロパティの追加は、Entity クラスで手動で行われました。それ以来、多くの辞書があり、それらの辞書があまり多くない場合、GC が遅くなる可能性があることを読みました。それが私のゲームで今起こっていることだと私は信じています。fps を失い始める前に、色、位置、テクスチャなどの基本的なプロパティを持つエンティティを最大約 1000 個しか取得できません。
辞書よりもさらに遅いため、私が行っていることやリフレクションを使用する以外に、その場でオブジェクトのプロパティに動的にアクセスできる他の方法があるかどうか疑問に思っていました。それとも、デザイン全体を再考する必要がありますか?