07/04/30 17:45:14 QczQVIdr
最初は難しいことに手を出すよりも、楽なほうでやったほうがいいよ。
後からだんだん発展させていけばいいと思う。
ぐちゃぐちゃになったらリファクタリングで。
332:名前は開発中のものです。
07/05/01 07:32:01 n4UjW/KJ
クラスが多くなってぐちゃぐちゃになってきたorz
RPGって結構複雑ですぐ混乱してくる。
そろそろUMLとか勉強しないときついなと思ってきた。
333:名前は開発中のものです。
07/05/01 10:50:48 TWHDSCbL
UMLは構成を抽象化して理解するためのものであって
おぬしの想像しているものとは用途が違うぞ
334:名前は開発中のものです。
07/05/01 11:11:50 RvA2WJ3F
システムの規模が肥大して、クラスを整理するのが大変になってきたら
UMLなり何なり書いて一からやり直してもいいんじゃねぇの
335:名前は開発中のものです。
07/05/01 11:14:53 TWHDSCbL
リファクタリングとデザインパターンおぼえておけばおけ
アクセサとしてpublicなメソッド用意してるだけだとあとでみなおすとききついから
フレームワークつくればよろしい
336:名前は開発中のものです。
07/05/01 14:19:12 QizfdMH2
有名そうなライブラリをぱくるとかで
337:名前は開発中のものです。
07/05/02 23:12:09 n6prPmTN
UMLからソースのスケルトンを自動生成する奴とか使って手抜きしたい
一応ヘッダから関数の定義のスケルトンや、標準関数やライブラリの関数のusing宣言を
自動化する程度のツールは自作して使ってるけど
338:名前は開発中のものです。
07/05/02 23:15:54 waD0m0t1
今までいきなりコーディング始めてたんだけど大規模なゲーム作り始めて設計の重要性を痛感したorz
ただUML書いててもちっとも楽しくない。
339:名前は開発中のものです。
07/05/02 23:53:12 HOIFQT1u
>>338
おやこんな所に俺がいるじゃないか
早く新人研修のJava教本を読む作業に戻るんだ・・・
340:名前は開発中のものです。
07/05/03 03:33:21 aROKnpN+
俺はUML書いてるだけで楽しいけどなあ
341:名前は開発中のものです。
07/05/03 04:46:21 PxIyx3hy
同意
コードに落とす方がかったるい
342:名前は開発中のものです。
07/05/03 07:22:23 mjAAEilH
すげー、良く分かるw
コード打ってる時も、デバックしてる時はめんどい加減で止めたくなる。
343:名前は開発中のものです。
07/05/03 10:26:46 ykGFiN+W
俺は未だに、コーディングするときは脳内麻薬出まくり。
分かりきった定型的なコードを書いてるときは退屈で死にそうだけど。
344:名前は開発中のものです。
07/05/03 17:19:41 GHCrYaAw
人それぞれだなー
自分はキーボードかたかた叩いてちょっとずつ作っていく瞬間が楽しい
でも設計できないと先がなさそうorz
がんばってUML勉強しよう。
345:名前は開発中のものです。
07/05/03 17:36:22 mjAAEilH
>>344
UMLはそういうものじゃないぞ。基本的にあれは知らなくても十分だし。
(あくまでも、設計の書き方・設計のための言語みたいなもん。
個人か固定少人数でやるなら、適当でもなんとかなるし。)
設計を と思ってるなら、普通にオブジェクト指向系の本がいい。
自分が買って読んだ本で、お勧めは
憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門
まぁ、あと定番ながら
オブジェクト指向プログラミング入門
デザインパターンとともに学ぶオブジェクト指向のこころ
立ち読みで数ページしかみてないけど、入門の方はC++ 以外の言語(Object-C、Java、Delphi?)まで含めた本。
どれもこれも、値段も高いし・ページ数もやたらとあるしで
趣味でゲームを作るだけならちょっとオーバーワークっぽくも思えるけど、
Programmerとしての教養に読んでみては?
346:名前は開発中のものです。
07/05/03 18:20:36 q0fI33vb
憂鬱本は読んでみたけれど全くオススメできない。
ゲームプログラマなら、遅くともインベーダゲームを例とした説明のところで
頓珍漢なことを言っているのに気づくべき。
347:名前は開発中のものです。
07/05/03 18:36:59 l4cqkKLa
JAVAでもいいなら「オブジェクト脳のつくり方」がお勧めだぞ。
UMLの超簡単解説もあるし。
例題が業務システムなのがアレだが、
本質的な部分はC++も同じだから大丈夫かと。
348:名前は開発中のものです。
07/05/03 19:06:09 aROKnpN+
アレコレ言ってもしょうがないんでとりあえずUMLに触れてみて
どうやってコレを使ったら自分の助けになるのか
自分なりに理解するのが大切だと思いますよ
349:名前は開発中のものです。
07/05/03 21:21:39 ykGFiN+W
>>344
書籍で理論や共通知識を学ぶのも良いけど、ある程度コーディングできるように
なったら、「ホンモノ」のコードを読んでみるのも良い勉強になるよ。
個人的には UNIX V6 のソースコード読んで勉強したクチなんだが、いまどきの
人に薦められるかというと、ちょっと違う気がする。今だと Java, C++ あたりで
良い教材無いかねぇ…
350:名前は開発中のものです。
07/05/03 21:26:04 t/pC1jsI
UMLといってもクラス図くらいしか描かねぇ
351:名前は開発中のものです。
07/05/03 21:47:30 aROKnpN+
色んな図あるけど業務でやらない限りは
クラス図、アクティビティ図、シーケンス図あたりが限度かねぇ
352:名前は開発中のものです。
07/05/03 21:53:36 ifdqR3nP
業務でもそれプラスユースケースくらい
353:名前は開発中のものです。
07/05/03 22:57:52 ykGFiN+W
>>351
俺はアクティビティ図を抜いて、代わりにステートチャート図が追加って感じ。
354:名前は開発中のものです。
07/05/04 13:14:26 ljy2orUl
> 憂鬱なプログラマのためのオブジェクト指向開発講座
これ、全然おもしろくなかた。
わかりにくい。
オブジェクト指向分かってる後によんだのに、わかりにくかった。
「プログラマのための 憂鬱なオブジェクト指向開発講座」に直すべき。
355:名前は開発中のものです。
07/05/04 14:10:22 TiDrCtuu
そんな>>354のオススメ図書は?
いや、あおりでなしに、その本読んだけど分からなくて、今も分からないままなもんで。教えてくらさい orz
356:名前は開発中のものです。
07/05/04 21:08:31 +e+/DrXO
シームレスってどうやんの?
例えば2DのRPGマップをスクロールさせる様なばやいとか
357:名前は開発中のものです。
07/05/04 21:14:04 osoiCnRq
>>356
普通にやれば言いと思うが・・・
どんな状況を言ってるんだ?
358:名前は開発中のものです。
07/05/04 21:44:45 7VEgWe3m
>>356
マップをエリアに分割して、自分が今いるエリアの周囲をメモリに読み込んでおく。
移動して自分がいるエリアが変わったら、不要になったエリアの情報を破棄して
必要なエリアの情報を非同期読み込み。
これだけだが、何か疑問が?
359:356
07/05/04 23:07:32 +e+/DrXO
わかったありがとちん。
作ってみるよ。
360:名前は開発中のものです。
07/05/05 00:05:52 WcHz0Tx6
>>355
あー、俺は、Delphiを使っているうちに覚えてしまったたちでね・・・。
当時は、標準添付ライブラリのVCL使ったり、ソースとか読んだりして、オブジェクト指向を学んだな。
今なら、.NETのライブラリ使ったり、コンポーネント作って、覚えるようなもんだろうか。
習うより、慣れろって感じでスマソ。
あえて言うなら、実践的なオブジェクト指向ということで、
デザインパターンの言及しているwebページとか、本とかかな?
直接関係ないが、開発技法になっちゃうが、XP(エクストリームプログラミング)関連とかも、
OOP前提が多くて、実践的でためになる。
リファクタリング、ユニットテストなど。
あと、Javaでかかれた本とかページとかは、オブジェクト指向前提で参考になるよ。
361:名前は開発中のものです。
07/05/05 01:04:52 EPC7H7SP
なんとなくだが、>>360は見栄を張ってる気がする。
“ためになる” “参考になる”とか言いつつも具体的な書籍やHPも挙げないし、
言ってる事も理解へ向けてと言うよりも言葉で煙に巻く感じで(・A・)イクナイ!!
自分なら>>355には、 オブジェクト指向プログラミング入門 を推す。
内容にがやや教科書的/板書的過ぎるから普通の読み方じゃなく
章単位の読み方とか多少英語論文的な読み方が求められるけどページ数に合った力がつくと思う。
あと、ここでなんか批判されまくってるが、「憂鬱な」はそんな悪い本じゃないと思うぞ。
まぁちらほら賛成できない部分や論理的におかしい部分は見受けるが、それでもなかなかの良書。
もう一度、読み直してみるのもいいと思うが。
362:名前は開発中のものです。
07/05/05 02:25:29 WcHz0Tx6
アホか。見栄はりに2chに来てねーよ。
煙に巻くつもりなら、レスしなけりゃいい。
具体的なページを上げられないのは、当時のをブックマークしてないから。
第一、コード書いて、読んで、実地で学んだと言っているのに・・・。
ただ、「デザインパターン」とか「エクストリームプログラミング」とかキーワード上げてるんだからさ・・・
まあ、ググレカスと言いたいところなのだが・・・
■デザインパターン
サルでもわかる 逆引きデザインパターン 第1章 はじめてのデザインパターン はじめに
URLリンク(www.nulab.co.jp)
Amazon.co.jp: オブジェクト指向における再利用のためのデザインパターン: 本: エリック ガンマ,ラルフ ジョンソン,リチャード ヘルム,ジョン ブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田 真一,吉田 和樹
URLリンク(amazon.co.jp)
流行になった本だが、実例少なく今となっては読みにくい。CDの中身がまとまっていてよい。
Amazon.co.jp: デザインパターンとともに学ぶオブジェクト指向のこころ: 本: アラン・シャロウェイ,ジェームズ・R・トロット,村上 雅章
URLリンク(amazon.co.jp)
Amazon.co.jp: 増補改訂版Java言語で学ぶデザインパターン入門: 本: 結城 浩
URLリンク(amazon.co.jp)
363:名前は開発中のものです。
07/05/05 02:26:17 WcHz0Tx6
■リファクタリング
オブジェクト指向は直接関係ないけど、おすすめだから読んどけ。
Amazon.co.jp: リファクタリング―プログラムの体質改善テクニック: 本: マーチン ファウラー,Martin Fowler,児玉 公信,平澤 章,友野 晶夫,梅沢 真史
URLリンク(amazon.co.jp)
プロでこれ読んでない奴いたら、殴っていい
Amazon.co.jp: Java言語で学ぶリファクタリング入門: 本: 結城 浩
URLリンク(amazon.co.jp)
ちなみに、コメントないのは、俺が読んでないものなので注意(わかりやすそうなのを上げといた)
長いURL書き込めなくて苦労したぜ・・・
364:名前は開発中のものです。
07/05/05 02:33:04 WcHz0Tx6
あとは、OOPしてる読んでおきたいソース。
一応ゲーム制作技術板だから、ゲーム系のソースでも上げとこうか。
ABA Games
URLリンク(www.asahi-net.or.jp)
Titanion
URLリンク(www.asahi-net.or.jp)
とりあえず、ふつーに、OOPしとるんで読んで参考になること請け合い。
規模はでかくないが、ABA氏の一通り完成されたゲームばかりなので勧めやすい
あと、D言語やJavaばかりだから読みやすいよ。
365:名前は開発中のものです。
07/05/05 04:41:51 nOa25t75
初心者ならオブジェクト指向狂詩曲がいい。
内容はたいしたことは無いが、OOPの作法みたいなものがわかる。
軽く読めるのでおすすめ。
ところでダックタイピング系の書物でおすすめない?
366:名前は開発中のものです。
07/05/05 09:36:59 WcHz0Tx6
>>365
ダックタイピングって、Rubyとか、Pythonのアレですか?
C++とかで実装する方法とかってことですか?
そんな局所的な本なんてでてんのかなー。
367:名前は開発中のものです。
07/05/05 12:08:35 +5LnnL0c
ェネリックプログラミング系の書物がそれにあたるような気が
368:名前は開発中のものです。
07/05/23 19:36:40 yFXY+8Zs
たまにネタふり。
2Dゲームなどで使われる
オーダーリングテーブル(Ordering Table)は、すでに常識でしょうか。
たぶんローカル用語でしょうけど、大体用語がないので、これですませています。
おれは、弾幕ゲーム作ってるんだ!
いちいち、物体ごとに、Zソートしてたら遅くなる!そんな時に使用します。
z値ごとに、ArrayListをもって、バケットソート(バケツソート)するような感じです。
z値が広い場合は、z値を狭めるか(0~100くらいの定数にしてもいい)、
z値を割って使用します。
図では、こんな感じ。
z値
0 →□→□
1
2 →□
3 →□→□ →□→□
4 →□→□
□は物体。
369:名前は開発中のものです。
07/05/23 19:39:22 yFXY+8Zs
>大体用語
代替用語
370:名前は開発中のものです。
07/05/23 20:10:55 yFXY+8Zs
>>368
登録するのを物体ではなく、メソッドポインタなどにすれば、より汎用性が高まると思います。
371:名前は開発中のものです。
07/05/23 20:13:35 tJZKFF0H
久々に凄いネタ振りを見た
372:名前は開発中のものです。
07/05/23 20:46:34 sQffGK0m
人いたんだこのスレ
373:名前は開発中のものです。
07/05/23 21:17:01 h3A9cPXz
ぶっちゃけZソートで重いって8bitCPUかと
374:名前は開発中のものです。
07/05/23 21:37:02 5lNumVZr
最近知って、自慢したくて仕方なかったのでしょうw
使いどころ違うしw
375:名前は開発中のものです。
07/05/24 00:12:03 sQQ2EGyG
>>368
> 物体ごとに、Zソートしてたら遅くなる!
今ならZバッファ使えばいいじゃん。PlayStation じゃないんだし。
376:名前は開発中のものです。
07/05/24 00:19:50 4PByfCCv
>>375
画像処理のことなのか?
まぁ、半透明使うならZソートしといたほうがいいけど
>>368はハッシュとかツリーとか勉強するといいかも
377:名前は開発中のものです。
07/05/24 14:14:16 MN3OTeQA
>>375
3Dのシーンならそれでいいんですけど、
2D主体で、アルファ付きテクスチャ描画が標準、
アルファブレンドを使うのが当たり前、加算合成などが多めになると、
Zバッファが使えなくないですか?
俺、もしかしたら、基本的なところで、ミスってる?('A`)
>>373
毎フレーム、オブジェクトを数千個ソートするのもそんなには重くはないですけどね。
>>374
実は、昔から(DirectDrawの時代)から使ってるんですが、
使いどころ間違ってるのあk-----マジ教えてくれ
>>376
そうです。半透明が多めなんです。
Hashとかツリーは普通に使います。OTの実装もHashと同じですし
378:名前は開発中のものです。
07/05/24 15:21:37 4PByfCCv
hashとかわかってるならなんでそんなことをココに書き込むのだと小一時間問い詰めたい
379:名前は開発中のものです。
07/05/24 15:43:03 a3uG9+mx
・2D主体かつαブレンドを多用
・z値が整数で適当な範囲に収まる場合
ならその方法がいいのかもね
でもゲームによってやり方を変えるのが一番賢いだろうね
380:名前は開発中のものです。
07/05/24 16:17:32 aFaY4/D0
>378
最初にネタふりって書いてあるやん
381:名前は開発中のものです。
07/05/24 16:34:16 uojugi7P
っていうか、2Dのスプライトの場合はZオーダーなんてそう頻繁に
入れ替わるものではないから、前フレームのソート結果を上手く利用すれば、
もっと軽くできると思う。
382:名前は開発中のものです。
07/05/24 16:58:41 FtXKITOW
このスレの90%はネタを振る人間とそれにケチをつける人間でできています
383:名前は開発中のものです。
07/05/24 20:02:03 K0O2WDIn
>>382
残りの10%は?
384:名前は開発中のものです。
07/05/24 20:07:39 KUhBCX3E
ROM
385:名前は開発中のものです。
07/06/04 17:52:58 wXEt1jZx
ROMはいくらいても0%だろう
386:名前は開発中のものです。
07/06/12 16:35:34 KXWIMOSu
同人の俺は気にするほどのゲーム作らないからなー。
後から基数ソートやらに書き換えるつもりでSTLのsortでZソートしたけど
どこにも問題ないのでそのままリリースしたよ。めっちゃ富豪的
387:名前は開発中のものです。
07/06/12 20:19:56 mHZMnLTI
>>386
PS2 でも、そんなもんでした。STLport にお任せ。
388:名前は開発中のものです。
07/06/18 14:54:09 oOcxT9uX
コールバックってどういうときに使うんですか?
タスクシステム(というかハンドラオブジェクト)を使う時の場合において適当な例を教えてください
389:名前は開発中のものです。
07/06/18 15:00:56 2wNoPL2v
コールバックする時。
タスクシステムに限らず、メモリの解放を行ってもらうときとか、
進展情報を表示する時によく使うなあ。
とくに前者の場合は、他の開発環境で作ったDLL内でメモリを解放したいときとか。
390:名前は開発中のものです。
07/06/18 16:26:41 1gQkyo9F
>>388
オブザーバーパターンは便利だよ。
たとえば敵を倒したときにそいつのはいた弾をすべて消すとか、誘導弾のつけなおしとか
なれてくるとほとんどこれだけでイベントベースでコードが出来上がる。
391:名前は開発中のものです。
07/06/18 20:21:44 nIlBSYV8
タイミングが判明する場所と、そのとき行いたい処理との間の結合を
疎にしたいとき使います。
ほとんどこれだけでとか関係なし。必要なところへ必要なだけ使うべし。
392:名前は開発中のものです。
07/06/19 02:59:21 cFac+yZB
>>388
C時代のコードを利用するとき。
C++使えるんならほとんどのコールバックが仮想関数で見た目上は消せるだろう。
つまり仮想関数をCで使いたいときにコールバックが出てくる。
393:名前は開発中のものです。
07/06/19 05:07:59 AmvqVn7S
>>392
あとは、スクリプト言語との連携とか。
394:名前は開発中のものです。
07/06/22 08:30:52 njuyTnq1
Xboxのアレは禁断のボゴソートを使ったとしか思えない
395:名前は開発中のものです。
07/06/22 15:30:47 G4eFb+Vh
>>395
Xboxのアレって何ですか?
396:名前は開発中のものです。
07/06/22 17:18:36 vqNTOWGn
カルドセプトサーガの事じゃないの?
397:名前は開発中のものです。
07/06/22 20:36:17 OntiNUWq
そのタイトル名でググってみたが、これは酷いなw
サイコロが奇数と偶数が交互に出るとかw
398:名前は開発中のものです。
07/06/22 22:02:44 qN22ntrp
>>394
ボゴソートって知らなかった。
URLリンク(ja.wikipedia.org)
これはひどいあるごりずむ
399:名前は開発中のものです。
07/06/22 22:21:08 VTeo1nmT
>>398
これ逆にコーディングの手間がかかるだろw
400:名前は開発中のものです。
07/06/22 22:22:42 +XVLd04M
>ボゴソートは、ソートのアルゴリズムの一つ。
>平均的な計算時間はO(n×n!)で、非常に効率の悪いアルゴリズムとして知られている。
>安定ソートではない。
最後の一行のオチで吹いたw
401:名前は開発中のものです。
07/06/22 22:28:33 0YS4QSdj
ここでボゴソートを使ったゲームを考えるのがゲームプログラマの努・・・ごめん無理
402:名前は開発中のものです。
07/06/23 00:06:58 WPiear32
ボゴソートワロタw
403:名前は開発中のものです。
07/06/24 05:25:19 zQnoyhbz
ワラタ
ソートつーか、バラバラに並び変えるアルゴリズムかとw
404:名前は開発中のものです。
07/06/24 11:16:29 1MtSzEPe
>>400
安定ソートの意味知ってるのかよ('ω`)
405:名前は開発中のものです。
07/06/24 11:33:03 NLW3QANP
>>404
安定ソートの意味知ってるのかよ('ω`)
406:名前は開発中のものです。
07/06/24 11:35:30 rfvCjIOU
>>404-405
知らないよ!(゚Д゚)
407:名前は開発中のものです。
07/06/24 11:54:44 nOj+/xcZ
>>404-405
知らないよ!(゚Д゚)
408:名前は開発中のものです。
07/06/25 03:07:29 qVqBESx6
えーっと、同じ順位のアイテム同士はソート前の順番を保つ、であってる?
409:名前は開発中のものです。
07/06/25 09:30:06 mc9m8oVn
あってる。
この記事のオチはInfinite monkey theoremだよ。ググレ、笑うから。
410:名前は開発中のものです。
07/06/25 10:06:14 U5o2CqSM
セットで RFC2795 もどーぞ。
URLリンク(www.ietf.org)
411:名前は開発中のものです。
07/06/25 20:59:14 NaYhg1aV
>>394-410
スレ違い
412:名前は開発中のものです。
07/06/25 21:35:29 933SMbqm
>>411
既存のゲームにおけるパターンの一端って事で
413:名前は開発中のものです。
07/07/17 22:54:23 Mh0Ht4Or
このスレ生きてますか?
基本的?なデータの扱いについて意見を聞きたいです
データに対応する操作クラス以外から値を書き換えることを禁止するためにこういうクラスを考えました
template <typename T> class IData {
public:
friend class Mutator<T>;
typedef T element_type;
typedef boost::shared_ptr< element_type > value_type;
protected:
value_type value;
};
template <typename T> class IMutator : public IData<T> {
typedef IData<T> data_type;
protected:
void assign(data_type& target) { value = target.value; }
void swap(data_type& target) { boost::swap(value, target.value); }
};
使う際はこいつを継承して
class CData : public IData<int> {};
class CMutator : public IMutator<int> {};
のようにすれば
CMutatorはIMutatorのassignやswapを使ってCDataのvalueの指すデータを生成から破壊まで自由に扱えるわけです
でもこのようにするとCDataの持つ情報が増えた時に
class CData : public IData<Param>, IData<Graphic>, IData<Sound>のように
継承しまくりになることとか、shared_ptrの機能によるコストが気になったりします
そこでもっと一般的なやり方を知りたいんですが何か良い方法ありませんかね?
414:名前は開発中のものです。
07/07/17 23:05:36 oI0Vf9iA
template <typename T> class IData {
public:
boost::shared_ptr<T> value; //!< 漏れ以外勝手に書き換えんなよ!
};
415:名前は開発中のものです。
07/07/17 23:19:26 Mh0Ht4Or
いくら防衛策を巡らせても書く人の意思でいくらでも変えられるから
そんな事考えるのは無駄だよってことですか
言われてみればそういう気もしますが…(´・ω・`)
416:名前は開発中のものです。
07/07/17 23:29:43 9lPCzUGd
多重継承にパフォーマンス(速度・容量の両面で)上の弊害は無いが
役割が酷似した基底(インターフェース)同士を多重継承って嫌過ぎだろ。常考。
衝突避けるためにインターフェース設計の段階でお互い調整しなくちゃいかんし
衝突上等ならキャストだらけの汚ねぇコードになる。俺ならコンポジットにする
417:名前は開発中のものです。
07/07/17 23:32:47 ecw8MgBR
いまいち要求が飲みこめんけど、委譲とかプロキシパターンとか
アダプタパターンとか、ありもののパターンで十分間に合いそうな希ガス。
経験上、複雑な仕組みはロクなことがない。
Keep it simple stupidですよ。
苦労して得られる利益が少なくて割が合わないパターンでは?
418:名前は開発中のものです。
07/07/18 00:07:21 xDBgIMCC
どうも
よく考えたらIDataはインターフェースじゃないっすね…
全く異なる型を同士でコンポジットにしてアクセスも上手く制限できる事って出来るんでしょうか
要求としては
・データと動作を分離する事と
・動作をデータに対してではなくゲーム上のオブジェクトに対して書けること
・書き込み専用のクラス以外からのアクセスを制限する事
です
操作されるデータの実体へのポインタを持つIDataと、それを扱うインターフェースIMutatorに分けたのは一番目のため
多重継承したCData経由でデータを扱うのは2番目を実現するため
データの実体へのポインタであるIDataのvalueメンバをprotectedにし
Mutatorをフレンドにしたのは三番目の為
以上によってゲーム内でのオブジェクトの振舞いは全てIMutator派生クラスのCDataに対しての操作として
書くことが出来て、リソースの確保等のシステム的な動作は外部に一任できる
という意図があったんですが、そんなに複雑ですかいね?
419:名前は開発中のものです。
07/07/18 00:28:49 JHo6PQLB
・データと動作を分離する事と
・動作をデータに対してではなくゲーム上のオブジェクトに対して書けること
・書き込み専用のクラス以外からのアクセスを制限する事
つまりテンプレートで実装する意味はないよね?
420:名前は開発中のものです。
07/07/18 00:37:53 9FpPIZ4u
>>419
ないね
421:名前は開発中のものです。
07/07/18 00:57:12 IHWjkDA2
> ・書き込み専用のクラス以外からのアクセスを制限する事
IMutatorを継承すればどんなクラス以外からでもアクセスできる以上、
制限できてるとは言いがたい。
「IMutatorの継承を無闇にするな」と、文書で説明する?
ならば、414でいいでしょ。
422:名前は開発中のものです。
07/07/18 02:48:50 vN51PGaN
>>418
> ・動作をデータに対してではなくゲーム上のオブジェクトに対して書けること
「データ」と「ゲーム上のオブジェクト」の違いがよくわかりません。
「動作を~に対して書ける」ってのもよくわかりません。
「~を引数とする関数を書くことができる」ってことでしょうか?
423:名前は開発中のものです。
07/07/18 05:52:53 1k3Xg7ZP
なんか奇想天外なことになってるのは
>・データと動作を分離する事と
これのせいだと思う
誰が吹き込んだんだか知らんがまず>>413がしなきゃいけないことはこいつを殺すことだ
424:名前は開発中のものです。
07/07/18 18:10:13 sTmzL7Mk
class CData : public IData<Param>, IData<Graphic>, IData<Sound> {};
こうすると、CData::valueの型は何になるの?
425:413
07/07/18 19:28:34 xDBgIMCC
>>419,>>420
>つまりテンプレートで実装する意味は無いよね
恐らく既存の構造体を利用するためにこうした筈なんですが
普通にそれらをCDataにスマポで持たせた方がいいじゃんじゃんな気もしてきました
>>421
おっしゃるとおりです
細かいところにとらわれて本質を見失うという悪い例を晒してしまいました…
>>422
>「~を引数とする関数を書くことができる」ってことでしょうか?
そうです
キャラクタの移動や描画の際は、リソースのハンドラを移動クラスや描画クラスに渡すんでなく
CDataを渡すような形で書きたいわけです
>>423
なんかキャラクタのクラスに座標構造体と移動メソッドを定義してたソースを友人に見せると
値を保持するクラスと操作するクラスは分けろこのスカポンタンとか言われたのでそうするようにしてるんですが
何か思い違いをしてますか…と問うまでもなく明らかにしてますね
>>424
晒したコードでは見事に多重定義のエラーになりました
実際はそれ避けたり多重定義されたIDataのvalueを内部で扱うためにboost::mplとか使って
さらに複雑な事やってるんですが>>417氏の言ってる事に繋がりますね
とりあえず苦労して作った車輪は最発明どころかガラクタですらないナニカだったというオチでした
もっかい一から作り直してみますm(_ _)m
426:名前は開発中のものです。
07/07/18 20:55:21 ux1Fssbs
>>425
> 値を保持するクラスと操作するクラスは分けろこのスカポンタン
インターフェースと実装を分離するのは一般論としては間違いじゃないが、粒度が違う。
メンバ変数単位ではなく、意味のあるメンバ変数のセットをインターフェースにしろって
意味だと思うよ。
// 衝突判定後に、消灯判定マネージャから衝突回避のために位置をずらされる
struct IMovable {
// 現在位置
virtual void getPosCur(VECTOR3* p) const = 0;
// 移動したい位置
virtual void getPosNext(VECTOR3* p) const = 0;
// 衝突しないようにマネージャがずらした位置
virtual void setPos(VECTOR3 const& v) = 0;
};
class Player : public IMovable { ... };
class CollisionManager { /* こいつは IMovable だけ使用 */ };
こういう話かと。
427:名前は開発中のものです。
07/07/18 20:55:52 ux1Fssbs
>>426
s/メンバ変数のセット/メンバ関数のセット/g
428:名前は開発中のものです。
07/07/18 23:49:47 1k3Xg7ZP
>>425
>値を保持するクラスと操作するクラスは分けろこのスカポンタンとか言われたのでそうするようにしてる
なんでそうしなくちゃいけないか理由は分からないの?
プログラムは芸術じゃないんだから外の人のどうしたこうしたで中身が変わったりしないよ?
429:名前は開発中のものです。
07/07/19 00:19:41 RaZNmmmq
> 値を保持するクラスと操作するクラスは分けろこのスカポンタンとか言われたのでそうするようにしてるんですが
つかこれ自体間違いだろ。
430:名前は開発中のものです。
07/07/19 00:38:54 PDuVn1ka
>>429
だよな多分
431:名前は開発中のものです。
07/07/19 05:21:01 5YEt12VO
getterとsetter作って、アクセス管理するくらいしかやったことねえや
触らせたくないなら、関連クラスからのみアクセスとか(C++ならfriend?)
それ以上ってコストかかりすぎねえ?
432:名前は開発中のものです。
07/07/19 11:40:10 LxxDZCLh
少人数・小規模製作でアクセス制限も糞もないわな
433:名前は開発中のものです。
07/07/19 15:01:29 3ArgKadV
少人数小規模だろうが、
開発期間中に、年単位で空白があったコードを読むこともあるわけで。
そういう場合は、アクセス権は考えといて損はねーですがよ。
434:名前は開発中のものです。
07/07/19 18:50:40 TacCeKvZ
アクセス権?になってくるとまた話が変わってきちゃうんだが
そんなファイルのパーミッションみたいな機構小規模だろうが大規模だろうがつけたらあかん
というか無駄、損がないというか何の得もない
435:名前は開発中のものです。
07/07/19 18:59:00 ajveBJeZ
とりあえず理由を
436:名前は開発中のものです。
07/07/19 19:27:00 3ArgKadV
なんでファイルのパーミッションの話になってるんだ
>>432のアクセス制限って、クラスのメンバーに対することで、
>>433のアクセス権ってのもそのことだろ?
437:436
07/07/19 19:27:51 3ArgKadV
変な日本語になった
正しくは、
なんでファイルのパーミッションの話になってるんだ
>>433のアクセス権って、クラスのメンバーに対することで、
>>432のアクセス制限ってのもそのことだろ?
438:名前は開発中のものです。
07/07/19 19:39:53 /RFbeqQb
「使いたいものを使いたいときに即使えないのはうっとうしい」
ということではなかろうか>ファイルシステムの例え話
個人管理のLinuxなんかだと、最初からrootでログインして使う人もいるくらいだから
それはそれで別に当人の自由だと思う。
要はアクセス権限を分ける方がトクか分けない方がトクかは
ケースバイケースで判断すればいいってことだけど
439:名前は開発中のものです。
07/07/19 20:12:33 TacCeKvZ
>なんでファイルのパーミッションの話になってるんだ
おまえがアクセス権なんていうからじゃん
440:名前は開発中のものです。
07/07/20 12:39:13 vUDuhb3O
スレタイを百回声に出して読んでくれ
441:名前は開発中のものです。
07/07/20 12:40:51 vUDuhb3O
ついでに二人とも正座な
442:名前は開発中のものです。
07/07/20 21:52:02 +3gqdIHH
難しく考えすぎ。
他のオブジェクトにアクセスして欲しくないメンバは
クラスの中に隠蔽して、プライベートメンバにしておくのがセオリーでは。
アクセス権ってのは本来そうやってコントロールする。
外からオブジェクトにアクセスできるようにしておきながら
アクセスできないように制限する仕組みを作るってのがナンセンス。
443:名前は開発中のものです。
07/07/20 22:07:32 lyxTTGt6
「する」「しない」の二択にするという話ならその通りだが
特定の状況でのみ●●に大して××させることを許可するとかいう話なら
ソースレベルで静的に操作するのは困難
444:名前は開発中のものです。
07/07/20 22:32:40 +3gqdIHH
動的にアクセス権を与えたいなら、まずは隠蔽しておいて、
状態に応じてアクセスを許すかどうかを決めればいいのでは。
445:名前は開発中のものです。
07/07/20 22:52:28 +3gqdIHH
本当にアクセス制御の問題で困っている人が大勢いるなら、
今頃boostにそれらしいクラスが含まれていると思うけどね。
例えばnoncopyableはオブジェクトのコピーを禁止するクラス。
こんなレベルのものでも有用さが認められればboostに仲間入りできる。
URLリンク(www.kmonos.net)
でも今現在boostにアクセス権制御のクラスがないってことは、
需要がないってことでは?
まずはプライベートメンバを使ったシンプルな隠蔽によるアクセス制御で
どこまでできるのか突き詰めてみた方がいいでしょ。
今のところ自分はそれで困ったことはないけどね…。
446:名前は開発中のものです。
07/07/21 00:49:20 DMrsrXyJ
ナンセンス。この一語に尽きる。
447:名前は開発中のものです。
07/07/21 01:16:04 oWQ5iQEX
progress_displayがあるのにそんなこと言われても説得力無いなぁ
動的にアクセス権決めるならgetter,setterを隠蔽してfunction使ってアクセス権を与えたいクラスに
そのgetter,setterを与えてやるって方法もあるけど
functionは1個で40bytes近く食う割と重たい(?)オブジェクトだから無茶かな、無茶だな
448:名前は開発中のものです。
07/07/21 03:00:31 DMrsrXyJ
動的ってことになってくるとそれは普通にインターフェイス呼び出し時の
認証の機能の話になってしまうんじゃ?RMIとかそーいった話の流れ方向での
静的だと外側の構造も知らん一クラスごときが誰に使われるのが良いだ悪いだ
決めるとか何いい気になってんだって話だ
>>443
>静的に操作するのは困難
困難どうこうより、そのポリシーを決める根拠をどこにも求められないということだよ
適当に決めてしまえば後で直せなくなる
根拠がどこにもないから
449:名前は開発中のものです。
07/07/22 02:55:07 /VC165Eo
>>443
インターフェースを多重継承して、必要な時・相手にアップキャストしたものを渡せば。
450:名前は開発中のものです。
07/07/22 03:36:44 jrExVTdK
簡単な具体例も挙げてくださいお願いします
451:名前は開発中のものです。
07/07/22 13:24:51 /VC165Eo
>>450
struct IFoo { virtual Vec3 getPos(); const = 0; };
struct IBar { virtual setPos(Vec3 const& pos) = 0; };
class CPlayer : IFoo, IBar { ... };
f1(IFoo&);
f2(IBar&);
CPlayer player;
f1(player); // f1には getPos() しかさせない
f2(player); // f2には setPos() でメンバ変数書き換えを許可
452:名前は開発中のものです。
07/07/22 15:08:54 PSHVXCKb
>>447
functionって40byteも食うの?
その半分くらいですみそうなんだけどな。
453:名前は開発中のものです。
07/07/22 18:59:44 jrExVTdK
なるほど、呼び出す側にインターフェースを渡すんですね
参考になりましたありがとうございます。
454:名前は開発中のものです。
07/08/05 01:30:04 CiKwXSKt
boost::functionって便利だけどむちゃくちゃヒープが汚くなりそう
455:名前は開発中のものです。
07/08/05 07:10:10 4IAfjfpf
>>454
小さなオブジェクトが多数 new されそうって意味? 気にしなさんな。
456:名前は開発中のものです。
07/08/05 07:37:18 CiKwXSKt
まあ、それが気になって使ってない、という訳じゃないけどねえ。
アロケータ作れば何とかなるだろうし。
457:名前は開発中のものです。
07/08/05 20:35:16 ki20ixME
javaでTCBを使いたいんだけど、どうしてる?
458:名前は開発中のものです。
07/08/05 20:46:45 4IAfjfpf
>>457
ふつーにメンバ変数使えばいいだけでは? Task Control Block なんてのは、アセンブリ時代の名残だから、
C++, Java あたりでは使わんでしょ。
459:名前は開発中のものです。
07/08/06 00:04:42 Mz0XA0lP
ゲームのデータを独自のフォーマットとかにする場合にヘッダを用意する?
460:457
07/08/06 00:40:04 wjb80OI1
URLリンク(ueno.cool.ne.jp)
こんな感じに組みたいんだけど、javaには関数ポインタがないので、引っかかり中。
461:名前は開発中のものです。
07/08/06 00:44:36 N/EWx1nS
>>460
まじめに勉強したら?
462:名前は開発中のものです。
07/08/06 00:45:37 N/EWx1nS
というかあからさますぎて夜釣りに思えてきた
463:名前は開発中のものです。
07/08/06 02:03:36 dDj8AjaH
TCBと言えばRTOSなので
ここはeCosに実装されたwabaを紹介してやるのが筋だろうか
464:名前は開発中のものです。
07/08/06 03:43:57 r8MqGT/t
ppc arm super wabaなら・・・
465:名前は開発中のものです。
07/08/06 07:16:51 R+5scQVe
>>460
Java だとインターフェースもしくは抽象基底クラス使う。
466:457,460
07/08/06 22:38:48 dCjdYchV
aを規定クラスにしたb1タスク
aを規定クラスにしたb2タスク
b1、b2タスクが混在したリストを作成したい。
C/C++なんかだと、関数ポインタnextなどにタスクをつなげてゆけるところだが・・・
javaだと関数ポインタがないので、配列にしてインデックス参照にするしかないのだろうか?
インデックス参照だと、個々のタスクごとに属性を割り振って、別々に読み出すか32bit以内に押し込むかなどして値を管理し、switchで分岐
して実行する記述が必要・・・。
C++なら多重継承があるので、b1からb2にたどることもも可能だが、javaには多重継承はないし・・・。
インターフェースは同じインプリメントを保障してくれるだけど、結局タスク切り替えのロジックが必要になるし・・・。
関数ポインタに比べて、これだと積極的に使うにはオーバーヘッドが気になるのと、記述が煩雑でプログラム的にCより退化しているように感じてしまう。
(今はリスト構造にせず、配列でタスクリストを持つ方向性で考慮中・・)
467:457,460
07/08/06 22:41:30 dCjdYchV
だれか経験豊かなjavaプログラマた通りかかったりしないかなぁ。
468:名前は開発中のものです。
07/08/07 00:03:46 ziyaQFb3
Vectorじゃだめなのか
469:名前は開発中のものです。
07/08/07 00:17:53 2nrPyfF8
やはり釣りだったか
470:名前は開発中のものです。
07/08/07 00:42:53 lyE3j1c/
HSPでOOPをやろうとするのと同じくらい馬鹿げてるな
471:名前は開発中のものです。
07/08/07 01:25:29 /sDbVbxZ
>>466
ぐちゃぐちゃ言ってないで書いてみろ。あんまりにも考察がめちゃくちゃで
どこから突っ込んでいいのかわからん。ソース晒してみれば突っ込みも入れやすい。
472:名前は開発中のものです。
07/08/07 01:55:24 sukzLC0P
>>466
日本語でおk
473:名前は開発中のものです。
07/08/07 03:33:11 jZSDWWPE
>>466
参照使え馬鹿
474:名前は開発中のものです。
07/08/07 03:37:03 Qoe4Y4zA
なんでみんな冷たいんだwww
475:名前は開発中のものです。
07/08/07 06:44:09 vUw1LN3Q
>>468
LinkedList の方が。
476:457,460,468
07/08/07 07:55:20 8/4fXdca
void (*func) ();
これのjavaでの代用法が知りたい。
477:457,460,468
07/08/07 08:07:53 8/4fXdca
LinkedList ....
Thanks! >> 475
478:名前は開発中のものです。
07/08/07 08:09:00 /sDbVbxZ
>>476
java.lang.Runnable func;
479:名前は開発中のものです。
07/08/07 08:24:51 88OVU+XC
>>466
aを要素にとるコンテナを宣言して
それにb1インスタンスだのb2インスタンスだのを加え、
コンテナを走査して処理メソッドを順に呼び出せばいいだけの話。
データ構造だとかクラス設計だとかいうレベルじゃない。
単にプログラミング言語の勉強が足りていないだけ。
それにお前は多重継承を激しく誤解している。出直して来い。
480:名前は開発中のものです。
07/08/07 10:39:17 98Sz9x7X
なんかタスクってGoToやってるような雰囲気があるな
481:名前は開発中のものです。
07/08/07 10:48:42 TDGAxW6A
>>476
>>460では関数ポインタ使ってなくね?
482:名前は開発中のものです。
07/08/07 14:27:28 lyE3j1c/
まぁvtableは関数ポインタみたいなもんだけどな。
483:名前は開発中のものです。
07/08/07 14:28:52 gmxLaOKz
>>478
Swingでやってハマるとかw
関数ポインタに直感的に一番近いのはjdk7までお預けだな。
javascriptならそのまま
(function(num){ print(num);})(100); //-> 100
だが。
484:名前は開発中のものです。
07/08/07 15:06:05 2nrPyfF8
>>483
日本語でおけ
485:名前は開発中のものです。
07/08/07 19:51:36 LOGzBd/R
自分が話理解出来てないだけなのに日本語でryとか言ってる奴増えたよね。
486:名前は開発中のものです。
07/08/07 20:52:36 2nrPyfF8
>>485
>Swingでやってハマるとか
理解できないのはこの部分だ
487:名前は開発中のものです。
07/08/07 23:28:41 rZkCIKw7
Swingがスレッドセーフではないって話かな。
もしそうなら >478 が言いたいのはRunnableのインターフェースだけを
借りることだろうから話が飛躍してるな。
488:名前は開発中のものです。
07/08/07 23:51:16 vUw1LN3Q
>>476
だから抽象基底クラスかインターフェース使えと。下のサンプルコードは C++ だが、Java でも
ほとんど変わらん。
#include <boost/foreach.hpp>
#include <boost/ptr_container/ptr_list.hpp>
struct ITask {
virtual ~ITask() {}
virtual void exec() = 0;
virtual void draw() const = 0;
};
class TaskManager {
public:
void exec() { BOOST_FOREACH(ITask& task, m_tasks) task.exec(); }
void draw() const { BOOST_FOREACH(ITask const& task, m_tasks) task.draw(); }
private:
boost::ptr_list<ITask> m_tasks;
};
489:名前は開発中のものです。
07/08/08 00:01:44 2nrPyfF8
>>488
優しいな
490:名前は開発中のものです。
07/08/08 07:33:12 71C/M+UG
たったこれだけのことなのに
さも凄まじいシステムであるかのように
タスクシステムと言う人の気がしれない
491:名前は開発中のものです。
07/08/08 07:48:40 4PM0J5aw
>>490
歴史を勉強しましょう
492:488
07/08/08 07:51:26 obrNCieZ
>>490
同意。
アセンブリ言語でハードコーディングしていた時代に初めて見たら「やるな」と思うが、
今時だとふつー過ぎて何も言うことがないよね。UNIX V6 のころのデバドラも、既に
こんな作りだし。
自分でコード書くのもいいけど、もっとコード読もうよ、と思う。
493:名前は開発中のものです。
07/08/08 07:53:43 HMa+110c
今とは比較にならない制限の厳しさの中で
TCBを弄り回してた時代のことを知らないんだろね
494:名前は開発中のものです。
07/08/08 08:21:56 XmcrCIW0
そういう話題は以下のスレでやってくれ
タスクシステム総合スレ
スレリンク(gamedev板)
495:457,460,466,476
07/08/09 01:21:26 WI6u6LTt
できた。
抽象基底クラスは知っていたが、
仕様上、基底クラスから上位のクラスをたどる必要があったので、
関数ポインタ云々といっていたのだが・・
キャストすればよいだけだった。
javaにはポインタの概念がないから、
javaのクラスは当然キャストできない、というような誤解があったので。
496:名前は開発中のものです。
07/08/09 01:24:51 Tm6LW0Jp
>>495
それなんか設計がおかしくないか?
みんなの意見無視ってところか
497:名前は開発中のものです。
07/08/09 02:27:45 RcnrWFRi
>仕様上、基底クラスから上位のクラスをたどる必要があったので、
そんな仕様にするのが悪い。
第一、抽象基底クラスを知っているのならば
そんなところで困ったりしない。
498:名前は開発中のものです。
07/08/09 02:50:07 yVPi3RJq
初心者には冷たいもんだな
499:名前は開発中のものです。
07/08/09 03:14:21 v8CPCZuZ
というか言語仕様勉強しろ
500:名前は開発中のものです。
07/08/09 04:12:56 k08h5JG9
キャストってw
ポリモフィズムをカケラも理解しとらんじゃないか
501:名前は開発中のものです。
07/08/09 04:46:19 BskRNsfr
自分から質問してきたくせに
まともな意見すら無視するような勉強不足君は
鮮やかに放置して、次の話題ドゾー
502:名前は開発中のものです。
07/08/09 05:27:24 nQyaGvDb
まともな意見を無視するのと勉強不足なのは関係ないと思うぞw
質問者はどちらの属性も持ってるけど
503:457,460,466,476,495
07/08/10 20:04:16 aK9bbQO3
失礼。
>>488
解決のヒントになりました。
ただboostライブラリはjavaにはないような気がします。
>>468
Vectorの案内が最初の解決のヒントになりました。
504:名前は開発中のものです。
07/08/11 20:49:07 AcYB8hIq
>>503
さんざん情報貰ったんだから、せめてソース晒して恩返ししてみないか?
505:名前は開発中のものです。
07/08/17 01:53:51 7sSY46ad
JavaSEでVectorつかってそーだな・・・
506:名前は開発中のものです。
07/08/21 16:35:31 /oULNmRu
質問すまそん。DXライブラリ&VC++でゲーム製作してます。
例えばRPGで、キャラデータ・アイテムデータ・フラグおよび
ゲーム内システムデータ(ゲーム世界での日付とか)は、
それぞれグローバルなデータクラスにしてるんですが、
もうちっとスマートな設計の仕方はないでしょうか?
ほぼ全てのインスタンスから参照するデータ(例えばフラグとか)って、
いちいち参照やポインターで格納させるよりか、データクラスとしてグローバルに
展開してメソッド経由でアクセスさせたほうがいいような気がするど素人なんですが、
こんな俺はオブジェクト指向として根本的に間違ってますね?
507:名前は開発中のものです。
07/08/21 18:54:06 /OCncB5N
ちゃんと管理できるなら問題ない
508:名前は開発中のものです。
07/08/21 19:55:25 LQCVNOKZ
>>506
>>507に同意
オブジェクト指向をしたいのか、ゲームを作りたいのか。
書き方に明確な規則やルールがあれば、それだけでいいと思うけどね。
でも自分が「オブジェクト指向的」に組むなら、その辺の情報はグローバルにはしないと思う。
必ずシステム内で生成する。何故なら、ゲームシステム≠ゲームの世界と考えてるから。
1.ゲームシステム=ゲームの中の宇宙を作る(ゲームシステム=プログラム本体)
2.宇宙の中に惑星を一個作る。(ゲーム世界(日付等含む))
3.ゲームの世界の中に、登場人物やアイテムを作る。(キャラクターデータ、アイテムデータ)
4、登場人物とアイテムは、状態を所有している。(フラグ)
単純に現実に沿って状態を作る(これがRPG向きか?と言われると、そうではないけど)
データは必ず1→2→3→4の順にアクセスする。面倒くさいけど、一応これにも利点がある。
・ゲーム内での登場人物の役割を切り替えやすい。
・同時に複数キャラが操られても破綻しにくい。(マルチプレイさせやすい)
・同様に、ゲーム世界以下の要素は増やすのが比較的容易。
まとめて言えば、人や物、物事の取り扱いを現実と同じようにできるってことね。
最初に戻ると、規則があるなら君の好きで良いんじゃないってことで。
509:名前は開発中のものです。
07/08/22 02:49:01 xHfctKqh
>>505
標準ライブラリが互換性のために未だに使いまくってるんだが・・・。
んで使い勝手悪いからいい加減JCFに移行しろと叩かれてるじゃないか。
510:名前は開発中のものです。
07/08/22 10:20:41 lSyOGrel
Universe.MilkyWay.SolarSystem.Planets.Earth.Enabled = false;
511:名前は開発中のものです。
07/08/22 21:45:27 HTZJHbeS
>>508
> 単純に現実に沿って状態を作る(これがRPG向きか?と言われると、そうではないけど)
単一システムで作るのは、結構つらいなぁ。
俺だと RPG はフィールド&シナリオ、戦闘、デモシーンでシステム完全に切り離して
作っちゃうけど。どーしてもフィールドからシームレスに戦闘に入りたいと言われたら
考えるが、工数は開発もデバッグも倍かさむよって感じ。
512:名前は開発中のものです。
07/08/22 21:58:56 9DW3Phyd
>>506が心配してるようなのって構造化手法の方の話で
オブジェクト指向とはあんまり関係ない気がする
オブジェクト指向言語は結局構造化手法の流れを汲んでるから関係あるっちゃあるんだけど
「オブジェクト指向的」に批判されることはないと思うんよ
513:名前は開発中のものです。
07/08/22 22:26:25 9DW3Phyd
>>508はこの方針でゲーム作ってなんかあったらここへ相談しにきてね
514:名前は開発中のものです。
07/08/23 00:15:28 mSgl7P3T
>>60が参考になるんじゃね
515:名前は開発中のものです。
07/08/24 15:43:24 C1/M3//R
>>513
>>510みたいなことは流石にやってないけど、マップが複数面あって
自由にキャラクターを選べるのを作ってるから、今のやり方で全く問題なかったりするぜ!
516:名前は開発中のものです。
07/09/01 13:35:04 +CS1vDDV
>>510おれもそんな感じだww
517:名前は開発中のものです。
07/09/01 15:26:53 AAlSvZp8
>>516
お前って奴は…
518:名前は開発中のものです。
07/09/01 18:53:13 pEzsrlB5
チラウラだが .NETの自動生成コードとか見ると
クラス名がネームスペース入りのフルネームで書かれてて
>>510と比べてもあまり遜色ないくらい長ったらしい記述になってる
519:名前は開発中のものです。
07/09/03 18:50:24 pkJ0HJ1y
>>510はどこまでが名前空間でどこからがコレクションなんだろ
520:名前は開発中のものです。
07/09/03 18:56:19 l4kjvmoQ
Universe.、までが宇宙空間
521:名前は開発中のものです。
07/09/03 20:58:24 nm3JiNC1
Planetsまでじゃないのか
522:名前は開発中のものです。
07/09/03 21:43:06 l4kjvmoQ
C#とかだと区切り記号が全部ピリオドだから分かりにくいよなあ
523:名前は開発中のものです。
07/09/03 22:51:36 4m5q0iOi
俺ならPlanetsは入らないな。
Universe.MilkyWay.SolarSystem.Earth
しかし、こんな話題しかないものか。
524:名前は開発中のものです。
07/09/03 23:01:33 nm3JiNC1
いいんじゃない、超光速星間航行を多用するスペースオペラ的ゲームのデータ構造。
525:名前は開発中のものです。
07/09/04 00:01:23 aU+sltFh
>>522
そんなこと言いだしたらjavaのエンクロージング型の完全修飾名は恐ろしいことになる。
526:名前は開発中のものです。
07/09/04 00:51:30 SZHcTWC/
外から内部クラスをアクセスすることはほとんどないんじゃね?
527:名前は開発中のものです。
07/09/04 01:36:58 aBG3sZkW
>>522
Delphiはわかりにくいと申すか
528:名前は開発中のものです。
07/09/04 01:47:09 h5r4WGWI
まあDelphiもC#も、同じヘルスバーグ氏設計の言語だからな
俺は氏の思想は好きだが
529:名前は開発中のものです。
07/09/04 09:17:06 /fq60VcD
どっちもIDEで使うための言語だからそんなに問題にならないでしょ
530:名前は開発中のものです。
07/09/04 14:17:11 A5VD8Kop
C#はCLRで使うための言語だろ。
VSがIDEなだけで。
531:名前は開発中のものです。
07/09/04 17:20:53 /fq60VcD
独立して使えるように体裁は整えてあるし確かにそうなんだけど
#regionとかpartialとかIDE向けの機能があるのは確か
URLリンク(www.atmarkit.co.jp)
>Q.C# 3.0では、型推論によって読むのが難しいコードになってしまうのではないか?
>A.Visual StudioのIDEを強化すればおk
さすがにスレ違いだなすまん
532:名前は開発中のものです。
07/09/04 18:32:28 1MQtcsKR
まあ、確かに動的な型変換と型推論は型の決め方が違うから読み辛い。
というかC#は既存言語の枯れたパラダイム
てんこもりにしただけのくせに信者が騒ぎだすんだろうなぁw
533:名前は開発中のものです。
07/09/05 22:29:15 wushZy2l
アンチうぜぇ
534:名前は開発中のものです。
07/09/06 00:13:48 XDEo8NLL
信者うぜー
535:名前は開発中のものです。
07/09/06 01:04:58 ojjbKURb
突然何の脈絡もなく言語叩きをしだす馬鹿は放置して次の話題ドゾー
536:名前は開発中のものです。
07/09/07 00:33:06 B51b23c5
JAVAとかC#とかってキャストないよね
タスクシステムのワーク領域のキャストってどうやるのかな
537:名前は開発中のものです。
07/09/07 00:44:42 GaWvLQQX
>536
今どきそんなC時代の古典的「タスクシステム」に無理矢理合わせようとしないのが正解。
538:名前は開発中のものです。
07/09/07 00:54:28 qKvVhzB0
>>536
だからインターフェース継承しろと。どうせメモリ管理は GC 入ってるんだし。
539:名前は開発中のものです。
07/09/07 09:56:16 +KS6LJ+F
キャスト自体はあるだろと
まぁC++でもそんなコードかいてたら殴り倒すけど
540:名前は開発中のものです。
07/09/07 10:04:18 puv664XK
>>539
シューティングゲーム プログラミング
松浦 健一郎 (著)
この本ではC++でワーク領域のキャストしてたけど、殴るの?
541:名前は開発中のものです。
07/09/07 10:07:03 ODKwq4Ib
ワーク領域のキャスト(笑)
542:名前は開発中のものです。
07/09/07 11:36:49 +KS6LJ+F
それ悪い見本だろ
543:名前は開発中のものです。
07/09/07 12:02:42 xHXwrHzM
>>542
普通に使ってたよ
本を書いてる人を殴れる程、出来るプログラマーなの?あなたは
544:名前は開発中のものです。
07/09/07 12:51:19 6U+LdAPY
松浦 健一郎 (著)、じゃなくて
松浦 健一郎 (笑)の間違いだろ。
545:名前は開発中のものです。
07/09/07 13:28:52 43uHszUC
MAKKENは殴ってよい
546:名前は開発中のものです。
07/09/07 13:54:05 NUmtK/nu
>>540の本って継承知らない程度の初心者向けの本ってところか?
継承使わずにやるやり方にページ割くくらいならさわり程度でも継承教えたほうがためになりそうだが・・・
547:名前は開発中のものです。
07/09/07 16:11:07 g09BD/TG
>>543
>>542が出来るプログラマーかどうかはわからんが、
基本的に日本だと本を出す奴ってのは3流だから
とりあえず本出してる人すごいって認識は改めたほうがいい。
548:名前は開発中のものです。
07/09/07 16:48:36 HXEpQNDZ
3流は本すら出せんだろ
549:名前は開発中のものです。
07/09/07 16:51:44 wO5yXJcP
>>547
三行目に同意
俺も高校まではそういうステレオタイプを持ってた
550:名前は開発中のものです。
07/09/07 17:54:50 VwzOSVjv
じゃあ「俺よりは凄い」で。
551:名前は開発中のものです。
07/09/07 20:37:04 B51b23c5
ここは自称凄い人がたくさんいるスレですね
552:名前は開発中のものです。
07/09/08 00:42:34 hAtUkBFn
>>546
一応継承は使ってるみたいだよ
new deleteのオーバロードも使ってるし
だから単に継承を使ったやり方をしらないだけじゃね
553:名前は開発中のものです。
07/09/08 02:39:33 RITYgY6W
最近のライターがコード書けんのは確かだな。
554:名前は開発中のものです。
07/09/08 07:47:53 bNPXbGtI
はいはいスレ違い
555:名前は開発中のものです。
07/09/13 22:14:56 1Bt3Jrj9
"Those Who Can't Do, Teach"という言葉があってだな。
シューティングの本?
同人シュー作者の俺がそのうち書いてボコボコにしてやんよ
∧_∧
つ≡つ);:)ω・).,,';
_| ̄ ̄||≡つ=つ )
/旦|―||// /| \
| ̄ ̄ ̄ ̄ ̄| ̄| . |∪ ̄\_)
|_____|三|/
556:名前は開発中のものです。
07/09/13 22:42:21 sAjH+7xy
>>553
正直、本を書いてもあまり儲からないんだよな……。前に技術書書いたことがあるんだが
印税8%で初版3000部とかだったから、時間単価考えたらコード書いてた方が遥かにマシ
だった。
もう少し幅広く売れる本とか、時間かけずに書けるとか、その後の仕事受注につながる類の
ヤツなら良いんだが。
557:名前は開発中のものです。
07/09/13 22:44:13 p9GEmztQ
何系の本なの?ゲーム系?ハード系?
それとも普通の言語系?
558:名前は開発中のものです。
07/09/13 23:27:43 sAjH+7xy
>>557
ネットワーク系。だいぶ前だけど、当時は翻訳やら執筆やらイロイロやってた。
今じゃすっかりコンサル稼業で、趣味でしかコードかけない人生だけどな……。
559:名前は開発中のものです。
07/09/14 00:00:01 qAC7e6UH
技術書って印税8%も来るのか。
560:名前は開発中のものです。
07/09/14 01:56:40 kBeEhHlB
>>559
でも 1 冊 2,000 円 x 8% x 3000 冊だと 48 万だぜ。駆け出しのプログラマだった頃は
実質 1.5 ヶ月かけても割に合ったけど、もうダメだ。金以外に何か目的がないと
やってられんよ。
561:名前は開発中のものです。
07/09/14 04:58:49 CTgFkt8N
やねうらおさんですか?
562:名前は開発中のものです。
07/09/15 18:37:54 odGWNMQb
けっこう、計算するとシビアな値段だな・・・
人生掛けてまでやることじゃない
クソ本あろうとしったことか!
あ、俺?俺は、情報商材にして、単価上げて(゚Д゚)ウマー
563:名前は開発中のものです。
07/09/15 20:05:14 5hbSwr+P
自分の備蓄禄だと思えば良いじゃない。
何ページで執筆に何カ月かけたか知らんが、
コード書けない人間なら数こなせば良い金になるな。
eclipse本なんてコード書かなくても良いしソフトの新版出る度に改定するから副業にはちょうど良いじゃないか。
デザインパターン本なんて同じ内容なのに言語ごとにあるぞ。
コード書いて食ってる人間に本なんて書いてる暇があるかは知らんが・・・。
564:名前は開発中のものです。
07/09/15 20:15:34 zE0h51TJ
日本の場合、コード書いても食えない人間ばかりだろ。
だから低レベルな本しか出てない。
そんな本ばかりだから若い人が育たない。
で、その若い人がコードで食えないから、さらに劣化した本を書くというスパイラル。
565:名前は開発中のものです。
07/09/15 20:27:26 lBqIBG3l
と、コードを書けもしない人間が申しております
566:名前は開発中のものです。
07/09/15 21:30:05 kmdFdmdy
>>564
> 日本の場合、コード書いても食えない人間ばかりだろ。
というか、単価の高いプログラミング仕事がほとんどない。
大手ゲームメーカーでリードプログラマやるより、中小の基幹システム改修
案件の SE やってた方が全然収入がいいという。技術的にもプロジェクト運営の
面でも、ゲーム屋の方が大変なんだが。
567:名前は開発中のものです。
07/09/16 03:07:48 YcEkQAYx
しょせん日本のマは末端の土方
568:名前は開発中のものです。
07/09/16 07:52:57 hBA8iHMq
プログラマなんて、IT土方だからな
569:名前は開発中のものです。
07/09/16 09:22:16 bdw4UY6n
>>568
GoogleとかMSだと給料高いけどな。現地ではなく日本採用でも。
570:名前は開発中のものです。
07/09/16 09:44:24 hBA8iHMq
>>569
プログラムだけできるだけじゃ、入れないところじゃねーか
571:名前は開発中のものです。
07/09/16 11:01:46 5DEnzRu4
>>569
M$はともかくgoogleは給料安いんでないの?福利厚生はともかく給料は。
572:名前は開発中のものです。
07/09/16 12:12:44 bdw4UY6n
>>571
Google は給与水準公開してないから情報限られるけど、俺が中の人から
聞いた話だと十分高いと思った。
それより株式公開前にストックオプション貰ってた連中は、上場と同時に
億万長者の仲間入りしちゃってるから、それと比べると給与はどうでも
良いっつー話らしいが。
573:名前は開発中のものです。
07/09/16 19:28:45 OIlosS2z
絶望した。上場したてのGoogle株を買って、任天堂に乗り換えれば
たった3年で20倍になってる事実に絶望した。
絶対うまいこと乗れたギーク系投機家がどこかにいるはず。
574:名前は開発中のものです。
07/09/16 20:24:04 JalQ3AgQ
お前ら良いなgoogleが上場とか、俺の頃はまだyahooすらなかった。
CEREN vs NCSAのhttpd戦争終結後くらいか・・・。
575:名前は開発中のものです。
07/09/16 20:58:05 uZJ+v8CM
みんな、UMLとかdoxygenとか使ってる?
576:名前は開発中のものです。
07/09/16 23:32:07 cz5uVFrl
どっちもつかってます
577:名前は開発中のものです。
07/09/17 01:15:23 YnotUqm6
javaだからdoc toolはデフォだな。
578:名前は開発中のものです。
07/09/17 01:50:53 VnVYOx3U
色気出してプリプロセッサ・テンプレートメタプログラミングしてると
doxygenが酔ってくれるから困る
579:名前は開発中のものです。
07/09/17 10:46:54 4TcSZ3vD
doxygenはマニュアル作ってくれる事もいいんだけど、コメントの規格を統一できるのもいいよな
でも、心がけてくれないチーム員もいるんだよなあ
580:名前は開発中のものです。
07/09/17 11:33:01 wCNRu3Bd
■□■□■□■□■□■□■□■□■□■□■□■□■□■ □■□■
――Click Click Click――
それは、一番クリックした国が優勝するバカバカしくも熱いゲーム!
2ch全板から力を結集して日本を1位にしよう! 日本は過去に8勝(世界最多)しています。
めざすは、台湾の6連勝記録を打ち破ること!
現在日本は3連勝中だけど、猛加速のハンガリーに昨夜逆転されてしまいました。
日本のツールはとても優秀ですが、参加人数が足りません!!
逆転するには、最低でもあと100台のPCが必要です。
専用ツールを落として、ブラウザを起動しておいてくれるだけでOKです!
放置できるので、寝ながら日本の戦力になることができます!
どうか力を貸してください!
【日本2位】一番クリックした国が優勝【版画ksk】
スレリンク(news4vip板)l50
※オリジナルのゲーム制作チームがあります。ぜひ力を貸してください。
581:名前は開発中のものです。
07/09/17 11:46:33 gzVOF+3o
doxygen で生成したドキュメントは使ってないが、doxygen 用にコメントは
書いてる。(javadoc 形式というべきか)
> コメントの規格を統一できるのもいいよな
目的はこっち。
582:名前は開発中のものです。
07/09/17 12:30:12 GfvjK68d
実際のチーム開発の現場って、
コメントだけでなく、ファイル名とかクラス名とか変数名とかのコンベンションも
やっぱ決められてるもんなの?
583:名前は開発中のものです。
07/09/17 12:33:20 gzVOF+3o
>>582
当然。
ただ汎用ライブラリを持ってくることもあるから、そっちとこっちで
規約が違って一部混在することはある。たとえば STL と DirectX
だと名づけ方大分違うしな。
584:名前は開発中のものです。
07/09/17 15:33:27 GfeYD8ac
>>575
Delphi使いなんで、Togetherで UMLはコードから自動生成だぜ~(嘘、使いません
ドキュメント生成ツールは、日本語対応したものがなくて、使ってない orz
585:名前は開発中のものです。
07/09/17 19:51:10 W3g8XPDv
doxgenは日本語出せたよ、Delphiに対応してない気が下が
586:名前は開発中のものです。
07/09/17 23:45:15 /t9Slj66
>UMLはコードから自動生成だぜ
普通設計してからコード書かないか?
UMLの仕様上は確かにcode2UMLもUML2codeも相互運用可能だけど・・・。
587:名前は開発中のものです。
07/09/17 23:57:57 zeWn8DxN
>>586
ネタにマジ(ry
> UMLの仕様上は確かにcode2UMLもUML2codeも相互運用可能だけど・・・。
C++ は code generation に向かない言語だなぁとおもうよ。
集約・コンポジション・関連の区別とかつけにくいし、boost::scoped_ptr で pimpl イディオム
使ってる場合とか、マジメに piml クラスもクラス図に入れると煩雑になりすぎ。
私は設計段階で主要クラスだけ図に書き出して、あとはコードでって感じ。
クラス図は必要があれば更新するけど、あくまでコードが第一の文書に
しちゃってる。
588:名前は開発中のものです。
07/09/18 00:16:16 0DwxQSyZ
UMLはドキュメントとしてはいいが、コードにそのまま適用されるものではない
というのは比較的お堅い業務アプリでの常識なんだが
柔軟性が求められるゲーム開発ならなおのことじゃね?
組込み系が今突撃中
589:名前は開発中のものです。
07/09/18 00:22:12 3aYPJasO
そこでinterface definition languageですよ
590:名前は開発中のものです。
07/09/18 01:16:19 5yeO/Swt
IDLでも結局は各言語に落とさなきゃ使えないからやる事はUMLとかわらなくない?
591:名前は開発中のものです。
07/09/18 08:32:52 FiLXhuol
UMLってやっぱEAでやってるの?
eclipseでNECのプラグインのを最近使ったんだが
592:名前は開発中のものです。
07/09/18 19:37:18 QkVIQXVh
個人的には MagicDraw とホワイトボード。
593:名前は開発中のものです。
07/09/19 06:01:52 8Q9ZtqfD
まず、マインドマップで手書きして頭の中整理してからUML使うな。
594:名前は開発中のものです。
07/09/19 07:15:57 kYNbLBEe
紙と鉛筆最強
595:名前は開発中のものです。
07/09/19 08:22:34 +HDOOkBH
同意。小型ホワイトボードもいい。
596:名前は開発中のものです。
07/09/19 21:49:02 umm3ZbPO
Eclipseのプラグインなんて使うのは、UMLドキュメントも成果物として要求されるような
ソフトウェア製作現場くらいじゃないか
597:名前は開発中のものです。
07/09/19 22:07:56 sx0yn1sA
そうなんだ・・・eclipseのプラグインでしか良いのないなーって思ってた
598:名前は開発中のものです。
07/09/19 22:43:10 amMsIx49
それよりeclipseのプラグイン=UMLツールって図なのはどうなのよ?
スタンドアローンなUMLツールもちゃんとあるんだからね!?
599:名前は開発中のものです。
07/09/19 22:49:24 jK01tyWi
>>598
> スタンドアローンなUMLツールもちゃんとあるんだからね!?
俺が使ったことあるのは、こんな感じ。結局 MagicDraw の Standard Edition 買って
使ってる。
Visio
・汎用お絵かきツールなので UML 専用ツールとしてみると、かなりイマイチ…
Together 試用版
・ソースコードに特定の形式でコメント埋め込む必要あり。ソースコードと UML の
同期は完璧だが、C++ だとマクロやらテンプレートやらあって逆に足枷に。
Enterprise Architect
・細かいことは忘れたが、値段の割りによくできてた気がする。
Jude竹
・使いづらかった記憶が。Java 前提で C++ だとイマイチ。
MagicDraw
・それなりに自由に図がかけつつ、UML 固有のサポートも十分している(基底クラスの
メソッドをコピーしてくるとか)。サポートしている図の種類も豊富で、開発も順調に
継続中。Pure Java アプリなのでメモリは多めに。
ただ C++ だとソースコードと同期する reverse engeneering, forward engeneering は
制約ありすぎで使い物にならない。
600:名前は開発中のものです。
07/09/21 00:31:32 KPDpA4Lk
C++ …
601:名前は開発中のものです。
07/09/21 16:35:38 GgMzSNNV
なんかC++のマクロが元凶なだけじゃ・・・。
javaにマクロないし。
602:名前は開発中のものです。
07/09/21 22:17:12 RhYk6YdF
>>601
スマートポインタ・pimplイディオムあたりも、そのまま図にすると冗長で
ワケわかめ。
603:名前は開発中のものです。
07/09/23 23:05:37 7hC9eV3o
javaにスマートポインタなんてないし世代別GCという逸材が組み込まれてる。
とか言ってみて良い?
実際javaでGCが必要になるケースって言語実装する場合だけど、javaのGCに投げれば良いだけだし。
604:名前は開発中のものです。
07/09/23 23:32:34 /EvVKbRp
え、いや、だから何?としか・・・
605:名前は開発中のものです。
07/09/24 00:13:37 5E4o0Iyz
>>603
文面見るだけだと、集約とコンポジションの区別がつかんけどな。関連との区別も
つかないし。
606:名前は開発中のものです。
07/09/24 00:36:17 N33NsFp0
>>603
CでもC++でもライブラリでGC使えるようになるよ
とか言ってみて良い?
デストラクタのタイミングがJavaだと曖昧だから、
確実に呼ぶためには明示的に呼び出す必要あるよね
とか言ってみて良い?
607:名前は開発中のものです。
07/09/24 00:38:43 wP3VhiV8
Dispose論争がやりたいなら他でやってくれ
608:名前は開発中のものです。
07/09/25 01:43:17 cUqDGz0b
共同開発で、Bohemなんか使ったら(ry
609:名前は開発中のものです。
07/09/25 01:59:20 Ubo+pWpI
>>608
アーーーー!!
610:名前は開発中のものです。
07/09/25 02:50:51 j6V698Ny
Bohemと言えば、吉里吉里3の開発で使っていたような。
と思って調べてみたら、やはりけっこう面倒になことなっているようですね。
URLリンク(kikyou.info)
C++でGCをするのは、やはりリスクは大きいんでしょうかね。
挙動をきちんと把握していないと、余計なバグを出しまくると。
611:名前は開発中のものです。
07/09/25 07:15:30 p/ZTpO6S
まさにそれで右往左往してるじゃん。吉里吉里3は。
というか誰のコードが入るか分からんOSSにはBohemGCは向いてないと思う。
612:名前は開発中のものです。
07/09/25 14:42:50 IK+Mi4/+
> とくにファイナライザ(デストラクタ)が呼ばれるタイミングや、
> そもそも呼ばれるか呼ばれないかすら信用できなくなるというのは痛いです。
これってBohemGCというか、
JavaでもC#でも似たような問題抱えてるような気が。
C#はusingでだいぶ良くなる(というか必須)けどね。
613:名前は開発中のものです。
07/09/25 15:49:03 j6V698Ny
C#でusingを使えるような状況なら、C++でも
std::auto_ptrやboost::scoped_ptrが使えるのでは。
まあこの当たりのスコープによる廃棄を使えるのは、データ構造でなくその
呼び出し側のほうになるとは思いますが。
データ構造の内側たるメンバ変数では、結局いポインタwをを使おうとすると、
やはりGCかスマートポインタが(r
614:名前は開発中のものです。
07/09/25 19:45:25 w6OvpTgu
ヒープの解放と後片付けは違うぞ
615:名前は開発中のものです。
07/09/25 23:37:49 k19pdkx7
>>611
全然右往左往はしてないので、BohemGCは向いていると思うよ
616:名前は開発中のものです。
07/09/26 02:49:14 9IVyIRI7
>>614
java6からはそこらへんもVMの仕事だな。
>>615
一時期、他のコードとの相性で苦戦してただろ。
というか吉里吉里は実質一人開発なのでバザールモデル開発時の問題は無縁かも知れん、
がソースを公開してるので誰がどう使うか分からないのでBohemGCは向いてないだろ。
617:名前は開発中のものです。
07/09/26 04:16:25 PN2WWo+U
>java6からはそこらへんもVMの仕事だな。
?
618:名前は開発中のものです。
07/09/26 07:07:41 i8F3qiyk
>>616
よく知らないんだけど、BohemGC特有の問題ってなんなの?
>>812はBohemGCだけの問題では無いよ。
619:名前は開発中のものです。
07/09/26 08:13:44 3isC6Gy4
>>616
w3m も BohemGC 使ってなかったっけ?
俺は C++ だとスマートポインタで十分なケースが多いので、BohemGC は
まず使わないけど。
620:名前は開発中のものです。
07/09/27 02:23:21 +pE/2Wnl
>>616
ほら、言い直した。
「一時期問題があった」だろ?
それなのに>>610-611で2006年から今もずっと右往左往してるかのような印象操作をして、
BohemGCがOSSに向いてないとか、そんな詭弁はやめろ。
お前が古い人間で、よく理解出来ていないガベージコレクションが嫌いなだけなんだろ?
>ソースを公開してるので誰がどう使うか分からないのでBohemGCは向いてない
これとかまったく意味不明。
boostのshared_ptrでも、まったく理解しないで使うと罠がある。
そういう仕組みをまったく使わないで、手作業で開放しても罠がある。
お前の論では、ナニをやろうが向いていないんだよ。
>>619
スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
var a = [0];
a[0] = a;
これだけでメモリリーク起きるなんて、危なくて使えん。
621:名前は開発中のものです。
07/09/27 02:44:05 VvpaMtLQ
GCは魅力的だと思うが、まだ”枯れてないから”じぶんは好きくない
技術は何かを実現する手段であって目的ではない
622:名前は開発中のものです。
07/09/27 07:51:02 N1wjX3wO
枯れぬなら 枯らしてしまえ ほととぎす
623:名前は開発中のものです。
07/09/27 08:18:58 w2Fnc2yT
>>620
> スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
スクリプト言語の仕様にもよるな。
PCのギャルゲーだとスクリプト言語自体をリッチな仕様にして、動的な
メモリ確保なども可能にする(文字列連結とか)場合もあるみたいだけど、
俺はスクリプトでは完全にコンパイル時にメモリ割り当てが確定しちゃう
ようにして、メモリやリソース管理は C/C++ 側のコードでプログラマが
責任を持って行うようにしてる。
スクリプタとプログラマの役割分担どうするかだが、スクリプタ大量投入
するタイプのプロジェクトだと、スクリプトの自由度を下げた方がバグの
発生頻度が小さくなって、結果的に ウマー なことが多いと思う。
624:名前は開発中のものです。
07/09/27 10:54:43 5M+6zylX
なんで>>620はエスパーレッテル張りまでして必死なの?
吉里吉里信者?
625:名前は開発中のものです。
07/09/27 11:00:37 qVZI5NrD
確かに必死さが伝わってくるな
626:名前は開発中のものです。
07/09/27 11:33:55 ET62U43b
nanndeこんんあに必至なの?
627:名前は開発中のものです。
07/09/27 12:37:22 vs9qugjh
池沼だから
628:名前は開発中のものです。
07/09/27 13:19:16 HGokK3wm
荒れていても技術的な話題が堪えることのない名スレ
でも最近少々荒れ気味だから皆落ち着け
629:名前は開発中のものです。
07/09/27 14:40:58 1l0/TfAT
落ち着いてないのは>>620くらいじゃ?
元々隔離板の過疎スレだから少数が騒ぐと目立つだけ。
またーりログ読んでるか、生温かい目で見守ってるのが大半じゃない?
630:名前は開発中のものです。
07/09/27 23:24:46 foTLrBw8
言うに事欠いて「必死だな」で切り抜けようと試みる
古典的バカが未だに生き残ってるとは驚きだな
631:名前は開発中のものです。
07/09/27 23:31:57 n9Qt+CRZ
煽っても必死さが正当化されるわけじゃないよ
632:名前は開発中のものです。
07/09/27 23:38:28 Kt0ma0Lg
BohemGCサイコー
633:名前は開発中のものです。
07/09/27 23:47:44 CbY2cE68
「必死さが正当化される」ってのはよく分からないけど・・・
とりあえず、「必死だな」とか言う前に>>620を論破してみれば?
例えば、
1,BohemGCだけにある、もしくはJavaやC#のGCでは解決された重要な問題を列挙する
(数値とアドレス値が識別できないという問題はあるけど、確率的にそれが不都合になることはほとんどない)
2,吉里吉里にはBohemGCが向いていないことを示す他のソースを提示する
とかね。
個人的に1はとても興味があるので、問題があるなら教えて欲しかったりする。
634:名前は開発中のものです。
07/09/27 23:48:30 w2Fnc2yT
>>620
本題からそれるけど、
> スクリプト言語の作成は、スマートポインタだけだとしんどいと思う。
> var a = [0];
> a[0] = a;
> これだけでメモリリーク起きるなんて、危なくて使えん。
スクリプト言語におけるインスタンスの寿命管理と、C++ インスタンスの寿命管理は
別の話だよね。
俺は VM のスタックは C++ のスタックを使わず、C++ で std::vector<> 使って確保した
記憶域を使ってる。でないとスクリプト一時中断する (co-routine 実装) のが難しい
からさ。
当然スタック上にあるスクリプト言語のインスタンスは全部 VM でトラッキングできる
ので、ガベコレできる。C++ 側のメモリ管理が GC 使ってるかどうかとは無関係に。
635:名前は開発中のものです。
07/09/28 00:02:16 qVZI5NrD
>>634
ようするに実装がスタックレスってことだな。
つかスタックレスでないVMにコルーチンを実装するのは不可能じゃないか?
636:名前は開発中のものです。
07/09/28 00:23:32 l1EYGW9S
>>635
多少制約がつくけど、Cスタックを保存・切り替えできればスタックフル VM でも
コルーチンは実装できます。
ただ、どうやってもポータブルなコードにはならないし、C++ 例外の実装方法に
よっては問題出るから、お勧めしないけど。
637:名前は開発中のものです。
07/09/28 01:10:11 iJmhMBkl
>>636
スタック切り替えてまでやるかw
猛烈に処理系依存なコードになりそうだな
638:名前は開発中のものです。
07/11/17 17:10:37 iMK/PWng
戦闘シーンの進行管理をするクラスって、どういう名前にしたらいいんだろう?
BattleManagerかな…でもManagerは使うなって話もあるし。
639:名前は開発中のものです。
07/11/17 17:27:39 tjJHhoDY
>>638
Manager 使うなって話は、つまり「管理」というあいまいな言葉を使うなって話。
「戦闘シーンの進行管理をするクラス」の役割を見直さずに名前付けだけ考えてても
無意味。
640:名前は開発中のものです。
07/11/17 17:45:31 iMK/PWng
>>639
レスありがとう
そう、今プログラム素人の子と話してたんだけど、
漠然と「場」みたいなもので考えるから名づけに迷うんであって、
相撲の行司みたいなのがいると仮定して、
そいつに戦闘の進行管理をさせればいいんじゃない?
という意見をもらった。
そこでまた、「戦闘の進行」っていう、時間を伴ったものを、
その「行司」の中に持たせちゃっていいのかなと迷うんだけど、
その辺りは割り切っちゃったほうがいいの?
OOPド素人丸出しでごめん
641:名前は開発中のものです。
07/11/17 17:53:06 3LkIon8X
戦闘シーン関連の処理に関して、俺が抱いてるイメージとしての「管理」から考えると
そのManagerが関連する他のクラスに処理を分配して、それを仲介するようなクラスだとMediatorあたりになるんじゃなかろうか
俺が作ってた「Manager」は上記のものがさらにFacadeの役割も果たすってのが多かった
デザパタから借りてるだけで正解とはとても言えんけど、「Manager」よりはマシかな…と
642:名前は開発中のものです。
07/11/17 18:09:05 tjJHhoDY
>>640
> そいつに戦闘の進行管理をさせればいいんじゃない?
それじゃ何も解決しないでしょ。「管理」という役割が同じなままなんだから。
「管理って、実際のところ何するの?」と問い、「あれして、これする」っていう
もっと具体的な単位に分解できれば、「あれするクラス」「これするクラス」に分割する
ことが考えられる。それらを組み合わせたものを「戦闘シーン」というクラスにすることも
考えられる。
どうしても「管理」としか呼べないんなら、それを Manager と名付けること自体には
何の問題も無い。
「戦闘の進行」と「行司」という切り分けができるなら、前者を Advance() なんていう
関数、後者を Rule とかいうクラスにすることが考えられる。 Advance() は Rule に
従って処理をする、って感じね。具体的な状況がわからないんで、全然ダメかも
しれないけど。
643:名前は開発中のものです。
07/11/17 18:34:11 2u92yTvZ
SceneManagerとか定番だな
644:名前は開発中のものです。
07/11/17 18:35:34 JxWacONa
javaの立場が・・・
645:名前は開発中のものです。
07/11/17 20:30:54 /rbqSJ11
class Referee
{
public:
Referee(const class Rule& current_rule);
const bool judge(const class Battle& current_battle);
void bribe(const int price);
inline void win(void) { URLリンク(youtube.com) }
};
646:名前は開発中のものです。
07/11/17 21:45:56 K5pYaEDh
>>644
?
647:名前は開発中のものです。
07/11/18 06:00:26 D4743XwF
使うなとは誰もいってないよ
648:名前は開発中のものです。
07/11/18 07:27:13 mDvA2is2
>>642
俺の場合、Manager って名前は使っちゃうな。ただし Manager クラスで
何でもかんでも処理せずに、分割できるところは別のクラスに切り出して
Manager クラスに集約する。
Facade やね。
649:名前は開発中のものです。
07/11/20 01:41:42 Xv2CgjLa
さっきからしょぼいBGMのループがひどいな
2ループもすりゃ十分だろ
650:名前は開発中のものです。
07/11/20 02:00:34 B+/JlwAo
>>649
何に対して言ってるのか
651:名前は開発中のものです。
07/11/20 06:51:02 x6OdnLNb
B・・・・・GM・・?
652:名前は開発中のものです。
07/11/24 17:27:35 5kPj3Eca
シューティング作ってて、敵のクラスと自機のクラスを分けちゃったけど、わけない方がスマートだったかなあ
653:名前は開発中のものです。
07/11/24 17:36:40 BsLqDTe0
>>652
一部同じインターフェースを持つことはあるだろうけど、普通に考えてまったく同じクラスに
なるとは思えない。
654:名前は開発中のものです。
07/11/24 19:10:43 XdMXhxj/
自分は敵1と敵2とかでもわけてる
655:名前は開発中のものです。
07/11/24 21:09:45 vFIasKer
>>654
そりゃ、作るゲームにもよるな。キャラクター数少なくて差異が大きい場合には
クラス分けるが、RPG のように数が多いと基本1クラスでデータ駆動にする。
656:名前は開発中のものです。
07/11/24 22:25:37 Y480fdwm
>>652
何シューティングか知らないが、
よくある2Dのシューティングなら自機と敵機で違う処理したほうが、
当たり判定の最適化しやすそうだな。
(同じ基底クラスから派生させるとかいう話はおいといて、