[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 07/21 13:53 / Filesize : 166 KB / Number-of Response : 549
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 [2008/05/23(金) 21:10:59 ID:8M1gqhPX]
具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。

関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。

前スレ
pc11.2ch.net/test/read.cgi/gamedev/1155209226/

テンプレ追加事項あったらよろすく

127 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 07:59:00 ID:XCulGsMF]
すみません。ついカッとなってまたスレ違いのこと書いちゃいました
消えます

128 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 08:43:38 ID:S3/2UtrA]
ネタじゃなかったら真面目に一度精神科に行くべき。
明らかに躁鬱の傾向が見て取れる。
過度のストレスで脳に器質的な損傷が出来てるかもしれん。

129 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 09:01:33 ID:VtZ5ywY1]
>>123
何も語れない馬鹿よりはマシ。

130 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 09:28:24 ID:I4JuM713]
まあ、消えなくていいからまた、スレ違いじゃなくてよさげな情報あったら教えてくれよ

131 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 10:03:51 ID:4WjvpweZ]
>>129
さすがにそれはねーよw
スレ違いでも知識をひけらかすほうが賢いと?

まあ、あまり過疎ってもらってもつまらんのだが・・・


132 名前:名前は開発中のものです。 [2008/07/06(日) 13:03:17 ID:cXpJQpiz]
tunnelでおすすめのゲームを教えてkれ

133 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 15:04:16 ID:ZiAdcqL1]
VIPから来ました
ギャルゲひっさげて殴り込んで欲しいリア充外人サイトがあると聞いて

134 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 16:19:57 ID:le8Gr2pO]
いや、作者じゃないと殴り込めないわけだが

135 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 16:49:47 ID:NhLrwJLQ]
おかしな奴の言い分もわかるぜ
日本の企業は総じて、コミュニケーション能力だのなんだの
わけのわからない能力やノウハウを好んでそれを要求するくせに
それらを他人に教えるようなことはしないからな、ヒントすらも
異常なほど排他的だ
数年前に某大作RPGの下請けの社長様が
「3Dできる奴なんて腐るほどいる死ね、コミュニケーション能力のない奴は死ね」(意訳)
って新聞記事に載せてたの思い出した
笑える、うひゃ



136 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 17:01:01 ID:a3zGOuXr]
マ板でやれっつの
あーあ

137 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 17:06:30 ID:NhLrwJLQ]
ほらクソども設計について語れや

レイヤスーパータイプは
class Devicer { static Device device; }
で、スーパークラスとしてDevicerを使うことだ覚えとけ

Application Controllerは
class AP {
View GetView(入力と状態値);
Command GetCommand(入力と状態値);
}
引数に入力情報や状態を判断する値を入力すると
それに適したViewやModelに対するCommandを返すものだ
覚えておけ、クソども

138 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 17:44:48 ID:bleemPMj]
みんな独自のウィンドウマネージャー(画面管理)クラス作ってるのかなあ

139 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 22:29:37 ID:mQf6Jrcq]
>>135
良いこというなぁ。
禿同。

社長に。

140 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 22:41:15 ID:NhLrwJLQ]
シーン遷移をきれいに実装したいという話なら、俺は否定するぞ
ジャンルにもよるが大抵のゲームで使うシーンは、多くてもせいぜい十にも満たない数だ
この規模の小さい状態遷移を、そのまま適当に実装してもとくに肥大しない
後で追加が頻繁に発生するとも思えない、適当に修正しても特に難しくはならない
こういう部分に、色々な知恵を絞ったコードを書くことに意味はない
逆にそのクラスの為に他の部分にしわ寄せが行って、
難しいロジック部分や画面描画部分に関係のないシーン遷移のコードが入り込む
無駄に依存関係が発生し複雑になる、遷移するためのコードが分散して修正が難しくなる

やるんだったら他の部分に影響を及ぼさない程度にしておけ
無意味に分断しすぎて複雑にするな

141 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 23:15:17 ID:bOQhFRQW]
>>140
めんどくさいのは、シーン遷移よりキャラクターの状態遷移だよな。仕様変更が
わりと発生しがちな部分だし。

142 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 23:34:33 ID:NhLrwJLQ]
>>141
同感だ
そういう箇所に擬似コルーチンを使ってる
前はState使ってたが、あれは追加には強いが変更に弱いな、複雑になって死んだ
単純ならそのまま状態変数で適当に書いてもいいが
コルーチンのほうが書いてて楽しいな

143 名前:名前は開発中のものです。 mailto:sage [2008/07/06(日) 23:47:58 ID:bleemPMj]
状態が変わる時は自滅させてから、見た目同じで中身は別の敵オブジェクトを生成するとか。


144 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 00:57:38 ID:FUQ1BpEu]
>擬似コルーチン
浅学な俺にコレについて詳しく

145 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 04:37:03 ID:ohkg3t4w]
>>144
以前けっこう調べた俺がコレについて詳しく

コルーチン
 並列実行をさせない(できない)スレッドのこと。外国人はコーディングの際 coro と略すこと多し。
 メリットは、排他処理が不要、ネイティブスレッドに比べてコンテキスト切り替えが軽い(もちろん実装次第だが)。
 デメリットは、切り替えタイミングをプログラマが指示する必要がある、CPUがデュアルコアでも恩恵が受けられない。
 最近ゲーム関係でよく聞くようになったが、アルゴリズム的にはすんごく昔のクヌース本にも載っているらしい。
 マイクロスレッド、協調的マルチスレッド、ファイバー(Windowsのみ)、などの言い方があるが、
 ゲーム業界ではコルーチンが一般的かな?
 ネイティブスレッドではないので擬似的なスレッドと言えるが、「擬似スレッド」という呼び方は
 よく混乱を招くようなのでお勧めしない(後述するように、スレッドを擬似的に再現する手法は他にもある)。
 Cで実装する場合は、たいてい手動でスタックポインタを切り替えることで実現する。
 主な実装:
  アセンブリで実装:作成難度高、コンパイラ依存、移植性なし、使い手にもスキルが必要(スタック溢れ対策など)
  大域ジャンプで実装:作成難度中、コンパイラ依存、やや制限がある
  スクリプトで実装:スクリプトのVM(例えばLuaやSquirrel)に任せる。使うのは簡単で制限も少ない

擬似コルーチン
 コルーチンっぽいことを擬似的にやること(を、>>141は言っているのだと思われる)。
 主な実装:
  マクロで実装:作成難度低、移植性高い、制限多い、読み手には超分かりずらい


感じを掴むには、LuaかSquirrelでコルーチンを触ってみるのが一番手っ取り早いと思う。

以下は直接関係ないので、混乱するようなら読み飛ばして。
・昔のMacOSやWindowsで言うところの「プリエンプティブでない」マルチタスクの仕組みは、コルーチンの親戚。
・RubyやPythonのスレッドも、一般的な実装ではネイティブスレッドではなく擬似的なスレッドらしいが、
 明示的にコンテキスト切り替えを行うわけではないのでコルーチンとは異なる。
 Javaではこのような擬似的に実装したスレッドをネイティブスレッドに対してグリーンスレッドと呼ぶ。



146 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 07:19:25 ID:1RaeXbIY]
コルーチンを使わなかった場合

if (frame <= 100)
 GoToLeft();
else if (frame <= 200)
 GoToRight();
 :
以下延々とつづく

コルーチンを使った場合

for (i = 0; i < 100; i++)
 GoToLeft(); yield;
for (i = 0; i < 100; i++)
 GoToRight(); yield;
 :

147 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 07:20:47 ID:1RaeXbIY]
ミスった orz

for (i = 0; i < 100; i++) {
 GoToLeft(); yield;
}
for (i = 0; i < 100; i++) {
 GoToRight(); yield;
}
 :

148 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 07:24:44 ID:1RaeXbIY]
コルーチンは、タスクシステム総合スレで話題が出てたね

149 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 08:00:36 ID:FUQ1BpEu]
あー、マイクロスレッドのことか!
それなら一応分かるような気がしないでもない

でもC++じゃあ無理だよね・・・

150 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 08:00:37 ID:0ql4peFo]
fiber?

151 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 09:17:09 ID:1RaeXbIY]
>>149
ネイティブに落とされる言語だと実現するにはコンパイラ依存になるんじゃないのかなあ?
スタックいじるし。

>>150
Windows用語ではそうかと。

てか、要点は>>145に書いてあるなw
うまいまとめだ

152 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 10:04:53 ID:BeipJAsv]
コンパイラ依存じゃなくてアーキテクチャ依存だ。
setjmp()でコンテキストを保存したあと、保存したコンテキストの
スタックポインタとリターンアドレスを書き換えてlongjmp()で戻すだけ。
C++だけで実装可能だぞっと。

153 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 13:31:17 ID:yE1V62Sc]
fiberはRubyでも使われてるよ
スレッド(糸)より細いものだからファイバ(繊維)

あとJavaScriptにも1.7から導入されてるぜい

154 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 22:11:23 ID:oT4ePMXj]
マイクロスレッドは理想だけどそこまでトリッキーなことやる踏ん切りが付かない

155 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 22:26:27 ID:yE1V62Sc]
やっぱスクリプト以外ではやる気しないな



156 名前:名前は開発中のものです。 mailto:sage [2008/07/07(月) 22:30:56 ID:nV3j1Oo/]
タスクシステムはコルーチン実装の一つだね

157 名前:名前は開発中のものです。 [2008/07/07(月) 23:47:06 ID:ZC8HSbxq]
コルーチンの「コ」って子供の子って意味じゃないよね?

158 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 00:00:56 ID:2Ffcfnsn]
cooperativeと一緒のco-だろ?

159 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 01:20:29 ID:DPfKtgJc]
俺はオブジェクト指向で、シングルスレッドだな。

常にメインループ内で、オブジェクトの描画、行動、当たり判定が行われてる。
また一方で、オブジェクト発生イベントのリストを持っていて、
順次、メインループにオブジェクトが登録されていく。

この「オブジェクト発生イベントのリスト」はシーンに相当していて、
シーンを切替えたければ、今登録されているオブジェクトを破棄して、
イベントのリストを差し替えるだけでいい。

while (1) {
  for i=0...
  {
    オブジェクト[i]->行動();
    オブジェクト[i]->描画();
    オブジェクト[i]->当たり判定();
  }
  イベント発生()
}

160 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 17:13:03 ID:8FRUZW5m]
>>159
PACに似てるが違う、オブジェクトの追加に強そうだが
そのメリットの恩恵が受けられない場合に死ぬほど複雑になる予感

ドメインロジックのテストを行うときにビューが関わってくる
逆にビューのテストを行うときにドメインロジックが関わってくるため
テストに多大な労力がかかる事が予想される
常にプログラム全体をテストしなければならないため、試行錯誤すると死ねる
render target等の処理が俺にはすぐに思いつかない、よって3Dには不向き
2Dにしても描画に関する処理が単純でなければうまく動かないだろう

規模が小さいプログラムを無駄に複雑にしてすごそうに見せたい人にお勧め
または、意味もなく多機能オブジェクトをリストに突っ込んで管理したい人にお勧め

私はお勧めしない、追加のメリットが多大である場合は考慮に値するが
ゲームには不向きだと思う、特に3Dの場合は
俺は怖くて使えない

161 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 17:19:39 ID:8FRUZW5m]
>>160
追加

リソースの追加が障害にならなければロジックのテストは問題ない場合もある
やるんだったらそんな半端な構造ではなく
関連まで含めて、PACアーキテクチャ使った方がよくないか?

162 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 22:56:21 ID:8FRUZW5m]
小規模な状態遷移の実装は
今持ってる手で四つ
1.擬似コルーチン
2.スレッド
3.スクリプトで隠蔽したスレッド
4.通常の状態変数による管理(State含む)
設計が明確でない初期のもの、プロトタイプ
又は小規模な場合の初期のとりあえず書いておくコードに向いているのは
擬似コルーチン又は状態変数だろう
まだ設計方針が明確に決まっていない場合や試行錯誤しなければならない状態で
スレッドやスクリプトの導入を決めるのは早すぎる、リスクが大きい
ある程度、方針が固まってから適切なものを選択するのがいいだろう
状態変数での管理が大手を振っているのも
初期コストが低いという部分が大きい
このため、状態変数やState以外の選択肢は簡単には普及しないだろう
ただし、スレッドの積極的採用が処理速度向上に繋がるのならその限りではない

163 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 23:04:46 ID:gy2iNnCl]
コルーチンで擬似ってどういうこと?

164 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 23:41:41 ID:8FRUZW5m]
>>163
擬似じゃなくていいのか、訂正
1.コルーチン、又は擬似のそれ

言語仕様に含まれてるときはそのままコルーチンとして呼び出し
c/c++の場合は以下のものが使える、又は自分で作る
www.chiark.greenend.org.uk/~sgtatham/coroutines.html
それ以外なら
ソースコードを変換するプログラムでも作る
gotoやthrowやswitchやラベルなんかが含まれない言語では無理、又は面倒くさい

165 名前:名前は開発中のものです。 mailto:sage [2008/07/08(火) 23:46:18 ID:iq4s5004]
まぁいいけど、ライセンスがGPLで良けりゃこっちを使おうぜ。
ttp://www.xmailserver.org/libpcl.html



166 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 01:10:17 ID:vZNCPgy9]
言語機能として付いてないC++で無理やんこやるのはいろいろ怖い気が
すんごい便利そうなんだけどなぁ・・・

167 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 07:23:21 ID:eQNI5n3r]
そこまでするならスクリプト組み込んだほうが
よっぽど安全で楽だと思うけどな

168 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 09:40:38 ID:nYED4jrh]
>>162
スレッドっていう言葉は聞いたことあるが、実装手法は、全く聞いたことが無いな。


>小規模な状態遷移の実装

>>146のような、行動予約の状態遷移を前提にしているのかな。
だとしたら、もっぱら自分は、C++で、

>4.通常の状態変数による管理(State含む)

と動作制御用独自スクリプトだな。


基本は、ゲーム開発で言うところのタスクシステムで処理。
各オブジェクトは、単一クラス中に、状態ごとに処理関数(メンバ関数)を用意する。

フレーム毎に、その時点の状態に該当する処理関数を、1回ずつ呼び出す。
その関数中で、動作制御用独自スクリプトの解釈処理も行い、適宜、処理関数を切り替える。

状態毎の処理関数は、メンバ関数ポインタ配列を通じて、インターフェースを切り替える。
動作制御用独自スクリプト解釈込みの処理関数を、継承用テンプレート・クラス中に実装。

表現くどいけど、悪しからず。

169 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 17:57:35 ID:7MZGZOjk]
巣に帰れ
タスクシステム総合スレ part2
pc11.2ch.net/test/read.cgi/gamedev/1196711513/l50

おまえらタスクシステム信者がクソでカスでゴミクズな理由は
自分が書いてるコードにどんなメリットとデメリットがあるかを理解できてないところだ
または、それを考えようとしないところだ
ただ使えばいいと思い込んで、それで完結している
考えることを放棄したおまえらに設計能力を向上する機会はない

戦略のない戦術はただのテロだ

170 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 18:38:12 ID:vZNCPgy9]
ひどいな・・・
なんでそんな暴言が吐けるの

171 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 18:47:18 ID:vvjjLorC]
良く知らんがタスクシステムって言葉が出ると荒れるようだ
なんかそういうgdgdな経緯でもあったんだろうな

172 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 18:55:55 ID:nYED4jrh]
>>169
pc11.2ch.net/test/read.cgi/gamedev/1215129226/4n

173 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 18:56:55 ID:iC3IHDcB]
>>171
ゲーム業界の造語みたいなものだからな。
OS屋に言わせると「なにそれ?プ」というものらしい。

まあ一定60FPSとか30FPSといったフレームで常に動いてて
物の動きとか制御してるのがOSがタスクを処理してるのに見えるから
そういう風に業界の人間かゲーム評論家か自称ゲーム評論家の素人
が言い始めたのそもそもらしい

174 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 19:21:37 ID:eQNI5n3r]
やっぱり顔真っ赤にして噛み付くヤツが出ると思ったよ
しょうがないからその辺の単語は誤魔化して話進めてくれ
いつまで経っても話進まねーからな

175 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 19:22:14 ID:anjhk7B8]
名前負けしてるよね、完全に。



176 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 21:10:22 ID:7MZGZOjk]
話が進むわけないだろ
言ってる奴が、メリットもデメリットも把握していないんだから
ただ難しそうな言葉が並んでいるだけで、それ以上の意味はない

宇宙の力がイオン水に影響を与えてゲーム脳がゲルマニウムパワーに還元されるんだよ
誰かこれを理解してみろクソが

177 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 21:12:45 ID:iC3IHDcB]
噛み付いてはないけど・・すまんな

まあ俺的にはそんな何とかシステム(自称)はどうでもいいよ。

市販のゲームでも売り出す際は自称xxxシステム採用とかいう
元からそういうの好きな業界だし。


178 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 21:30:52 ID:4OXXlyYN]
>>176
少し落ち着けよw
>宇宙の力がイオン水に影響を与えてゲーム脳がゲルマニウムパワーに還元されるんだよ
お前はこういう事を言うやつに馬鹿だのアホだの必死に噛み付くのか?
俺はスルーするけどな

179 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 22:16:56 ID:EYwlC03l]
「面白いこと書いた」と思ってるんだろうなぁ。
端からはただのバカにしか見えてないけどね。

180 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 22:19:25 ID:SF8ehHxO]
>>173
>OSがタスクを処理してるの
ってどんな実装してるの?

181 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 22:22:48 ID:uQp1o0/n]
タスクシステムってゲームプログラミング固有のもんじゃなくて
リアルタイムOSとか便利なもんがなかった時代の組み込みシステム開発に
起源があるような気がする。
まあ、C++で真っ当にオブジェクト指向やってれば、こんな古臭いもんを
有難がる必要はないと思う。

182 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 22:23:19 ID:iC3IHDcB]
>>180
そりゃ・・・その辺はがんばって勉強して

キューだとかスレッドだとかタスクだとか
タイムスライスだとか

まあ同時に複数のものが動いてる(ように処理してる)風に出来るものかな
乱暴な言い方だけど。

183 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 22:24:41 ID:7MZGZOjk]
そろそろ潮時か
君らのレベルから比較して自分のレベルがどの程度低いのかがよくわかった
有益だったぜw
また暇なときに挑発に乗ってやる
この完璧な捨て台詞を覚えておけよ

184 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 22:48:57 ID:XmNOce7Z]
>>183
巣に帰れとか言うけど、君の方がタスクシステムスレの流れを持ち込んでるようにしか見えない。
感情的にならずに、なぜいけないのか説明すればいいだけだと思うよ。

会社でタスクシステムで組みたいと同僚が言ったとして、
烈火の如く怒っても、自分が不利になるだけじゃなく、なぜ駄目なのかを分からせることも難しいだろ。
ここは、「現代的な設計ではそれは無い。なぜなら・・・」と話を進めるべきじゃないかな。

185 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 23:14:23 ID:nYED4jrh]
>7MZGZOjk
なんというか、要するに、






ただの孤独なレス乞食。
もしくはタスク・スレへの誘導係。
マンネリだな。
効率的な挑発方法については、再考した方がいい。



186 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 23:17:00 ID:md3RJLJr]
タスクスレに託すか。

187 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 23:26:06 ID:30d6bQh7]
コードが繁雑になって来たので、大革命を起こしたら
以前より良い設計ができない上に、収集がつかなくなった。
svnさんにお願いして、前のリビジョンに戻る日が近くないことを祈るばかりだ。

188 名前:名前は開発中のものです。 mailto:sage [2008/07/09(水) 23:50:08 ID:XmNOce7Z]
>>186

189 名前:名前は開発中のものです。 mailto:sage [2008/07/10(木) 00:33:17 ID:rFEYqRAa]
>>186
神は自らタスクる者をタスク。


190 名前:名前は開発中のものです。 mailto:sage [2008/07/10(木) 00:51:19 ID:A+tXgG+V]
>>180
タスクスレの話題を続けるのはよくなさそうなので情報だけ
pc11.2ch.net/test/read.cgi/gamedev/1196711513/456
OSだからできることを思いっきり使ってるんで
管理手法以外はあまり参考にならんよ。
OS自体に興味があるならOS板にいくといいよ

191 名前:名前は開発中のものです。 mailto:sage [2008/07/10(木) 00:54:31 ID:MjVgJsdw]
PG系隔離スレの2大巨塔でタスク厨の押し付け合いイクナイ!

192 名前:名前は開発中のものです。 mailto:sage [2008/07/10(木) 05:56:13 ID:nnoBQqoI]
Google,自社開発のデータ構造化ツール「Protocol Buffers」を公開
ttp://itpro.nikkeibp.co.jp/article/NEWS/20080709/310437/

193 名前:名前は開発中のものです。 mailto:sage [2008/07/10(木) 07:41:02 ID:99kxezye]
>>186
【小さく審議中】
    ,、_,、  ,、_,、
  ,、_('・ω)(ω・`)、_,、
 ('・ω)u゚  ゚uu(ω・`)
  ゙uu゚( '・) (・` )uu'
    ゚uu゚  ゚uJ

194 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 00:51:10 ID:eBw+YtUV]
素人です
つくりかけのゲームってどうやって動かしてテストするんですか?

195 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 01:06:26 ID:47vlxomf]
ワタクシ ハ インクリメンタル ナ カイハツ ホウシキをとっているので
ちまちまと小規模な物を作って、それを拡張していく形になります。


第一段階: ウィンドウを表示する
第二段階: キャラクターを一つ表示する
第三段階: キャラクターを動かしてみる
第四段階: 飽きる




196 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 01:25:52 ID:eBw+YtUV]
>>195
なんで途中までカタコトなんですか?

そういう個人規模でなくて、複数のPGで役割分担してる場合はどうするんでしょう?

197 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 01:29:50 ID:R4nPLnnD]
そんなことシロウトせんでいいいよ

198 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 02:53:02 ID:lqrHuCir]
動くところまで作ってからテストする

199 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 03:04:31 ID:uUrGa3AK]
改めて言われるとあれだな
他にやりようないな

200 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 03:23:29 ID:eBw+YtUV]
>>198
他人がつくったクラスがないと動かない場合はテストできないのでしょうか?

201 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 03:29:10 ID:uUrGa3AK]
つ 単体テスト

いや出しゃばった 俺はweb系なので実情は判らん
まあロジック側は業種問わずどうグズったところで、
「何々渡したときに何々返す関数作ってー!」しか分業方法ないと思うけど

202 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 03:29:54 ID:edzJ8FGN]
たぶん、作りかけってのが何処までか分からんけど
目に見えて作りかけとみれるのは殆ど完成間近なのが多いんじゃ。
プログラムの作りかけを動かす=エラーが出ないで動く なので

203 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 03:32:16 ID:edzJ8FGN]
wiki.game-develop.com/
wikiのチュートリアル→段階的学習でもやってみては

204 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 04:56:24 ID:tw1/nxGs]
>>200
そのクラスのインタフェースが分かるならその仮実装を作れば良いでしょ。
プロキシとかスタブって聞いたこと無いかな?
そもそもあなたの言っているテストとは何をどうするテストなのか、
自分でハッキリと認識出来ているのなら人に聞くような問題じゃないと思う。

205 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 09:43:53 ID:47vlxomf]
>>200
もし私がプログラマなら、担当部分を動かすための
テストプログラム書いてます。

だから、それを見せてもらったら、大体どんなことができてるのか
把握できるんじゃないかと思います。

早い段階でCVSやSVNによるコード共有にも
慣れておくと幸せになれるかもしれません。
統合テストの段階になってからでないと
全体のMakefileが書けない、
リンク作業もできないのではどうにもなりません。
今のうちからコードを共有して、
常に全体がコンパイル/リンクが可能であることを
確認できる環境作りが云々、、、、、、、、




206 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 09:51:14 ID:timDAMYM]
>>204

>>200は外注や営業職の言い訳で多発するんだよね。
あんなのはまともに相手するのも無駄。
「スタブ要るじゃん。 スタブ供給してくれないとコストにあわないんだよね」系で、素で言ってのけやがる。
超ウケルんですけど。
こういうのに仕事を与えないようにするのが業界の為だろ。

 政治的な理由により取引継続となったら、「スタブの作り方を指導しますから、
その講習料として、スタブ作成代を相殺ですね」ぐらいしか案が無い。

・こちらはスタブなんて、要求仕様の一部で料金内。jk
・カス会社は、どちらも追加料金や有料。
・解決してなくても解決!!!!

207 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 10:22:09 ID:L3kGAfa0]
>>194
作り掛けでも動くように、ゲーム全体を一枚岩ではなくバラして作る。

RPG だったら戦闘・マップ・店・イベントシーンで完全にバラしておいて、
テスト用のメニューからそれぞれ起動できるようにするとかな。

208 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 10:49:52 ID:UM30DsAY]
作業分担?

全員が全体を上から下まできっちり把握した上で、
常に連絡を密にし、お互いが何をやってるのか理解しつつ、
各自が必要とみなしたら声かけてどんどん作ったり直したりしていく。

209 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 11:17:51 ID:L3kGAfa0]
>>208
全員が全体を把握できるのは、せいぜい3人ぐらいまでだな。その先は
ヒエラルキー作って、パート毎に管理業務やる人間を立てないと無理。

210 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 13:47:03 ID:DAEU2DrC]
趣味ゲだと3人超えのマが介在するゲーム開発って
ほとんどないしな。大半はマが1人、多くて2人で>>408方式
ツーといえばカーの黄金タッグ。あ、ああじゃいる


211 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 13:48:37 ID:DAEU2DrC]
×>>408 ○>>208

212 名前:194 mailto:sage [2008/07/13(日) 14:07:22 ID:eBw+YtUV]
非常に参考になりました。ありがとうございます。

>>208
それ実際には各人に漏れやズレが出て手戻りが出るんで、大規模プロジェクトでは無理では

213 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 14:19:00 ID:sqmPpN2O]
Cだったらmain()関数書いて実行して、デバッガ等で動き見るかな…
仕事(勿論?非ゲーム)でやってたときも、自分で単体テスト仕様書書いてたんで、
こんなやり方でもOKだったw

個人開発だったらウィンドウなりポリゴンなり目で見てわかる方から書いて、
中身を作っていくので、単体テストらしい単体テストはしないかな…
とりあえず箱を表示するとこ書いて、テストして、
動かすところを書いて、テストして、…ってのはやるけどw

214 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 14:24:18 ID:RINNRPdb]
大規模が何人か明確じゃないし、作業形態もネット上だけなのか
サークルのようなものなのか会社なのかもわからないから議論が発散してる

フリーソフト作るのに主力のプログラマ2〜3人と、バグ修正や機能強化の
パッチくれる人10人くらいでなら、MLとIRC使って>>208のような方針でやれてた

最初のバージョンはリリース済みで方向性が決まってたのが大きそうだ

>>212
作業するタスクを割り振りはちゃんとやって、頻繁なイテレーションと
継続的インテグレーションやるっつうのは何人くらいで破綻する?

215 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 15:08:38 ID:eBw+YtUV]
>>214
1チーム10人以下で、各チームにリーダー2人ぐらいで、200人ぐらいのプロジェクトも回ってました。
素人なのでこれくらいしかわかりません。




216 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 15:15:30 ID:uaqPI4FP]
>>215
プログラマの数は?

217 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 15:23:34 ID:L3kGAfa0]
>>215
まぁ、プロジェクトの種類にもよるわな。勘定系とかだとデータ項目と画面の
I/O 決まってれば、各人の作業は依存が少ない(DB に仕様どおりのテスト
データ作れば良い)から、スケールしやすい。

基本的には、プロジェクト全体をいかに疎結合なパーツに分解できるような
設計をするかにかかってる。DB とかメッセージングシステム使う世界は、
そこで切れてることが多いから分けやすい。

218 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 17:47:09 ID:eBw+YtUV]
>>216
150人はプログラマでした

219 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 18:56:00 ID:UM30DsAY]
>>208は半分冗談、半分マジだったんだが意外と受け入れられてるw

>>218
なんの素人なんだw
ゲームでプログラマ150人規模って洋げーでも多分ないのでは。予算的に。

マジレスしますと、
小さい規模ならメインプログラマがほとんど一人で下位システムを作っちゃうし、
大きい規模なら別の部署が作るから、
「作りかけの状態でどうやってテスト・・・」という事態があんまり無いでつ

220 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 21:19:15 ID:Q/hESmSh]
大規模金融システムで、SEの数ってことならありうるが
ゲームのスタッフロールにマが150人も並んでたら壮観だな

ちなみにそれなりの規模だと思われるFFXでメインプログラマが2人
サブプログラマが12人で残りは大半がデザイナー

221 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 21:20:02 ID:6QYOrVUt]
ネトゲじゃねーの?


222 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 22:39:48 ID:3VGnVE92]
マ150人てどんなネトゲだよ。。。

223 名前:218 [2008/07/13(日) 23:00:22 ID:eBw+YtUV]
ゲームのプロジェクトじゃないです。
詳細は言えませんが。

ゲームのテストってプログラマがCppUnitみたいの使ってできないですよね。
やはり手動でテスターがテストするんでしょうか。


224 名前:名前は開発中のものです。 mailto:sage [2008/07/13(日) 23:23:02 ID:UM30DsAY]
俺の知る限り、ゲーム開発では基本的にテストは無いです
単体テスト→結合テスト→受け入れテスト、みたいな流れは無い

昔ながらの職人的やり方というと聞こえは悪いですが、
衝突判定とか文字列処理部分のような仕様が明確な箇所なら
自動テストは有効だし実際にやっている会社もあるようだけど、
「ここで光がばーっと集まって、このキャラが独白を始めて、そして背景が宇宙に切り替わっていく」
みたいな仕様書があったとして、それをテストする基準がないし自動テストできません

なので大部分がデバッグチーム頼みです

225 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 00:00:22 ID:yOzfOKcB]
3Dの衝突判定ライブラリを書いていたときは、単体テスト使いまくりだったぞ。

>224 みたいな場合はどうしようもないけど、表示以前のコアな部分では
単体テストも結構使う



226 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 00:02:24 ID:IEzc7ZIH]
グラフィックやサウンドが絡む部分は自動化は難しいけど
ネットワーク部分やスクリプトの読み込み部分なんかは
いくらでも自動化できるっしょ

227 名前:名前は開発中のものです。 mailto:sage [2008/07/14(月) 00:10:58 ID:cIaZ6JxY]
一人で作ってる分には単体テストに拘る必要はないと思うな。
逆に(自分含めて)しっかり単体テストできるなら、複数PG開発も悪くないと思う。
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ようするに他人のコードのデバッグは勘弁w

テンパってる人はバグ処理を後回しにしたり、他に回したがるだろうからな!






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<166KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef