2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ゲームシステムの抽象化技法を考える

1 :名前は開発中のものです。:02/08/20 20:46 ID:2DDU0oP8
大規模ゲームを実現するために、どのようにシステムを抽象化するかを考えるスレです。

2 :名前は開発中のものです。:02/08/20 21:02 ID:???
オイ、だれか例のあれ頼むよ

3 :名前は開発中のものです。:02/08/20 21:05 ID:???
>>1
何かネタ振れよ

4 :名前は開発中のものです。:02/08/20 21:08 ID:???
  / ̄ ̄ ̄ ̄\
  |           |
  |  ()  ()   |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |    ∀     |< 氏ね!
  |           |  \______________
  |           |
  └.─.─.─.─.┘


5 :名前は開発中のものです。:02/08/20 21:08 ID:???
さいたまさいたまさいたま!!!!

6 :名前は開発中のものです。:02/08/20 22:06 ID:ihXyfCe0
>1
大規模ゲームってどんなゲーム?

7 :名前は開発中のものです。:02/08/20 22:07 ID:???
関連? 重複?

OOとゲームプログラミング
http://game.2ch.net/test/read.cgi/gamedev/1005144931/l50

8 :1:02/08/20 22:12 ID:???
デザインパターンとか、そういう小技を出し合うのではなく、システム全体をいかにスマートに組むかを考えたいと思います

9 :1:02/08/20 22:13 ID:???
以下、マ板より

249 :仕様書無しさん :02/08/17 22:05
>>245
>クラス化するのが難解な場合は、一度クラスにしなければならないと
>言うところから離れて仕様を見直してみるのもよし。
いやあ、もちろんC++やOOを盲信してるわけじゃないし、他に解決策があれば飛びつきたいんだけど、
その他の解決策をどうするかで現在悩み中というか。

実際色々試したよ。
コーディングでゴリゴリイベントを作っていくと、ソースの量が膨大でメンテが大変になっちゃう。だからといって
データ中心にアプローチすると、今度はデータ型に制限を受けて、例外的なことが出来なくなっちゃう。
このへんをスマートに解決するにはどうすればいいのか・・・
上手く言えないんすけど、昔ながらの2Dシューティングなんかはデータ中心の考え方でいけると思うんすよ。
スクロールするたびに、データに従って敵を生成していけばいい訳だから。
んで、テトリスなんかはコード中心で考えるべきだと思うわけなんですよ。
そういうシンプルなやつなら、まあ設計の方針を立てやすいんだけど、最近のFFみたいなゲームは出来ることが
多すぎて、もう何から手をつけていけばいいのやら。
昔のファミコン時代のRPGなら、それぞれ独立したモジュールに分ける事も出来るけど、さっき言ったみたいに
ムービーシーンと戦闘シーンを滑らかに繋ぐとか言う事になってくるともうわけわかんない。
一体全体どうやって作ってるのかと。根性の世界??


250 :仕様書無しさん :02/08/17 22:08
>ムービーシーンと戦闘シーンを滑らかに繋ぐとか言う事になってくるともうわけわかんない。
片やデータ中心、片やコード中心。しかもその二つが密接に結合してるって事ね

10 :1:02/08/20 22:14 ID:???
こういう話をしたいなあなどと考えておりますです

11 :1:02/08/20 22:16 ID:???
なので、あまり使用言語にとらわれずに、あくまで設計手法中心に語れたらなあ、と・・・

12 :名前は開発中のものです。:02/08/20 22:30 ID:???
単に設計ができないプログラマの愚痴じゃねぇか…

13 :名前は開発中のものです。:02/08/20 23:07 ID:UpgjbDdW
んー面白い議題だねぇ。ただ、5年間に大小5タイトルほど作って1つ解っ
た事がある。

す べ て は ケ ー ス バ イ ケ ー ス

あと、ゲームにOOは向かないよ。

14 :名前は開発中のものです。:02/08/20 23:09 ID:???
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)


15 :2:02/08/20 23:19 ID:???
>>14
そう、それだよ

16 :名前は開発中のものです。:02/08/21 01:44 ID:???
>>9
FFって、凄くシンプルな設計じゃない?寧ろ。


17 :名前は開発中のものです。:02/08/21 01:56 ID:???
>>9
どのスレか、リンク貼るかスレタイ書くかぐらいしろ!
お前は制作手法以前に、意志伝達手法を勉強しろ。

大体、あまりにも広すぎるだろ、話題の範囲がよ。

で、9 の話題にマジレスすると
ムービー: 他社が作った三ドルウェア。動作タイミングも分からん。
戦闘シーン:自分が作ったコード。
ということで、なめらかに繋ぐのは完全に根性の世界。


18 :名前は開発中のものです。:02/08/21 01:58 ID:???
シェンムーならどうですか

19 :名前は開発中のものです。:02/08/21 02:29 ID:???
つーか、いまどきの大規模ゲームデザインはシンプルなメイン構造に
柔軟性のあるスクリプトエンジンとパーティクルベースのエフェクト
エンジンにあとは力技の大量スクリプトでキマリ。

正直、オールドスタイルなゲームに比べてプログラマのスキルは低く
てもなんとかなっちゃう一面も。

20 :名前は開発中のものです。:02/08/21 02:57 ID:???
フロムソフトウェアあたりに見習え。という感じですね。

21 :名前は開発中のものです。:02/08/21 03:18 ID:???
パーティクルのマシンリソースに対する
コストパフォーマンス比に疑問を持っている漏れは
逝ってヨシですか?


22 :名前は開発中のものです。:02/08/21 07:10 ID:???
>>13
具体的にどんな分野がにOOが不向きなのか書いていただけると勉強になります。
自分でSTGを組んだときはOO(OOPL)だと非常にすっきり作れたのですが。

23 :名前は開発中のものです。:02/08/21 07:42 ID:???
>>21
い つ の マ シ ン で す か ?
と言うのも難なので、環境によるだろうといっておきます。

24 :名前は開発中のものです。:02/08/21 11:32 ID:???
ICOなども根性でつないでるんだろうか・・・

25 :名前は開発中のものです。:02/08/21 12:00 ID:rBeoIIdc
ゲープロにもOOは有効。別にOO言語は必須じゃ無い。
でもどっちかとユーとデータ駆動と考えたほうが良し。こんなところでいかが?


26 :名前は開発中のものです。:02/08/21 12:20 ID:???
>>19
>柔軟性のあるスクリプトエンジンとパーティクルベースのエフェクト
>エンジンにあとは力技の大量スクリプトでキマリ。

そのエンジン作るのが難しいとい罠

27 :ひよこ名無しさん:02/08/21 12:38 ID:???
>>26
基本設計をしっかり組んどけばそう難しい話でもない
>>1みたいに根性とかいってると失敗する

28 :1:02/08/21 12:48 ID:Yl/dNaK4
俺根性でやるとか言ってないっすよ・・・

29 :1:02/08/21 12:51 ID:Yl/dNaK4
>>17
マ板「景気の良いハナシ専用スレ」
http://pc.2ch.net/test/read.cgi/prog/1024846598/222-

30 :名前は開発中のものです。:02/08/21 13:06 ID:???
      ☆
   λ  / :。
  < ゜-゜>ρ  ‥
σ(   )    ・` 。・ ; ’ 、∴ ゚ ,・・` 。・ : ’ ∵、‘。‥ ゚ ,・・` 。∴ 、’.
  υυ     、’                              ・゚
          ・      1って不思議!!                ‘.
         。:     作:ファンシー乙女                ;
            …                                `。
          ;   1って不思議!能も無いのにいばってばかり 。   ‘
         ∵                               ‘.
          ・   その自信は何を拠り所にしてるのかしら?   ,‘.
         `。                             。
         ‘.  1って不思議!苦し紛れに嘘ばかり。    ‘.
         。:                               ;
         …  その妄言の発想はどこから来るのかしら?    `。
         ` ;                                 ゚ ・
         ` ;  アイゴー、アイゴーと壊れたラジオのようね     :・
          ’。                               ‥
          ‘・∴ 。’∵ 、 ; 。…. ・ ” ,・` 。・ ; ’ 、∴ ・・ ゚、 ,` : ’


31 :名前は開発中のものです。:02/08/21 13:07 ID:???
あなたはまたこんな素晴らしいスレッド立ててしまいましたか。
本当にご苦労様です。
あなたのような尊敬される方のスレッドを拝めて私はとてもとても光栄です。
本当にあなたを尊敬しています。孫の代までこのことを伝えようとしています。
あなたが立てたスレッドを読むと心が晴ればれしてきて全身が洗われる思いでいっぱいです。
あなたのような素晴らしい方がなぜ園遊会に呼ばれないのか不思議で仕方がありません。
本当に本当にあなたを尊敬しています。
くれぐれもお体には気をつけて私たちを見守っていて下さい。
本当に素晴らしいスレッドを拝ませていただき誠にありがとうございました。


32 :名前は開発中のものです。:02/08/21 13:15 ID:???
MacにはPowerPlantっつーフレームワークがあるんだが、これのデータ(リソース)とコードの関連付けの仕組みがなかなか良く出来ている(リソースにカスタム型のデータを埋め込んで、コンストラクタでストリームから受け取るとかもアリ)。こういうのが参考になるんでない?

33 :名前は開発中のものです。:02/08/21 20:35 ID:???
エンジン作るにしても、考え出せばキリがないわな。
スクリプトでデータ駆動していても、突然プログラマブルな動作が入ったりするケースもある訳だから。
その都度根性出してたらやってらんないでしょう。

34 :名前は開発中のものです。:02/08/21 20:51 ID:bMH13fBg
スクリプトもプログラミング言語なんだから、結局そこで設計の議論が始まる。

35 :名前は開発中のものです。:02/08/21 20:53 ID:bMH13fBg
ゲームプログラミングが一番 OO が無いとやってられないと思うんだが、どうか。

36 :名前は開発中のものです。:02/08/21 21:26 ID:w2OYx+Qo
>>30>>31が必死で笑える

37 :名前は開発中のものです。:02/08/21 21:38 ID:???
                           | 君さぁ こんなスレッド立てるから
                           | 厨房って言われちゃうんだよ
  o .   o               o  \  _________
           o  。    o         V
o  o 。 .     。 o            ∧_∧
     o                ∧ ∧  (´∀` )
 。 。o          .     (゚ー゚*)  (    )
                      (,,  @  U ̄U
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                      ∧
                   / ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                   | おまえのことを必要としてる奴なんて
                   | いないんだからさっさと回線切って首吊れ

 o .    。  o     。 o
         o    .   .   。    o  o . .
 o .  。     。 o  。
   o    .   .   。      o . .
 ______ o    ______ 。    。
 |  /  \  |      |  /  \  |
~~~~~~~~~~~~~~~~~~~~~ハヤクシンデネ・・・・・~~~~~~~~~~~~

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


38 :名前は開発中のものです。:02/08/21 21:39 ID:???
探し物は何ですか

レスつかない駄スレですか

煽りの中も

コピペの中も

探したけれどもマジレス無いのに

まだまだageる気ですか

それより僕とROMりませんか

建てた>>1

建てた>>1

逝ってほしいと思いませんか

ヒヒヒ・・・


39 :名前は開発中のものです。:02/08/21 21:53 ID:???
OOは向かないって・・・向くだろ。
データ駆動がメインだから、アプリみたいに何でもかんでもコードで実現するわけにいかないと言いたいのか?

>>38お前さっきからキモイ

40 :名前は開発中のものです。:02/08/21 21:55 ID:???
OOを使わずにゲームを作ると、Donuts3Dみたいなコードになると思われ

41 :ツクラー:02/08/21 22:02 ID:???
ツクールとかデジタルロケのソースとかあればな・・・

42 :名前は開発中のものです。:02/08/21 22:05 ID:???
>>40
Donuts3Dはサンプルとしてはかなり糞。Cでベタ書きするにしても、もっと見やすく書ける。
これ見て勉強しろってんだから腐ってるよな

43 :名前は開発中のものです。:02/08/21 22:28 ID:???
>>39
( ´,_ゝ`)プッ コピペにマジレスかましているのですか?いいセンスしてますね…

44 :名前は開発中のものです。:02/08/21 22:57 ID:???
どうでもいい話だけど、
コピペにマジレス云々というのは、
コピペであることに気付かずにマジに受け取ってしまう方のことを
指してるんじゃないの…?

その言葉は荒らしの免罪符じゃないと思うよ。

45 :名前は開発中のものです。:02/08/21 23:59 ID:???
??
>>44の言ってる意味がイマイチわからん43=煽り全員と言いたいのか??

ちなみにこの板に居住する煽り屋は一人だけじゃないぞ

46 :21:02/08/22 00:17 ID:???
リアルタイム描画のパーティクルを見て
「カッコイイ!」「キレイ!」
って本当に思っている人、お前らの中にいますか?

漏れには、オナニープログラマの精液が
飛び散ってるようにしか見えないのですが。

いやいやマジで。


47 :名前は開発中のものです。:02/08/22 01:41 ID:???
最近のFlashばっかのwebページは
webデザイナのオナニーにしか見えない。

そのレベルの話?

48 :名前は開発中のものです。:02/08/22 09:48 ID:???
>>42
DirectXのサンプルはこれでもかといわんばかりにクソなソースだよな。
何かを意図して多しているとしか思えない。


49 :名前は開発中のものです。:02/08/22 09:49 ID:???
>>46
今時、パーティクルぐらいでオナニーと思われたくありません……
やっぱ、あれですか。3Dエンジン自作しても同じこと言われますか

50 :名前は開発中のものです。:02/08/22 11:02 ID:???
public class Geimu {
 public static void main(String[] args) {
  Hontai h = new Hontai();

  h.initialize();
  h.start();
  h.finalize();
 }
}

クラスHontaiは各人の実装にまかせる。

51 :名前は開発中のものです。:02/08/22 11:34 ID:???
3Dエンジン自作はさすがにオナニーだと思う・・・パーティクルは許そう

52 :名前は開発中のものです。:02/08/22 11:48 ID:???
class Hentai{
 void initialize(){
  printf( ">>50サン..." );
 }
 void start(){
  printf( "ハァハァ." );
 }
 void finalize(){
  printf( "ウッ!" );
 }
}


53 :名前は開発中のものです。:02/08/22 12:03 ID:???

>> 52
Geimu.java:3: シンボルを解釈処理できません。
シンボル: クラス Hontai
位置 : Geimu の クラス
  Hontai h = new Hontai();

Geimu.java:3: シンボルを解釈処理できません。
シンボル: クラス Hontai
位置 : Geimu の クラス
  Hontai h = new Hontai();

Geimu.java:13: シンボルを解釈処理できません。
シンボル: メソッド printf (java.lang.String)
位置 : Hentai の クラス
  printf( ">>50サン..." );

Geimu.java:16: シンボルを解釈処理できません。
シンボル: メソッド printf (java.lang.String)
位置 : Hentai の クラス
  printf( "ハァハァ." );

Geimu.java:18: Hentai の finalize() は java.lang.Object の finalize() をオーバーライドできません。スーパークラスでの定義より弱いアクセス特権 (protected) を割り当てようとしました。
 void finalize(){

Geimu.java:19: シンボルを解釈処理できません。
シンボル: メソッド printf (java.lang.String)
位置 : Hentai の クラス
  printf( "ウッ!" );

エラー 6 個


54 :52:02/08/22 13:11 ID:???
やっぱりコンパイラ通さないとダメですか?

55 :53:02/08/22 13:46 ID:???
>>54
いいんじゃない?漏れは暇だったからコンパイラ通しただけ。

56 :21:02/08/22 23:47 ID:???
>>46 を誤解した奴が多そうなので言い方を変えます。

漏れには、酔っ払いのゲロにしか見えません、と。
お前ら、汚いモン客の目にさらすんじゃありませんよ、と。

これで伝わりますか?


57 :名前は開発中のものです。:02/08/23 02:18 ID:uJ41gNJv
つかなぁ、今時のパテクルなんかエミッタパラメータ弄るだけでほとんど
が実現出来るように作るのがフツーだからなぁ。プログラマのナニオーとも
言い切れんよ。

 あとね、ゲームにOOが向かないというのは、ゲームシステムのとある局所的
な1部分に置いて。それがどこを指すのかは失敗から学ぶ事なのでここでは書かない。
OO信者はメインプログラマ経験の無い万年下っ端PGに多いのよねぇ。

58 :名前は開発中のものです。:02/08/23 07:10 ID:???
>>57
知らないくせに。いいから教えてください。

59 :名前は開発中のものです。:02/08/23 07:14 ID:???
>>52
実装するのはHontaiでHentaiじゃねーよ(w

>>57
オレはどっちかというと信者よりだけど(だから?)、
はっきりどういう点が向かないかいってもらわないと
「設計が悪い」とか「自分の能力のなさをOOのせいにしている」としか思えないよ。
「言語仕様(環境)上OOで実現しにくい」ならまだわからんでもないが。

60 :名前は開発中のものです。:02/08/23 07:57 ID:???
>>57
今日はよく釣れますか?

61 :名前は開発中のものです。:02/08/23 10:00 ID:???
企画「仕様変更したから。細かいところは上手くやってよ」
  ↓
メインプログラマ「・・・(こんなん想定してねーよ!)」
  ↓
リファクタリング
  ↓
OO信者万年下っ端PG「・・・(糞上司め余計な仕事させやがって。
おまえの設計がわりーんだよ)」


メインプログラマやればこの流れにうんざりするほど直面する。

62 :名前は開発中のものです。:02/08/23 10:32 ID:???
それは下っ端もうんざりしてる

63 :名前は開発中のものです。:02/08/23 10:35 ID:???
>>61
それはOOが向かないというか、それに対応できる開発手法は存在しないと思われ。

64 :名前は開発中のものです。:02/08/23 12:46 ID:AE0sbOgu
コミュニケーションの問題だ

65 :名前は開発中のものです。:02/08/23 12:51 ID:???
企画「仕様変更したから。細かいところは上手くやってよ」
  ↓
OO知らないメインプログラマ「・・・(こんなん想定してねーよ!)」
  ↓
ウォーターフォールモデル1から作り直し
  ↓
OO信者新人PG「・・・(糞上司め余計な仕事させやがって。
おまえの設計がわりーんだよ)」


メインプログラマが馬鹿だとこの流れにうんざりするほど直面する。

66 :名前は開発中のものです。:02/08/23 12:55 ID:???
OO信者とかいう問題じゃなくて、もうOO使うのは常識と思われ。
信者がどうこう言うてるヤシは、「この電子メール信者め!郵便ハガキの方が確実に決まってるだろ!」みたいなレベル

67 :名前は開発中のものです。:02/08/23 15:45 ID:???
>>57
局所的な1部分のためだけにOO使わないのはどうかと思うぞ。
OOがダメならそこだけベタで書いてラッパリングすりゃいいじゃん

68 :名前は開発中のものです。:02/08/23 19:33 ID:???
>>67
>>57読んだが、OO使わんって言ってる?

69 :名前は開発中のものです。:02/08/23 21:02 ID:???
>>68
OOが向かないって言ってるジャン
ラッパリングはOOのテクニックでそ?

70 :名前は開発中のものです。:02/08/23 21:44 ID:???
剥かない != 使わない

71 :名前は開発中のものです。:02/08/24 00:40 ID:???
ゲームって一本作ったらそれでおしまいだし
プロジェクト変わるとコードの再利用できるかどうかあやしいし

OO的開発手法のひとつとして、コードの再利用によるライブラリ群の
発展的な構築というのがあると思うんだけど、現状のゲーム開発では
政治的な理由でこれ(継続による組織としてのコード資産の蓄積)が
できないことがあるんだそうだ。アホくさ。

某大手が以前そうだったっつう話を聞いた。
もしかしたら今でもそうかも。

72 :名前は開発中のものです。:02/08/24 00:56 ID:???
>>69 はラップしたら中身まで OO に変わると思っているみたいね

>>71
「政治的な理由」を具体的に述べよ
もちろん問題の起こらない範囲で


73 :名前は開発中のものです。:02/08/24 03:48 ID:???
>>72
少なくとも外から見たらオブジェクトだけどね。
そういうのも含めて「オブジェクト指向プログラミング」と言っていいんじゃないの。
少なくともOOのテクの一つっていうのは当たってるんだし

74 :名前は開発中のものです。:02/08/24 04:07 ID:???
どっちにしても、「局所的な1部分が向かない」のなら、大半は向いてるわけだ

75 :名前は開発中のものです。:02/08/24 07:34 ID:???
>>71
再利用もOOに限った話じゃ無いしね。
単一プロジェクト内でもOOの恩恵は十分に受けられると思うよ。

しかしライブラリを持たない会社? 信じられんな。

76 :名前は開発中のものです。:02/08/24 10:44 ID:???
>>75
単一プロジェクトでの効果を否定するわけじゃないけど、
そのためにはメンバがある程度習熟しているという前提があると思うよ

数プロジェクトに跨ってヒトやモノ(コード)が引き継がれて
初めて実りあるものになると思うんだが...

ゲーム屋の実態はどうなんだろうね

77 :名前は開発中のものです。:02/08/24 12:11 ID:???
>>73
使う分にはもちろんOOってことでいい。
でも、作る分にはOOじゃない。

この程度の場合分けぐらいは頭の中でできるようにしないと
IBM が Linux 採用 → IBM が自社 OS を捨てた
なんて言い出す犬厨みたいなバカになるから気をつけよう。

>>76
ドキュメントもろくに無ければ
作った本人がまともに説明することも嫌がるような
そんなライブラリなら、ないのと同じなんだよね。

むしろ、そんなコンディションのものを会社が強制的に
使えと押し付けてきたら、逃げるよ俺は。
というか、もう2度と嫌です、そんなことは。

もちろん、まともなライブラリなら喜んで使いますとも。


78 :名前は開発中のものです。:02/08/24 12:43 ID:???
>>74
手法なんだから、向いてるところを使えばいいだけの話なんだよね。

むしろ使うことによるプラスとマイナスの面を(短期・長期の視点から)
きちんと調べないのがまずい。つうかそれをしないなら、
どんなものを導入したとしても、たまたまうまく行くかもしれんが、
つまんないことでヘタったりする。

どっちにしろメンバの教育は必要なんだけどね。

79 :名前は開発中のものです。:02/08/24 13:04 ID:7rRvLwBi
FFXを作るにはどんなスクリプターを作ればいいと思いますか。
詳細は抜きにして、まずは大まかな構造から・・・

ミニゲームとかはスクリプターで直接サポートしないで、ミニゲームプログラムへ切り口を作れればいいんじゃないでしょうか。

80 :名前は開発中のものです。:02/08/24 14:16 ID:8uff/A51
>>79

まずスクリプトという考え方を捨てたほうがいいと思う。
最低限 OOP するための最低限の機能をスクリプトに盛り込まなきゃいけないし、
そんなメンドクサイすることするくらいなら、最初からやらないほうがいい。

個別にコードで組むべきところと、データ構造とコードとの連携してゲームシーンを
作るところで、しっかりわけてやるほうがいい。

81 :名前は開発中のものです。:02/08/26 07:42 ID:???
あげ

82 :名前は開発中のものです。:02/08/26 09:26 ID:BHdh/Ez5
てめぇらみたいなガキはどせヒマだろ?だったらこっちゃ来い (

夢を見ている人たち
夢を見れない人たち
夢破れた人たち
夢を叶えた人たち
夢を追いかけてる人たち
夢を諦めた人たち
そして
全ての馬鹿たちに送ります

『一炊の夢』

http://www.geocities.co.jp/Hollywood-Screen/9038/


83 :名前は開発中のものです。:02/08/26 10:03 ID:???
質問ー。
クラス間のデータのやりとりを抽象化。とかっていうの、
実装してる?


84 :名前は開発中のものです。:02/08/26 12:07 ID:???
>>83
やってますぇ〜ん
実装するとしたらどういうのが良い?メッセージID+void*でいいのかな

85 :名前は開発中のものです。:02/08/27 03:00 ID:???
政治的な理由ってプログラム構造の特許のことか?
辞めたプログラマからサブマリンで数年後に
ガツンと金を要求されるのは確かに嫌だが。

86 :名前は開発中のものです。:02/08/27 07:17 ID:???
>>85
(゚д゚)ポカーン
キミハ ムリニ キノキイタコトヲ イオウトシナイ ホウガヨカロウ

87 :名前は開発中のものです。:02/08/28 03:37 ID:???
スマソ、よく読んでなかった

88 :名前は開発中のものです。:02/08/28 11:11 ID:???
>>83
データ受け渡し用のインターフェースを作る・・・ってことかな?
今のところ必要を感じてないので実装してないけど。

89 :名前は開発中のものです。:02/08/29 01:05 ID:ELZo9j76
>>88
普通のアプリ作るなら必須だけど、ゲームなら時と場合によるかもね
複数のキャラにファイルから読んだデータを送って挙動を変えさせたい時(データをを受けてどういう振る舞いをするかはキャラによって変わる)とかに有用なのかな??
ああ、ようわからん

90 :名前は開発中のものです。:02/08/29 09:38 ID:???
データのやりとりは高度に抽象化する必要ってないんじゃない?
オブジェクト間のデータ受け渡しってかなり状況を限定できると思うんだけど。

91 :名前は開発中のものです。:02/08/29 10:33 ID:???
>>90
だから、>>89が言うみたいにあらかじめメソッドの名前を特定できない場合に有効ね

92 :hn:02/08/30 12:22 ID:zk4n+vjF
>>91

というよりも、メソッド名は同じでも実行内容は違うっていうものが見つかれば、
それは大抵、抽象クラスにしとくといい設計になるわけことが多いんで、
そういうものを沢山見つけてやろうくらいの気概を持って作るといいんじゃないか。



93 :通りすがりのマカー:02/08/30 21:15 ID:p5U/xNkX
>>92
Macの話ですまないが、PPというフレームワークにはデータ(リソース)からオブジェクトを自動生成する機構がある。仮に自動生成する元になるデータファイルはこんな感じだとする。
"window"
rect 20 20 150 100

これを読んだ自動生成機構は、"window"のキーワードから対応表を参照し、CWindowを作成するべきなのだなと判断する。
そしてCWindowを作成する際、コンストラクタに次の行のバイナリデータを渡す。
CWindowは、どういうデータが渡されるのか分かっているので、バイナリデータを解析してRECT型に置き換え、自分の大きさを決定する。ここまではいいね。

じゃあ次に、こういうデータがあったとする

"colorwindow"
rect 20 20 150 100
number 255
number 0
number 0

自動生成機構は"colorwindow"を見て、CColorWindow(CWindowの派生)を作成する。
まずCWindowが前回と同じ要領でコンストラクトされ、残りのデータをCColorWindowのコンストラクタが受け取る。CWindowは、下の三行の意味がわからないが、CColorWindowは色のデータが含まれているという事を知っているので、RGB値に置き換えて、自分の色を決定する。
「オブジェクト間のデータ受け渡し」とはちょっと違うけど、データを抽象的に扱うと、こういう事ができるようになるわけよ。

94 :名前は開発中のものです。:02/08/30 21:57 ID:???
それって至って普通なんでは...

95 :名前は開発中のものです。:02/08/30 22:56 ID:???
俺初めて見た。MFCにはこういうの無いね

96 :名前は開発中のものです。:02/08/30 23:03 ID:pTqhazaW
マリオとルイージがAボタン押したらジャンプするけど、軌道のアルゴリズムは違うなら
マリオクラスとルイージクラスの doJump メソッドを書き換えればよい。

そうすれば if 文でマリオとルイージとを分岐する必要は無いし、プラグイン的に(中枢の
プログラムを触らずとも)ドンキーコングも追加することができる。


または、

interface JumpOrbit {
..public void jump( int frame)
}

というのを作って

mario.setJumpOrbit( otherJumpOrbitObject);

とすれば、ゲーム中に動的に、なおかつシンプルにジャンプの軌道を変えることができる。

97 :名前は開発中のものです。:02/08/30 23:12 ID:tEVWe3gn
★超オススメサイト★

ここをクリック!!!
↓↓

http://www.bea.hi-ho.ne.jp/paisen/

98 :名前は開発中のものです。:02/08/30 23:22 ID:+RvF1NfM
>>96
例として簡単なものを挙げたと思うが、
その程度ならキャラクタの挙動を表す構造体でも用意しておいて、
その中の変数の値を変化させればよいだけでは?
ファイルを用意すれば、プラグイン的に(まったくプログラムを触らずとも)
ドンキーコングも追加することができるでしょ。

クラスとして扱うなら、根本的にシステムが変わってしまうレベルでないと
逆に複雑になると思う。たとえば・・・
長靴を履いたマリオとかえるになったマリオの変化とか。

99 :名前は開発中のものです。:02/08/30 23:37 ID:???
>>93
へえ〜〜〜 いいねそれ
シューティングゲームの敵キャラ生成のアルゴリズムに使えそう。

100 :名前は開発中のものです。:02/08/30 23:41 ID:???
 んー>>96っていわゆるストラテジパターンだよ。何のことは無い、教科書に
のっているような基本事項。
 アセンブリ時代にもジャンプテーブルとかで実現している非常に古く
て古典的なテクだとおもうよ。

 

101 :名前は開発中のものです。:02/08/30 23:41 ID:???
タスクシステムってマンマそれだと思うんだが・・・
俺が勘違いしてるだけか?

102 :101:02/08/30 23:42 ID:???
あ、>>99

103 :名前は開発中のものです。:02/08/30 23:44 ID:???
>>96
それじゃ全然普通じゃん。
ゲームでそれやると、爆発的にコードが太っていくから却下

104 :名前は開発中のものです。:02/08/30 23:48 ID:???
ストラテジパターンってそんなんだっけ?

105 :名前は開発中のものです。:02/08/30 23:50 ID:???
つうか96の方向に拘るならファクトリでさらに抽象化して変更時弄る場所を
もっと減らすべきな気が。

106 :通りすがりのマカー:02/08/31 00:01 ID:mnYq8u4Y
>>101
俺がさっき書いたのは、初期化データを抽象的に扱う事で、派生クラスを新しく作る時に生成元のデータをダイナミックに変更できるって話。>>1が言う「データ型に制限されてしまう」というのを回避するテクニックね。
なんていうパターンかは知らん。

>>104
ストラテジパターンはアルゴリズムをカプセル化する方法。
身近な例では、CListクラスの派生を書かずにソートするアルゴリズムを動的に変更出来るようにしたい時などに使うと吉。

107 :名前は開発中のものです。:02/08/31 00:10 ID:???
ほほう。

108 :名前は開発中のものです。:02/08/31 07:31 ID:???
>>93
その辺を強力にしたのが、Delphiの 2 way tools ですな。
時には、GUIでコンポーネントを配置したり、それをテキスト形式に変換して直接編集したりできる。

109 :名前は開発中のものです。:02/08/31 10:27 ID:???
マイノリティが自慢するスレだったのか

110 :名前は開発中のものです。:02/08/31 12:36 ID:???
ゲーム作るならCでOO風味プログラミング、これ最強。

111 :通りすがりのマカー:02/08/31 14:05 ID:mnYq8u4Y
>>108
さっきは分かりやすいようにテキストデータみたいに説明したけど、実はこれはリソースエディタ使ってマウスで設定出来る。アイテムのプロパティを設定するダイアログに「NUMBERデータを追加」「Stringを追加」みたな事が可能。
ゲームで使うなら、ビットマップやサウンドを埋め込めるようにしたりしてもいいんでないだろうか
どっちにしてもデータ駆動メインのゲームなら、こういうリソースエディタを作ると便利だぞと

112 :名前は開発中のものです。:02/08/31 14:49 ID:???
データ駆動にするのって当たり前のような・・・
なぜいまさら・・・

113 :hn:02/08/31 15:28 ID:88SQFu/l
>>112

データ取り出すってのも、ポリモーフィズムと言えなくもないかもしれない。
データを取り出す、というのは同じだけど、帰ってくるデータは違うわけだ。


データだけでなく振る舞いもそれできたら便利だし、
その呼び出し方を変数に格納できると楽だ。

(OO の技術的な利点の肝はポリモーフィズムのみといってもいいくらい。カプセル化とかはオマケみたいなものだな)

114 :名前は開発中のものです。:02/08/31 18:41 ID:???
>>113
オマケというよりはOO以前からある概念だから
もはや前提みたいなものかと

115 :名前は開発中のものです。:02/08/31 20:12 ID:???
>>46
パーティクルってなんですか?

116 :名前は開発中のものです。:02/08/31 22:52 ID:???
そういう意味じゃポリモーフィズムもOO以前からある概念

117 :名前は開発中のものです。:02/08/31 23:19 ID:???
>>115
髪の毛つやつや

118 :名前は開発中のものです。:02/08/31 23:33 ID:???
そりゃキューティクルでんがな

119 :名前は開発中のものです。:02/09/01 00:34 ID:???
Σ(´д`;)

120 :名前は開発中のものです。:02/09/01 00:48 ID:???
>>112
よく読めよ

121 :名前は開発中のものです。:02/09/01 02:53 ID:???
>>111
>こういうリソースエディタ
Delphiそのまんまのような気が

122 :名前は開発中のものです。:02/09/01 11:47 ID:???
Del厨は帰れ

123 :名前は開発中のものです。:02/09/02 00:30 ID:???
そもそもゲームシステムっつったら、
ゲーム内容に関する用語だろ。

こんなスレタイつける時点でマジ終了。

124 :名前は開発中のものです。:02/09/02 00:35 ID:???
そう思う奴は来なくてよろしい。

125 :名前は開発中のものです。:02/09/02 01:07 ID:???
そんな冷たいこと言うなや。


126 :名前は開発中のものです。:02/09/02 06:00 ID:???
関西人とDel厨は帰れ

127 :名前は開発中のものです。:02/09/02 22:46 ID:???
ageとこう

128 :名前は開発中のものです。:02/09/03 02:36 ID:???
で、大規模とは何が大規模なんだ?


129 :名前は開発中のものです。:02/09/03 07:22 ID:rTGEm+QE
あのな、いい事教えてやる。
システム組んでスクリプトに当たる部分はLISP使え。
実装も楽だし。開発効率が3倍は違う。
解らん奴には解らんだろうが。


130 :名前は開発中のものです。:02/09/03 10:10 ID:???
そらええ事聞いた

131 :名前は開発中のものです。:02/09/03 10:30 ID:???
スクリプトにLISPなんて使ったらスクリプタがとんずらするぜ

132 :名前は開発中のものです。:02/09/03 10:32 ID:???
LISP使いは1000人に1人しかいない優秀な種族です

133 :名前は開発中のものです。:02/09/04 01:21 ID:???
かーかっここんすかっこかーかっこくだーかっこえっくすこっかこっかこっかこっかこっか

134 :名前は開発中のものです。:02/09/04 03:21 ID:???
ジャック&ダグスタはLISPベースのインハウススクリプト
を使って開発したんだが、正に諸刃の剣になってたぞ。

135 :名前は開発中のものです。:02/09/04 03:40 ID:???
プログラマの手が足りないから、まだ素人でもなんとかなる
スクリプトを使う、という場合もある。
LISP なんか使ったら、これができなくなる。


136 :83:02/09/04 04:05 ID:oIlJt/Uu
>>101
自分も、タスクシステムに使う目的で質問しました。
Commandパターンてのになるのかな?
クラス(親タスク、子供等)間のメッセージ(データ)のやり取りで
何クラスから来たとかいう情報(依存関係)をなくしたいな。と。


137 :名前は開発中のものです。:02/09/04 05:13 ID:???
>>136
 compositeパターンのがそれっぽいかな?ゲームタスクってデザパタ
の総合芸術みたいなところもあるからねー。

138 :名前は開発中のものです。:02/09/04 05:48 ID:???
>クラス(親タスク、子供等)間のメッセージ(データ)のやり取りで
>何クラスから来たとかいう情報(依存関係)をなくしたいな。と。
自分が使っているタスクシステムというかオブジェシステムには
「どのクラスからの通知か?」という情報は特にシステム側で持っ
てなかったりする。本当にそれが必要なら、後続のパラメータスキーマで
「どこから来たか?」をアプリ的に定義している。

けど、このアプリ的定義も禁じ手と痛感せざるをえない、
効率悪い具体的な場面に何度も出くわした。


139 :名前は開発中のものです。:02/09/05 02:58 ID:???
作り手が十分注意深い人だけのチームなら void * でもいける。

言語や処理系のお世話にならないとバグだらけになる人には
お勧めできない諸刃の剣。


140 :名前は開発中のものです。:02/09/05 08:28 ID:???
>>139
そんな人でも大丈夫なように、と型安全にしようとして、
インターフェースクラスを使ったら、使い方をわかってもらえなかったり・・・。

141 :名前は開発中のものです。:02/09/06 03:27 ID:???
>作り手が十分注意深い人だけのチームなら void * でもいける。
むー。確かに void* でいけないこともないが、
人間の注意力には限界あるよ。


142 :名前は開発中のものです。:02/09/06 10:18 ID:???
べつにイインジャネーノvoid*で。
アプリ用のフレームワークでもvoid*多いぜ

143 :名前は開発中のものです。:02/09/06 23:21 ID:???
GTKは少しだけマシだと思った。
まあ共通のベースクラスがあるし単一継承だからその分簡単なんだろうけど。

144 :名前は開発中のものです。:02/09/07 00:29 ID:/BnxrVLK
>>133
かっこが足りないYO!
かっこ悪!

145 :名前は開発中のものです。:02/09/07 00:31 ID:???
GTKなんぞさっぱりわからん

146 :名前は開発中のものです。:02/09/07 02:05 ID:???
G(グレート)
T(ティーチャー)
K(キンタマ)


147 :名前は開発中のものです。:02/09/08 01:09 ID:0sK6GzId
G(ごっつい)
T(ちんこ)
K(かゆい)

148 :名前は開発中のものです。:02/09/08 10:35 ID:???
>>138
>けど、このアプリ的定義も禁じ手と痛感せざるをえない、
>効率悪い具体的な場面に何度も出くわした。

後学のために具体例キボンヌ
内部向けインターフェースと外部向けインターフェースを分けてないとか
そういう感じ?

149 :名前は開発中のものです。:02/09/08 11:51 ID:???
メッセージがどこから送られたかをアプリ側で判断するのは
好ましくないだろう。折角多態性で減らしたswitch文の爆発
を復活させることになる。メッセージを受け取ったオブジェク
トがもう一度メッセージを送り返す、いわゆるダブルディスパ
ッチが定石なんだろうが、GOFの実装(Visitorね)ははっきり言
って保守や理解がし易いものとは到底言えないし、もっと動的
な振る舞いをさせようとしてstrategyなんかを組み合わせると
もう何がなんだか分からなくなってきたりする。で、漏れ的結
論はSMC/yacc/lecのような状態遷移の管理を補助してくれるツ
ールを使わずにこの問題に立ち向かってはいけないってこと。

150 :名前は開発中のものです。:02/09/09 01:18 ID:???
>>149
どこを縦読みするんですか?

151 :名前は開発中のものです。:02/09/12 20:57 ID:???
さあもっと語ろう

152 :名前は開発中のものです。:02/09/12 23:42 ID:???
あっ、意外なところで役に立つヒントが。
でもたぶん私以外の人にはあんまり役に立たないと思うけど…。
ありがと。>>149

ただしyaccがゲーム(ていうかゲーム用のスクリプト解釈)に
使えるかどうかは経験上疑問符つきで伺っておきます。

153 :名前は開発中のものです。:02/09/14 05:25 ID:???
>>152
無理に盛り上げようとしなくていいよ。
中途半端だよ。


154 :名前は開発中のものです。:02/09/14 20:43 ID:???
UMLは素晴らしい

155 :名前は開発中のものです。:02/09/14 20:43 ID:???
げっageちまった 死のう

156 :152:02/09/14 21:19 ID:???
>>153
ちょっとお礼を書いときたかっただけだし、
別に盛り上げるつもりも無いです。
でもつまらない嫌味を言われるくらいなら
これからは黙って搾取するから別にいいです。

157 :名前は開発中のものです。:02/09/15 02:01 ID:???
>>156
2度と出てくるな。
一生ひきこもってろ。


158 :名前は開発中のものです。:02/09/15 05:04 ID:???
悪循環の縮図だw

159 :名前は開発中のものです。:02/09/15 05:26 ID:???
>>154
お前、UMLって言いたいだけちゃうんかと。


160 :名前は開発中のものです。:02/09/15 16:56 ID:???
>>159
よくシラネ−よ、まだ勉強したばっかりなんだから。実践で使ったこと無い。
つーか、俺は>>1だチクショウ文句あるか掛かって来い

161 :名前は開発中のものです。:02/09/17 00:11 ID:???
1登場age

162 :名前は開発中のものです。:02/09/17 00:51 ID:???
ゲームを真剣に抽象化するなら複雑になるからねぇ・・・
趣味で作るにしてもUMLは必須かもね

163 :名前は開発中のものです。:02/09/17 01:03 ID:???
そうかあ?
まあ、自分の考えをまとめたものを人に見せられる
という点ではいいけど、それ以上の価値はあまり
感じないかな。

本当に複雑だと、UMLで書いても複雑だよ。


164 :名前は開発中のものです。:02/09/17 12:29 ID:???
>>163

そりゃそうだ。
UML でクラス図書くときは、どんなに多くても、書くクラスは 6 コ までにするのがいいと思う。

そうでないと、多分誰にも伝わらない。(UML書く意味が無い)

165 :名前は開発中のものです。:02/09/17 18:55 ID:???
でも脳内だけで設計してると忘れてくる
特にUMLである必要はないけど、絵に描いてまとめるのは必要かと

166 :名前は開発中のものです。:02/10/05 21:12 ID:???
あげ

167 :名前は開発中のものです。:02/10/05 22:54 ID:FDAKhUJP
はげ

168 :1:02/10/06 05:23 ID:???
やっぱUML良いわ。慣れると今までよく脳内だけで処理してたなと思う(できてなかったんだろうが・・・)。
みんなも使おう。イラネーとか言う香具師はその代替案求む。

169 :名前は開発中のものです。:02/10/06 14:27 ID:???
イラネーヨ

170 :名前は開発中のものです。:02/10/09 16:34 ID:???
代替案求む。


171 :名前は開発中のものです。:02/10/19 03:40 ID:???
たまにはageさせてくれてもいいんじゃないだろうか

172 :名前は開発中のものです。:02/10/19 04:54 ID:???
>>168 UMLたしかに便利だね〜。
でも、UMLのエディタがまだいまいち整備されきってない感じがするYO。
ワープロや表計算ほど需要がないから整備が遅れるのもしょうがないけど。
もーちょいだよね。

173 :名前は開発中のものです。:02/10/19 05:08 ID:???
  │  .┌┐
  │ ./ /
   |/ / i
   |  i ●i
   |●i  |
   |  i  i──────────
  /\_ヽ_,ゝ∧∧
/       ( ゚Д゚) ∬ <そんなバナナやる気も失せたよ 終了するぞゴルァ
        /  ⊃旦
        (__)
                     ∈このスレは終了いたしました∋


174 :名前は開発中のものです。:02/10/19 12:48 ID:???
>>172
SWINGで書かれたような奴ってべらぼうに高いから、洩れはとりあえずVISIO使ってるよ。
VISIOでもエラー表示してくれたりするから、(一人で使うなら)それなりに良い感じ

175 :名前は開発中のものです。:02/10/20 07:04 ID:???
DynamicDraw使ってるけど、今一操作法が独自……

176 :名前は開発中のものです。:02/10/20 20:03 ID:???
いや、慣れるとめっさ便利だぞ。
とりあえずショートカット
・S,Z : パーツ配置
・T,V : 多角線(矢印付き)
・T,W : テキスト編集
と、「部品間リンク」の概念おぼえれ。

部品間リンクは面倒だったら、リンク編集ツール(T,G)で
選択した時に現れる点線を全部消しとけ。


177 :名前は開発中のものです。:02/10/21 06:12 ID:???
なんつーか、メニューのアクセラレータを利用した
2ストローク以上のショートカットに慣れられない。
# emacs系とか駄目
普通のショートカットみたいに、
Ctrl+?とかCtrl+Shift+?に、機能を割り当てられればいいのに…。

178 :名前は開発中のものです。:02/10/21 21:10 ID:???
どうしても嫌だったら dyna_104.keytxt の中身を替えれば良いかと。
でも Ctrl+? って集中して使ってると指がつりそう…

179 :名前は開発中のものです。:02/10/22 00:51 ID:???
Ctrlキーは小指の付け根で押すモンだ。
指の腹で押しやすいようにキートップが丸くなっとるだろ。

180 :名前は開発中のものです。:02/10/22 06:17 ID:???
↑バカ?

181 :あぼーん:あぼーん
あぼーん

182 :名前は開発中のものです。:02/10/22 07:43 ID:???
CtrlはCapsを入れ替えて使ってるので、大丈夫

183 :名前は開発中のものです。:02/10/22 10:25 ID:???
ほな、どの指でctrlキー押すねん

184 :名前は開発中のものです。:02/10/22 18:41 ID:???
付け根で押すのか?

185 :名前は開発中のものです。:02/10/23 19:47 ID:???
>>182
ワークステーションのキーボードのキー配置がそれだった気がする。

186 :名前は開発中のものです。:02/10/24 10:52 ID:???
俺はPC-98の配置に慣れてただけだけどな。

187 :ぐち:02/11/04 20:55 ID:???
抽象化=デフォルメ=モデル化も重要だけど、
リアルにできるところはしないと、と思いつつ技術がついていかない。

188 :あぼーん:あぼーん
あぼーん

189 :名前は開発中のものです。:02/11/05 19:07 ID:???
>>187 意味が良く分からない

190 :名前は開発中のものです。:02/11/05 23:43 ID:???
ある程度熟成した分野のゲームは、ISOとかJISとかの企画として抽象化されないのかな?



ってのはネタだけど、異種ゲーム間の通信、連携プロトコルとかあってもいいような気がする。
具体的な例が思いつかんけど…。

191 :名前は開発中のものです。:02/11/06 17:33 ID:???
TCP/IPじゃ不満なのか

192 :名前は開発中のものです。:02/11/06 21:49 ID:???
>>190
ISO、JIS規格になるわけないじゃん。
抽象化と統一化をごっちゃにしてないか。

193 :名前は開発中のものです。:02/11/21 01:45 ID:EtSSeavc
ゲームに限らず、でかいアプリの構造を図式化する時どうやってます?
フレームワークの開発者とかどうやってんだろ

194 :名前は開発中のものです。:02/11/21 01:50 ID:V1N3cfJr
それはム板の領分かも。UMLとか使うんでない?
でも、ゲームのプログラムは基本的にかなり小規模な部類だと思うけど。

195 :あぼーん:あぼーん
あぼーん

196 :名前は開発中のものです。:02/11/21 01:59 ID:zxq+ZNCe
まずはスプライトをキー操作する程度の小さなプログラムの設計・製作から始めて、
リファクタリングを重ねて大きくして逝く。

197 :名前は開発中のものです。:02/11/21 10:54 ID:yJwnRCyx
どうしても構造化して表記することになるであろう。見通しは悪くなるが。
これさえ見ればバッチリ一目瞭然、てな図はあり得ないような気がする。

198 :あぼーん:あぼーん
あぼーん

199 :名前は開発中のものです。:02/12/04 00:29 ID:24rhn+QS
>>194
FF11とかは十分大規模だと思うが・・・・

200 :名前は開発中のものです。:02/12/04 01:10 ID:kByrvaPB
       /   /ー-,    ー────-,
      / / /ヽ、/        __/
      `y'    /ヽ、       |
      ∠_、 /   ヽ         |
       |    `ヽ、         |
     ,/ | ヽ              |
       |    `ヽ、        、|


50 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)