ゲームにおけるデータ構造・クラス設計・パターン
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/08/10(木) 20:27:06ID:BnvyxuCBどのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。
関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
0547名前は開発中のものです。
2007/09/07(金) 16:11:07ID:g09BD/TG>>542が出来るプログラマーかどうかはわからんが、
基本的に日本だと本を出す奴ってのは3流だから
とりあえず本出してる人すごいって認識は改めたほうがいい。
0548名前は開発中のものです。
2007/09/07(金) 16:48:36ID:HXEpQNDZ0549名前は開発中のものです。
2007/09/07(金) 16:51:44ID:wO5yXJcP三行目に同意
俺も高校まではそういうステレオタイプを持ってた
0550名前は開発中のものです。
2007/09/07(金) 17:54:50ID:VwzOSVjv0551名前は開発中のものです。
2007/09/07(金) 20:37:04ID:B51b23c50552名前は開発中のものです。
2007/09/08(土) 00:42:34ID:hAtUkBFn一応継承は使ってるみたいだよ
new deleteのオーバロードも使ってるし
だから単に継承を使ったやり方をしらないだけじゃね
0553名前は開発中のものです。
2007/09/08(土) 02:39:33ID:RITYgY6W0554名前は開発中のものです。
2007/09/08(土) 07:47:53ID:bNPXbGtI0555名前は開発中のものです。
2007/09/13(木) 22:14:56ID:1Bt3Jrj9シューティングの本?
同人シュー作者の俺がそのうち書いてボコボコにしてやんよ
∧_∧
つ≡つ);:)ω・).,,';
_| ̄ ̄||≡つ=つ )
/旦|――||// /| \
| ̄ ̄ ̄ ̄ ̄| ̄| . |∪ ̄\_)
|_____|三|/
0556名前は開発中のものです。
2007/09/13(木) 22:42:21ID:sAjH+7xy正直、本を書いてもあまり儲からないんだよな……。前に技術書書いたことがあるんだが
印税8%で初版3000部とかだったから、時間単価考えたらコード書いてた方が遥かにマシ
だった。
もう少し幅広く売れる本とか、時間かけずに書けるとか、その後の仕事受注につながる類の
ヤツなら良いんだが。
0557名前は開発中のものです。
2007/09/13(木) 22:44:13ID:p9GEmztQそれとも普通の言語系?
0558名前は開発中のものです。
2007/09/13(木) 23:27:43ID:sAjH+7xyネットワーク系。だいぶ前だけど、当時は翻訳やら執筆やらイロイロやってた。
今じゃすっかりコンサル稼業で、趣味でしかコードかけない人生だけどな……。
0559名前は開発中のものです。
2007/09/14(金) 00:00:01ID:qAC7e6UH0560名前は開発中のものです。
2007/09/14(金) 01:56:40ID:kBeEhHlBでも 1 冊 2,000 円 x 8% x 3000 冊だと 48 万だぜ。駆け出しのプログラマだった頃は
実質 1.5 ヶ月かけても割に合ったけど、もうダメだ。金以外に何か目的がないと
やってられんよ。
0561名前は開発中のものです。
2007/09/14(金) 04:58:49ID:CTgFkt8N0562名前は開発中のものです。
2007/09/15(土) 18:37:54ID:odGWNMQb人生掛けてまでやることじゃない
クソ本あろうとしったことか!
あ、俺?俺は、情報商材にして、単価上げて(゚Д゚)ウマー
0563名前は開発中のものです。
2007/09/15(土) 20:05:14ID:5hbSwr+P何ページで執筆に何カ月かけたか知らんが、
コード書けない人間なら数こなせば良い金になるな。
eclipse本なんてコード書かなくても良いしソフトの新版出る度に改定するから副業にはちょうど良いじゃないか。
デザインパターン本なんて同じ内容なのに言語ごとにあるぞ。
コード書いて食ってる人間に本なんて書いてる暇があるかは知らんが・・・。
0564名前は開発中のものです。
2007/09/15(土) 20:15:34ID:zE0h51TJだから低レベルな本しか出てない。
そんな本ばかりだから若い人が育たない。
で、その若い人がコードで食えないから、さらに劣化した本を書くというスパイラル。
0565名前は開発中のものです。
2007/09/15(土) 20:27:26ID:lBqIBG3l0566名前は開発中のものです。
2007/09/15(土) 21:30:05ID:kmdFdmdy> 日本の場合、コード書いても食えない人間ばかりだろ。
というか、単価の高いプログラミング仕事がほとんどない。
大手ゲームメーカーでリードプログラマやるより、中小の基幹システム改修
案件の SE やってた方が全然収入がいいという。技術的にもプロジェクト運営の
面でも、ゲーム屋の方が大変なんだが。
0567名前は開発中のものです。
2007/09/16(日) 03:07:48ID:YcEkQAYx0568名前は開発中のものです。
2007/09/16(日) 07:52:57ID:hBA8iHMq0569名前は開発中のものです。
2007/09/16(日) 09:22:16ID:bdw4UY6nGoogleとかMSだと給料高いけどな。現地ではなく日本採用でも。
0570名前は開発中のものです。
2007/09/16(日) 09:44:24ID:hBA8iHMqプログラムだけできるだけじゃ、入れないところじゃねーか
0571名前は開発中のものです。
2007/09/16(日) 11:01:46ID:5DEnzRu4M$はともかくgoogleは給料安いんでないの?福利厚生はともかく給料は。
0572名前は開発中のものです。
2007/09/16(日) 12:12:44ID:bdw4UY6nGoogle は給与水準公開してないから情報限られるけど、俺が中の人から
聞いた話だと十分高いと思った。
それより株式公開前にストックオプション貰ってた連中は、上場と同時に
億万長者の仲間入りしちゃってるから、それと比べると給与はどうでも
良いっつー話らしいが。
0573名前は開発中のものです。
2007/09/16(日) 19:28:45ID:OIlosS2zたった3年で20倍になってる事実に絶望した。
絶対うまいこと乗れたギーク系投機家がどこかにいるはず。
0574名前は開発中のものです。
2007/09/16(日) 20:24:04ID:JalQ3AgQCEREN vs NCSAのhttpd戦争終結後くらいか・・・。
0575名前は開発中のものです。
2007/09/16(日) 20:58:05ID:uZJ+v8CM0576名前は開発中のものです。
2007/09/16(日) 23:32:07ID:cz5uVFrl0577名前は開発中のものです。
2007/09/17(月) 01:15:23ID:YnotUqm60578名前は開発中のものです。
2007/09/17(月) 01:50:53ID:VnVYOx3Udoxygenが酔ってくれるから困る
0579名前は開発中のものです。
2007/09/17(月) 10:46:54ID:4TcSZ3vDでも、心がけてくれないチーム員もいるんだよなあ
0580名前は開発中のものです。
2007/09/17(月) 11:33:01ID:wCNRu3Bd――――Click Click Click――――
それは、一番クリックした国が優勝するバカバカしくも熱いゲーム!
2ch全板から力を結集して日本を1位にしよう! 日本は過去に8勝(世界最多)しています。
めざすは、台湾の6連勝記録を打ち破ること!
現在日本は3連勝中だけど、猛加速のハンガリーに昨夜逆転されてしまいました。
日本のツールはとても優秀ですが、参加人数が足りません!!
逆転するには、最低でもあと100台のPCが必要です。
専用ツールを落として、ブラウザを起動しておいてくれるだけでOKです!
放置できるので、寝ながら日本の戦力になることができます!
どうか力を貸してください!
【日本2位】一番クリックした国が優勝【版画ksk】
http://wwwww.2ch.net/test/read.cgi/news4vip/1189932725/l50
※オリジナルのゲーム制作チームがあります。ぜひ力を貸してください。
0581名前は開発中のものです。
2007/09/17(月) 11:46:33ID:gzVOF+3o書いてる。(javadoc 形式というべきか)
> コメントの規格を統一できるのもいいよな
目的はこっち。
0582名前は開発中のものです。
2007/09/17(月) 12:30:12ID:GfvjK68dコメントだけでなく、ファイル名とかクラス名とか変数名とかのコンベンションも
やっぱ決められてるもんなの?
0583名前は開発中のものです。
2007/09/17(月) 12:33:20ID:gzVOF+3o当然。
ただ汎用ライブラリを持ってくることもあるから、そっちとこっちで
規約が違って一部混在することはある。たとえば STL と DirectX
だと名づけ方大分違うしな。
0584名前は開発中のものです。
2007/09/17(月) 15:33:27ID:GfeYD8acDelphi使いなんで、Togetherで UMLはコードから自動生成だぜ〜(嘘、使いません
ドキュメント生成ツールは、日本語対応したものがなくて、使ってない orz
0585名前は開発中のものです。
2007/09/17(月) 19:51:10ID:W3g8XPDv0586名前は開発中のものです。
2007/09/17(月) 23:45:15ID:/t9Slj66普通設計してからコード書かないか?
UMLの仕様上は確かにcode2UMLもUML2codeも相互運用可能だけど・・・。
0587名前は開発中のものです。
2007/09/17(月) 23:57:57ID:zeWn8DxNネタにマジ(ry
> UMLの仕様上は確かにcode2UMLもUML2codeも相互運用可能だけど・・・。
C++ は code generation に向かない言語だなぁとおもうよ。
集約・コンポジション・関連の区別とかつけにくいし、boost::scoped_ptr で pimpl イディオム
使ってる場合とか、マジメに piml クラスもクラス図に入れると煩雑になりすぎ。
私は設計段階で主要クラスだけ図に書き出して、あとはコードでって感じ。
クラス図は必要があれば更新するけど、あくまでコードが第一の文書に
しちゃってる。
0588名前は開発中のものです。
2007/09/18(火) 00:16:16ID:0DwxQSyZというのは比較的お堅い業務アプリでの常識なんだが
柔軟性が求められるゲーム開発ならなおのことじゃね?
組込み系が今突撃中
0589名前は開発中のものです。
2007/09/18(火) 00:22:12ID:3aYPJasO0590名前は開発中のものです。
2007/09/18(火) 01:16:19ID:5yeO/Swt0591名前は開発中のものです。
2007/09/18(火) 08:32:52ID:FiLXhuoleclipseでNECのプラグインのを最近使ったんだが
0592名前は開発中のものです。
2007/09/18(火) 19:37:18ID:QkVIQXVh0593名前は開発中のものです。
2007/09/19(水) 06:01:52ID:8Q9ZtqfD0594名前は開発中のものです。
2007/09/19(水) 07:15:57ID:kYNbLBEe0595名前は開発中のものです。
2007/09/19(水) 08:22:34ID:+HDOOkBH0596名前は開発中のものです。
2007/09/19(水) 21:49:02ID:umm3ZbPOソフトウェア製作現場くらいじゃないか
0597名前は開発中のものです。
2007/09/19(水) 22:07:56ID:sx0yn1sA0598名前は開発中のものです。
2007/09/19(水) 22:43:10ID:amMsIx49スタンドアローンなUMLツールもちゃんとあるんだからね!?
0599名前は開発中のものです。
2007/09/19(水) 22:49:24ID:jK01tyWi> スタンドアローンなUMLツールもちゃんとあるんだからね!?
俺が使ったことあるのは、こんな感じ。結局 MagicDraw の Standard Edition 買って
使ってる。
Visio
・汎用お絵かきツールなので UML 専用ツールとしてみると、かなりイマイチ…
Together 試用版
・ソースコードに特定の形式でコメント埋め込む必要あり。ソースコードと UML の
同期は完璧だが、C++ だとマクロやらテンプレートやらあって逆に足枷に。
Enterprise Architect
・細かいことは忘れたが、値段の割りによくできてた気がする。
Jude竹
・使いづらかった記憶が。Java 前提で C++ だとイマイチ。
MagicDraw
・それなりに自由に図がかけつつ、UML 固有のサポートも十分している(基底クラスの
メソッドをコピーしてくるとか)。サポートしている図の種類も豊富で、開発も順調に
継続中。Pure Java アプリなのでメモリは多めに。
ただ C++ だとソースコードと同期する reverse engeneering, forward engeneering は
制約ありすぎで使い物にならない。
0600名前は開発中のものです。
2007/09/21(金) 00:31:32ID:KPDpA4Lk0601名前は開発中のものです。
2007/09/21(金) 16:35:38ID:GgMzSNNVjavaにマクロないし。
0602名前は開発中のものです。
2007/09/21(金) 22:17:12ID:RhYk6YdFスマートポインタ・pimplイディオムあたりも、そのまま図にすると冗長で
ワケわかめ。
0603名前は開発中のものです。
2007/09/23(日) 23:05:37ID:7hC9eV3oとか言ってみて良い?
実際javaでGCが必要になるケースって言語実装する場合だけど、javaのGCに投げれば良いだけだし。
0604名前は開発中のものです。
2007/09/23(日) 23:32:34ID:/EvVKbRp0605名前は開発中のものです。
2007/09/24(月) 00:13:37ID:5E4o0Iyz文面見るだけだと、集約とコンポジションの区別がつかんけどな。関連との区別も
つかないし。
0606名前は開発中のものです。
2007/09/24(月) 00:36:17ID:N33NsFp0CでもC++でもライブラリでGC使えるようになるよ
とか言ってみて良い?
デストラクタのタイミングがJavaだと曖昧だから、
確実に呼ぶためには明示的に呼び出す必要あるよね
とか言ってみて良い?
0607名前は開発中のものです。
2007/09/24(月) 00:38:43ID:wP3VhiV80608名前は開発中のものです。
2007/09/25(火) 01:43:17ID:cUqDGz0b0609名前は開発中のものです。
2007/09/25(火) 01:59:20ID:Ubo+pWpIアーーーー!!
0610名前は開発中のものです。
2007/09/25(火) 02:50:51ID:j6V698Nyと思って調べてみたら、やはりけっこう面倒になことなっているようですね。
ttp://kikyou.info/diary/?200603
C++でGCをするのは、やはりリスクは大きいんでしょうかね。
挙動をきちんと把握していないと、余計なバグを出しまくると。
0611名前は開発中のものです。
2007/09/25(火) 07:15:30ID:p/ZTpO6Sというか誰のコードが入るか分からんOSSにはBohemGCは向いてないと思う。
0612名前は開発中のものです。
2007/09/25(火) 14:42:50ID:IK+Mi4/+> そもそも呼ばれるか呼ばれないかすら信用できなくなるというのは痛いです。
これってBohemGCというか、
JavaでもC#でも似たような問題抱えてるような気が。
C#はusingでだいぶ良くなる(というか必須)けどね。
0613名前は開発中のものです。
2007/09/25(火) 15:49:03ID:j6V698Nystd::auto_ptrやboost::scoped_ptrが使えるのでは。
まあこの当たりのスコープによる廃棄を使えるのは、データ構造でなくその
呼び出し側のほうになるとは思いますが。
データ構造の内側たるメンバ変数では、結局いポインタwをを使おうとすると、
やはりGCかスマートポインタが(r
0614名前は開発中のものです。
2007/09/25(火) 19:45:25ID:w6OvpTgu0615名前は開発中のものです。
2007/09/25(火) 23:37:49ID:k19pdkx7全然右往左往はしてないので、BohemGCは向いていると思うよ
0616名前は開発中のものです。
2007/09/26(水) 02:49:14ID:9IVyIRI7java6からはそこらへんもVMの仕事だな。
>>615
一時期、他のコードとの相性で苦戦してただろ。
というか吉里吉里は実質一人開発なのでバザールモデル開発時の問題は無縁かも知れん、
がソースを公開してるので誰がどう使うか分からないのでBohemGCは向いてないだろ。
0617名前は開発中のものです。
2007/09/26(水) 04:16:25ID:PN2WWo+U?
0618名前は開発中のものです。
2007/09/26(水) 07:07:41ID:i8F3qiykよく知らないんだけど、BohemGC特有の問題ってなんなの?
>>812はBohemGCだけの問題では無いよ。
0619名前は開発中のものです。
2007/09/26(水) 08:13:44ID:3isC6Gy4w3m も BohemGC 使ってなかったっけ?
俺は C++ だとスマートポインタで十分なケースが多いので、BohemGC は
まず使わないけど。
0620名前は開発中のものです。
2007/09/27(木) 02:23:21ID:+pE/2Wnlほら、言い直した。
「一時期問題があった」だろ?
それなのに>>610-611で2006年から今もずっと右往左往してるかのような印象操作をして、
BohemGCがOSSに向いてないとか、そんな詭弁はやめろ。
お前が古い人間で、よく理解出来ていないガベージコレクションが嫌いなだけなんだろ?
>ソースを公開してるので誰がどう使うか分からないのでBohemGCは向いてない
これとかまったく意味不明。
boostのshared_ptrでも、まったく理解しないで使うと罠がある。
そういう仕組みをまったく使わないで、手作業で開放しても罠がある。
お前の論では、ナニをやろうが向いていないんだよ。
>>619
スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
var a = [0];
a[0] = a;
これだけでメモリリーク起きるなんて、危なくて使えん。
0621名前は開発中のものです。
2007/09/27(木) 02:44:05ID:VvpaMtLQ技術は何かを実現する手段であって目的ではない
0622名前は開発中のものです。
2007/09/27(木) 07:51:02ID:N1wjX3wO0623名前は開発中のものです。
2007/09/27(木) 08:18:58ID:w2Fnc2yT> スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
スクリプト言語の仕様にもよるな。
PCのギャルゲーだとスクリプト言語自体をリッチな仕様にして、動的な
メモリ確保なども可能にする(文字列連結とか)場合もあるみたいだけど、
俺はスクリプトでは完全にコンパイル時にメモリ割り当てが確定しちゃう
ようにして、メモリやリソース管理は C/C++ 側のコードでプログラマが
責任を持って行うようにしてる。
スクリプタとプログラマの役割分担どうするかだが、スクリプタ大量投入
するタイプのプロジェクトだと、スクリプトの自由度を下げた方がバグの
発生頻度が小さくなって、結果的に ウマー なことが多いと思う。
0624名前は開発中のものです。
2007/09/27(木) 10:54:43ID:5M+6zylX吉里吉里信者?
0625名前は開発中のものです。
2007/09/27(木) 11:00:37ID:qVZI5NrD0626名前は開発中のものです。
2007/09/27(木) 11:33:55ID:ET62U43b0627名前は開発中のものです。
2007/09/27(木) 12:37:22ID:vs9qugjh0628名前は開発中のものです。
2007/09/27(木) 13:19:16ID:HGokK3wmでも最近少々荒れ気味だから皆落ち着け
0629名前は開発中のものです。
2007/09/27(木) 14:40:58ID:1l0/TfAT元々隔離板の過疎スレだから少数が騒ぐと目立つだけ。
またーりログ読んでるか、生温かい目で見守ってるのが大半じゃない?
0630名前は開発中のものです。
2007/09/27(木) 23:24:46ID:foTLrBw8古典的バカが未だに生き残ってるとは驚きだな
0631名前は開発中のものです。
2007/09/27(木) 23:31:57ID:n9Qt+CRZ0632名前は開発中のものです。
2007/09/27(木) 23:38:28ID:Kt0ma0Lg0633名前は開発中のものです。
2007/09/27(木) 23:47:44ID:CbY2cE68とりあえず、「必死だな」とか言う前に>>620を論破してみれば?
例えば、
1,BohemGCだけにある、もしくはJavaやC#のGCでは解決された重要な問題を列挙する
(数値とアドレス値が識別できないという問題はあるけど、確率的にそれが不都合になることはほとんどない)
2,吉里吉里にはBohemGCが向いていないことを示す他のソースを提示する
とかね。
個人的に1はとても興味があるので、問題があるなら教えて欲しかったりする。
0634名前は開発中のものです。
2007/09/27(木) 23:48:30ID:w2Fnc2yT本題からそれるけど、
> スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
> var a = [0];
> a[0] = a;
> これだけでメモリリーク起きるなんて、危なくて使えん。
スクリプト言語におけるインスタンスの寿命管理と、C++ インスタンスの寿命管理は
別の話だよね。
俺は VM のスタックは C++ のスタックを使わず、C++ で std::vector<> 使って確保した
記憶域を使ってる。でないとスクリプト一時中断する (co-routine 実装) のが難しい
からさ。
当然スタック上にあるスクリプト言語のインスタンスは全部 VM でトラッキングできる
ので、ガベコレできる。C++ 側のメモリ管理が GC 使ってるかどうかとは無関係に。
0635名前は開発中のものです。
2007/09/28(金) 00:02:16ID:qVZI5NrDようするに実装がスタックレスってことだな。
つかスタックレスでないVMにコルーチンを実装するのは不可能じゃないか?
0636名前は開発中のものです。
2007/09/28(金) 00:23:32ID:l1EYGW9S多少制約がつくけど、Cスタックを保存・切り替えできればスタックフル VM でも
コルーチンは実装できます。
ただ、どうやってもポータブルなコードにはならないし、C++ 例外の実装方法に
よっては問題出るから、お勧めしないけど。
0637名前は開発中のものです。
2007/09/28(金) 01:10:11ID:iJmhMBklスタック切り替えてまでやるかw
猛烈に処理系依存なコードになりそうだな
0638名前は開発中のものです。
2007/11/17(土) 17:10:37ID:iMK/PWngBattleManagerかな…でもManagerは使うなって話もあるし。
0639名前は開発中のものです。
2007/11/17(土) 17:27:39ID:tjJHhoDYManager 使うなって話は、つまり「管理」というあいまいな言葉を使うなって話。
「戦闘シーンの進行管理をするクラス」の役割を見直さずに名前付けだけ考えてても
無意味。
0640名前は開発中のものです。
2007/11/17(土) 17:45:31ID:iMK/PWngレスありがとう
そう、今プログラム素人の子と話してたんだけど、
漠然と「場」みたいなもので考えるから名づけに迷うんであって、
相撲の行司みたいなのがいると仮定して、
そいつに戦闘の進行管理をさせればいいんじゃない?
という意見をもらった。
そこでまた、「戦闘の進行」っていう、時間を伴ったものを、
その「行司」の中に持たせちゃっていいのかなと迷うんだけど、
その辺りは割り切っちゃったほうがいいの?
OOPド素人丸出しでごめん
0641名前は開発中のものです。
2007/11/17(土) 17:53:06ID:3LkIon8XそのManagerが関連する他のクラスに処理を分配して、それを仲介するようなクラスだとMediatorあたりになるんじゃなかろうか
俺が作ってた「Manager」は上記のものがさらにFacadeの役割も果たすってのが多かった
デザパタから借りてるだけで正解とはとても言えんけど、「Manager」よりはマシかな…と
0642名前は開発中のものです。
2007/11/17(土) 18:09:05ID:tjJHhoDY> そいつに戦闘の進行管理をさせればいいんじゃない?
それじゃ何も解決しないでしょ。「管理」という役割が同じなままなんだから。
「管理って、実際のところ何するの?」と問い、「あれして、これする」っていう
もっと具体的な単位に分解できれば、「あれするクラス」「これするクラス」に分割する
ことが考えられる。それらを組み合わせたものを「戦闘シーン」というクラスにすることも
考えられる。
どうしても「管理」としか呼べないんなら、それを Manager と名付けること自体には
何の問題も無い。
「戦闘の進行」と「行司」という切り分けができるなら、前者を Advance() なんていう
関数、後者を Rule とかいうクラスにすることが考えられる。 Advance() は Rule に
従って処理をする、って感じね。具体的な状況がわからないんで、全然ダメかも
しれないけど。
0643名前は開発中のものです。
2007/11/17(土) 18:34:11ID:2u92yTvZ0644名前は開発中のものです。
2007/11/17(土) 18:35:34ID:JxWacONa0645名前は開発中のものです。
2007/11/17(土) 20:30:54ID:/rbqSJ11{
public:
Referee(const class Rule& current_rule);
const bool judge(const class Battle& current_battle);
void bribe(const int price);
inline void win(void) { http://youtube.com/watch?v=ubhW9R-F7cM }
};
0646名前は開発中のものです。
2007/11/17(土) 21:45:56ID:K5pYaEDh?
■ このスレッドは過去ログ倉庫に格納されています