テンプレートを使ったゲーム開発
Posted: 2015年12月21日(月) 00:17
お久しぶりです。今回もよろしくお願いいたします。
早速ですが、今回お聞きしたいことは、C/C++ゲーム開発におけるテンプレート(メタプログラミング)の活用方法です。
おかげさまで、クラスを用いたゲーム開発の理解はかなり深まったと思います。ポリモーフィズムやインターフェースなども、理解して使えるようになりました。
そこで次のステップとして、テンプレートについて理解を深めたいなと思っています。
ところがテンプレートに関する説明は、そのほとんどが
int add(int a, int b)とdouble add(double a, double b)の二つをオーバーロードするのって面倒でしょ?だったらふたつまとめて、templete<typename T> T add(T a, T b)にしよう!
みたいな記述が多く、それだけ?となってしまって、正直そこまでメリットを感じないですし、それでこれをどう使えと...となっております。
しかし、実際STLコンテナなどでテンプレートが使われてます。
テンプレートを使用することにメリットが多いから、目にする機会が多いのだと思います。
ですが、実際にゲーム開発でどのように利用されてるのか、そういった記述を見つけることができませんでした。
そこで、皆さんにお聞きしたいのは、実際にゲームプログラミングをしている中で、どのようにテンプレートを使用していますか?ということです。
STLコンテナで使ってるじゃないか、という話ではなく、自分でtempleteという単語を入力する機会についての話です。
ゲームには、プレイヤークラスや敵クラス、アイテムクラスなどがあるとして、すべてのクラスはupdate()関数を持っているとすると、
テンプレートでT t; t->update();みたいなことができて、一括してアップデートできるようになるのかな?などと思ったのですが、
別にそんなことするまでもなく、ポリモーフィズムで十分じゃないか?という結論になりました。
まったく活用方法のイメージがわきません。皆さんはどのようにテンプレートを使っていますか?
抽象的なしょうもない質問と思われるかもしれませんが、よろしくお願いします。
早速ですが、今回お聞きしたいことは、C/C++ゲーム開発におけるテンプレート(メタプログラミング)の活用方法です。
おかげさまで、クラスを用いたゲーム開発の理解はかなり深まったと思います。ポリモーフィズムやインターフェースなども、理解して使えるようになりました。
そこで次のステップとして、テンプレートについて理解を深めたいなと思っています。
ところがテンプレートに関する説明は、そのほとんどが
int add(int a, int b)とdouble add(double a, double b)の二つをオーバーロードするのって面倒でしょ?だったらふたつまとめて、templete<typename T> T add(T a, T b)にしよう!
みたいな記述が多く、それだけ?となってしまって、正直そこまでメリットを感じないですし、それでこれをどう使えと...となっております。
しかし、実際STLコンテナなどでテンプレートが使われてます。
テンプレートを使用することにメリットが多いから、目にする機会が多いのだと思います。
ですが、実際にゲーム開発でどのように利用されてるのか、そういった記述を見つけることができませんでした。
そこで、皆さんにお聞きしたいのは、実際にゲームプログラミングをしている中で、どのようにテンプレートを使用していますか?ということです。
STLコンテナで使ってるじゃないか、という話ではなく、自分でtempleteという単語を入力する機会についての話です。
ゲームには、プレイヤークラスや敵クラス、アイテムクラスなどがあるとして、すべてのクラスはupdate()関数を持っているとすると、
テンプレートでT t; t->update();みたいなことができて、一括してアップデートできるようになるのかな?などと思ったのですが、
別にそんなことするまでもなく、ポリモーフィズムで十分じゃないか?という結論になりました。
まったく活用方法のイメージがわきません。皆さんはどのようにテンプレートを使っていますか?
抽象的なしょうもない質問と思われるかもしれませんが、よろしくお願いします。