トップページgamedev
1001コメント390KB

ゲームにおけるデータ構造・クラス設計・パターン

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/08/10(木) 20:27:06ID:BnvyxuCB
具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。

関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
0002名前は開発中のものです。2006/08/10(木) 20:45:47ID:X/dQa2Wp
はっ、意味不明
0003名前は開発中のものです。2006/08/10(木) 20:46:24ID:8+CwRGdy
設定提案とヲチと批判しかできないこの過疎板で
技術を語れるかが見物だ。
0004名前は開発中のものです。2006/08/10(木) 22:23:22ID:BnvyxuCB
抽象的過ぎたからひとまずお題を挙げておくか。
⊃「パックマン」

敵に関しては、敵の抽象クラスを継承したサブクラスで
移動アルゴリズムをオーバーライドするよりも、
アルゴリズムを別のクラスで用意して
それに対する参照を敵のクラスに持たせる方がいいのかな?
0005名前は開発中のものです。2006/08/10(木) 23:26:41ID:BnvyxuCB

+-----------------------+
| CEnemy |
+-----------------------+
| move() |
| (strategy->execute()) |
+-----------<>----------+
| strategy
|
|
+-----V-----+
| Strategy |
+-----------+
| execute() |
+-----A-----+
|
+------+---------+----------+
| |
+------+-------+ +------+------+
|AkabeeStrategy| |PinkyStrategy|
+--------------+ +-------------+
| execute() | | execute() |
+--------------+ +-------------+

クラス図で書くとこうなるのか?まあ絶対ズレているだろうがな…。
俺自身は超初心者だから間違いがあったら指摘お願い。
0006名前は開発中のものです。2006/08/10(木) 23:27:33ID:BnvyxuCB
ちょw
いくらなんでもズレすぎだ…。
0007名前は開発中のものです。2006/08/10(木) 23:29:52ID:GhkTPLBd
パックマンごときに大げさなパターンはいらねべ。
敵キャラの個別化をしたければテンプレートメソッドパターンぐらいで十分。
好きにすればよい。
0008名前は開発中のものです。2006/08/10(木) 23:38:42ID:BnvyxuCB
>>7
確かにその通りなんだが、
まあいきなり大規模なものを持ってきても
話しづらいかなと思って。
0009名前は開発中のものです。2006/08/10(木) 23:39:13ID:BnvyxuCB
一応>>5のズレ直しverを貼っておこう…。

 +-----------------------+
 |      CEnemy      |
 +-----------------------+
 |      move()       |
 |  (strategy->execute())  |
 +-----------<>----------+
          | strategy
          |
          |
     +-----V-----+
     |  Strategy  |
     +-----------+
     |  execute() |
     +-----A-----+
          |
     +------+------------+----------+
     |               |
+------+-------+   +------+------+
| AkabeeStrategy |   | PinkyStrategy |
+--------------+   +-------------+
|  execute()   |   |  execute()   |
+--------------+   +-------------+
0010名前は開発中のものです。2006/08/11(金) 00:00:57ID:YoP5XUOs
シューティングゲームの敵と敵から打たれるミサイルなんかは、
ファクトリメソッドパターンかな・・・
0011名前は開発中のものです。2006/08/11(金) 00:24:48ID:C/hX80Tz
「こういうキャラに対しては何ちゃらパターンが使えるな」
みたいなことは大体わかるのだが、
全体をまとめようとするとうまくいかないのはオレだけか?
0012名前は開発中のものです。2006/08/11(金) 00:39:49ID:jjyZUyYu
同じ方向に話を進めるためには
タスクシステムの内容を統一した方がいいんじゃね??
0013名前は開発中のものです。2006/08/11(金) 01:37:19ID:tpCf6gfL
ttp://www.gamedesignpatterns.org/
0014名前は開発中のものです。2006/08/11(金) 05:13:38ID:XHr3GWC7
名スレの予感
0015名前は開発中のものです。2006/08/11(金) 07:46:49ID:8h85L6qq
>>9
CEnemyのCって何?
0016名前は開発中のものです。2006/08/11(金) 07:51:46ID:sJYQdfLa
ClassのCじゃねぇの。
0017名前は開発中のものです。2006/08/11(金) 08:14:44ID:pd/2z5bI
MFCを知らんのか?
0018名前は開発中のものです。2006/08/11(金) 08:22:18ID:sJYQdfLa
うん、普通に知らない。
0019名前は開発中のものです。2006/08/11(金) 10:46:52ID:fe4sLs9R
charだけあれば他は要らない
0020名前は開発中のものです。2006/08/11(金) 11:46:44ID:YxjqBpJS
Cつけるのはダサいからやめろ。
0021名前は開発中のものです。2006/08/11(金) 13:15:07ID:NMgVyy7Y
じゃあ、なにつければいいのさ?
0022名前は開発中のものです。2006/08/11(金) 13:16:16ID:defJrMH6
そのクラスを直感的に理解できるよう努力すれば他に何もいらない
0023名前は開発中のものです。2006/08/11(金) 13:32:51ID:DmUndduC
Cつけるの癖になってるなぁ。
0024名前は開発中のものです。2006/08/11(金) 14:04:44ID:XHr3GWC7
コードスタイルはクラス設計とは関係ないだろ
Cの1文字ぐらい脳内削除できんのかね
0025名前は開発中のものです。2006/08/11(金) 15:22:03ID:AWZ202Sp
大文字で始まる名詞はクラス以外ありえないから、無意味に邪魔なゴミつけるんじゃないよ。
今出回ってる雑誌や書籍、それにオープンソースのコードに
Cつけてるものがどれほどあるか見てみろ。
MSなんか、C#では逆にCを「つけるな」と言ってるしな。

>コードスタイルはクラス設計とは関係ないだろ

わざわざ変なスタイルを使うやつは、高確率で変なクラス設計をする。
普通にコードを書く気が最初からないんだから。
0026名前は開発中のものです。2006/08/11(金) 15:37:25ID:mPv7ZiBt
>>25
コードスタイルについてはごもっともだけど、
>わざわざ変なスタイルを使うやつは、高確率で変なクラス設計をする。
って誰が言ってたのさ。統計とったの?
そうですか、あなたの経験上ですか。では、変なクラス設計の基準はどこに?
0027名前は開発中のものです。2006/08/11(金) 15:56:24ID:XHr3GWC7
>>25
お前の言っていることは間違いではないが、焦点がズレているな
俺が言いたかったことは、>>9の敵クラス名がCEnemyだろうがEnemyだろうが
クラス図には何の影響もないということだ
変なスタイルを使う奴は云々という決め付けはいらない
設計がそこに転がっているんだからその優劣を語ればよい
■ このスレッドは過去ログ倉庫に格納されています