[過去ログ]
ゲームにおけるデータ構造・クラス設計・パターン2 (627レス)
ゲームにおけるデータ構造・クラス設計・パターン2 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: 名前は開発中のものです。 [] 2008/05/23(金) 21:10:59 ID:8M1gqhPX 具体的なゲーム名を挙げて、 どのようにクラス設計をすればよいか、 継承・委譲関係はどのようにすればよいか、 使えそうなパターンは何かなど語るのもよし。 自作ゲームの内容とクラス図を書いて 改善案を聞くもよし。 設計に関して困ったことを質問するもよし。 関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。 大いに語れ。 前スレ http://pc11.2ch.net/test/read.cgi/gamedev/1155209226/ テンプレ追加事項あったらよろすく http://mevius.5ch.net/test/re
ad.cgi/gamedev/1211544659/1
547: 名前は開発中のものです。 [sage] 2009/10/16(金) 20:07:25 ID:eJ9LLkd5 アクセッサ経由だとバグっぽい動きも引っ掛けやすいが、 そうでないと大変そうだな。デバッグ一件で1時間とか悩みたくないし。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/547
548: 名前は開発中のものです。 [sage] 2009/10/18(日) 12:51:59 ID:Yr/zm5ey >546 確かに使い方を間違えるってのはよく起こる http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/548
549: 名前は開発中のものです。 [sage] 2009/10/25(日) 23:29:18 ID:tIk7fQwv Compositeをゲームのシーン管理に使うのってどうやるんですか? 次に来るシーンを各クラスに設定しておいたりとか・・? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/549
550: 名前は開発中のものです。 [sage] 2009/10/25(日) 23:57:46 ID:6R6DoQXi 何を聞いてるかがちょいと分からないけど Gems5巻にいいのが載ってたと思うよ。 とりあえず Google [スタックベースのシーン管理 gems]。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/550
551: 名前は開発中のものです。 [sage] 2009/10/26(月) 00:08:52 ID:PLlfj58P というか前スレの260あたりか。Compositeかどうかも微妙だな。スマソ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/551
552: 名前は開発中のものです。 [sage] 2009/11/16(月) 14:29:49 ID:FF5xAAX0 >>501 その後どうなった? 俺も今描画周りを考えてる http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/552
553: 名前は開発中のものです。 [sage] 2009/12/13(日) 15:40:07 ID:Pf4hrG82 よく読んでないけどEmptyProject風に void Create(LPDIRECT3DDEVICE9 lpD3DDEV) { jiki = new Jiki(); jiki->Create(lpD3DDEV); } void Draw(LPDIRECT3DDEVICE9 lpD3DDEV) { jiki->Draw(lpD3DDEV); } って風にやったら問題あるの? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/553
554: 名前は開発中のものです。 [] 2009/12/14(月) 01:36:46 ID:etpwNEHL deviceの作成は一箇所のクラスでシングルトン device呼び出しが長くなるが、面倒なら#define 俺はこんな感じ 無知なんだけど、デバイスて何個も必要になることあんの? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/554
555: 名前は開発中のものです。 [sage] 2009/12/14(月) 01:57:52 ID:ViaP5WDz デバイスが複数あったら複数必要なんじゃね。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/555
556: 名前は開発中のものです。 [sage] 2009/12/14(月) 03:13:37 ID:etpwNEHL その複数てのがさ、動的に管理しないといけないものなら複数個保持するクラスにすればいいし そうでないなら同じようなクラスを用意するかな 便利だからグローバルにしてるわけだし 仕方ないとおもってる 必要な関数ごとにデバイス渡すとか面倒すぎる まあ、何十個もデバイスがいるわけじゃないからできる荒い方法ではあるんだけどな http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/556
557: 名前は開発中のものです。 [sage] 2009/12/14(月) 11:05:57 ID:QE4kvqHr ボンバーマンを拡張して繋がれてるコントローラの数だけ プレイヤーが増えるとかいった仕様にしたいなら コントローラのデバイスは動的に管理した方がいいと思う。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/557
558: 名前は開発中のものです。 [sage] 2009/12/14(月) 14:08:44 ID:lLcah1pB プレイヤが一人でも全てのコントローラで操作できるようにしているが (左右同時に押された場合は後からの入力を優先) コントローラが壊れて常に右側に入力があるみたいな状態になるとうざったそうだな http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/558
559: 名前は開発中のものです。 [sage] 2009/12/14(月) 15:35:13 ID:ViaP5WDz 壊れたコントローラーはサポートしなくてもいいと思うよw http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/559
560: 名前は開発中のものです。 [] 2009/12/21(月) 22:25:25 ID:F5CW/HFF sharedptrみたいなの実装したいのですが、 それらしいことがのってる more effective c++と、Accelarated C++ のどちらの本が役立ちそうでしょうか? boostソース読めってのは無しでお願いします。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/560
561: 名前は開発中のものです。 [sage] 2009/12/21(月) 23:10:45 ID:yYVJ9W7O >>560 「スマートポインタ」でググれば解説もサンプルも見つかるよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/561
562: 名前は開発中のものです。 [sage] 2009/12/22(火) 01:26:27 ID:Q5u6VebD >>560 なんで boost::shared_ptr 使わないの? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/562
563: 501 [] 2009/12/30(水) 05:37:23 ID:CHdRD74o >>552 描画スクリプトっぽく進めてる。>>510 の言うとおりの方法。 >各オブジェクトには描画スクリプトみたいのを作らせておいて、draw()がそれを解釈して描画とか? 描画スクリプトみたいなのを作るほうがプログラム構造は単純になった。 >>511に書いたやり方は結局デバイスアクセス処理が分散していて大して煩雑さは改善されなかった。 簡単な2Dゲームだと描画は大部分が画像描画コマンドだけで構成されてた。思ってたより単純。 あとは少ないながらもカメラ位置変更コマン
ドと文字列描画コマンドも使った。 コマンド構造体を配列に突っ込んでカウンタを+1とかしてコマンド列(描画スクリプトみたいの)を作ってる。 あと画像描画コマンドでは描画すべき画像は番号で指定してる。番号に対応する画像を用意するのは解釈側の責任。 デバイスデータの引き回しはなるべく避けたかったので。 デバイスを関数間で無闇に引き回さなくても済むようになったので気が楽だし、 メモリデータの変更だけで描画内容が変わるのもおもしろい。 やって良かったと思ってる。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/563
564: 501 [sage] 2009/12/30(水) 22:40:42 ID:CHdRD74o >>563を読み返したらちょっと違うところがあったので訂正。引用したこの文。 >各オブジェクトには描画スクリプトみたいのを作らせておいて、draw()がそれを解釈して描画とか? 自分の場合、描画スクリプトを作るのは「各オブジェクト」というより「各シーン管理オブジェクト」になった。 つまり シーン管理オブジェクトが自身の所有する各オブジェクトの情報をアクセサ経由で読み取って 描画スクリプトみたいなものを組み立てる。 たくさんある細かい各オブジェクトに描画スクリプト
的なものを作成させるのは責任というか依存性が散らばりすぎて複雑になる。 だから数の少ない管理オブジェクトがconst修飾済みの読み取り専用オブジェクトから得た情報だけを元に描画スクリプト的なものを組み立ててる。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/564
565: 名前は開発中のものです。 [sage] 2009/12/31(木) 08:32:52 ID:QBEbvaiT sqliteを組み込んで、画像やモデルを相互変換可能な名前/IDで管理するとか夢が広がるわな 内部で使うのは番号(ID)だとしても、人間にとっては名前の方が分かりやすいし http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/565
566: 名前は開発中のものです。 [sage] 2009/12/31(木) 15:10:35 ID:wXwu3da7 >>565 Google App Engine+Flash(Flex)でノベルもどき作ってるけど、まさにそれやってるわ。 GaeなんでsqliteじゃなくてGoogle Big Table使ってるけどね。 スクリプトはForthベースの俺々スクリプトだけど、 SilverlightだとPythonやRubyエンジンが使えるので、 次作るときはそっち使おうかなと思ってる。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/566
567: 名前は開発中のものです。 [sage] 2010/01/04(月) 06:09:33 ID:JxRYn/a0 おおー、ゲームのバックエンドサーバーにもGAE使う時代かw たしか、mixiアプリのモバイルゲームでGAE使った事例があったな。 3000万PV/月をかなり安価で乗りきれるとか Togetter(トゥギャッター) - まとめ「100万PV/日のmixiアプリモバイルをGoogle App Engineで実装した@gclue_akira氏に直撃インタビュー」 http://togetter.com/li/494 すれ違いの話題になるが、昨今のネットが絡むゲームの場合バックエンドの技術も必要だけど、 そういう話題を扱ったスレってない
ものかな この板にネットゲームの開発時代が少ないみたいだから、需要はないのかもだけど まーGAEならWebProg板のAppengineスレ行けばいいしな http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/567
568: 名前は開発中のものです。 [sage] 2010/01/04(月) 06:10:39 ID:JxRYn/a0 x 開発時代 o 開発自体 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/568
569: 名前は開発中のものです。 [sage] 2010/04/20(火) 00:42:02 ID:pYU4LjYZ 前スレの最後のほうに出てた描画の話題って結局どうなりました?(928ぐらい) http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/569
570: 名前は開発中のものです。 [sage] 2010/05/11(火) 16:43:34 ID:mK0DmPV5 http://blog-imgs-27.fc2.com/c/h/u/chudoku200/1239712143736s.jpg http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/570
571: 名前は開発中のものです。 [sage] 2010/09/20(月) 21:23:17 ID:Qy1aznUB アクションゲーム作ってるんですが どういう風にクラス分けすればいいか悩んでます MAPクラス Playerクラス GameFrameクラスの3つがあって mainループで switch(MODE) { case TITLE:~~~~;break; case MENU:~~~~;break; case STAGE01:~~~~;break; case STAGE02:~~~~;break; . . . } みたいなことをしています。 各Stageに行くたびに、ステージ前処理と、ステージ後処理をしたいです というとコンストラクタとデストラクタ……つまりはクラスを使えばいいんじゃないか?
という感じなのですが Playerクラスの持っている情報と、操作関連を上手く融合させたり Mapクラスの持っている情報と、Playerクラスを上手く組み合わせたりが出来ません…… こういう部分はどういう風にデザインするのがいいのでしょうか http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/571
572: 名前は開発中のものです。 [sage] 2010/09/21(火) 03:43:33 ID:l4LB0P7i STAGE01とSTAGE02を分ける必要は無いだろ。 ファミコンの「ドラえもん」みたいな、1面と2面で全く違うゲームになるなら別だけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/572
573: 名前は開発中のものです。 [sage] 2010/09/23(木) 17:38:03 ID:g80tUxgW まずそのswitch文をなんとかしよう。 TitleクラスとMenuクラスとStageクラスを追加するとか。 その上で、StageをPlayerとMapのメディエータとして実装する、というのはどうだ? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/573
574: 名前は開発中のものです。 [sage] 2010/12/04(土) 11:15:23 ID:bbisnDl0 >>571 貴方は俺か クラス名と悩みが殆ど同じとかw http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/574
575: 名前は開発中のものです。 [sage] 2010/12/04(土) 14:39:29 ID:t6Qi73J8 >>571 ちょっと難しいかもしれないが ttp://marupeke296.com/GDEV_main.html ここはかなり参考になる気がするよ。サンプルもあるし。 その6とその7ね。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/575
576: 名前は開発中のものです。 [sage] 2011/02/02(水) 03:54:28 ID:uhRk4Rqb 保守 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/576
577: 名前は開発中のものです。 [sage] 2011/05/20(金) 08:10:28.28 ID:PnmAmJ/W 良スレ保守 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/577
578: 名前は開発中のものです。 [] 2011/08/02(火) 05:21:50.11 ID:jrRNxlOf Android開発でのパフォーマンスTips http://labs.techfirm.co.jp/android/cho/1283 http://labs.techfirm.co.jp/android/cho/1293 オブジェクト生成は避ける インターフェースは使わない スタティックメソッドを使う クラス内部でgetter/setterは使わない foreachループは気をつける 携帯端末だとオブジェクト指向をある程度捨ててパフォーマンスを稼ぐって形が 求められるみたい こういう環境のゲームは、どういうデータ構造・クラス設計を採用すべきかってのも 気にな
るな http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/578
579: 名前は開発中のものです。 [sage] 2011/08/02(火) 12:43:43.47 ID:w6MyIbcF iアプリを思い出すなーw http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/579
580: 名前は開発中のものです。 [sage] 2011/08/04(木) 13:31:14.84 ID:OiYK4POH PS時代のゲーム開発みたいだなw あの制限ばかりの時代を経験した世代の方が 開発に向いていたりしてw http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/580
581: 名前は開発中のものです。 [sage] 2011/08/09(火) 01:57:38.36 ID:/4Pi5/Qb 処理能力を操作に割かせるためにメモリに読めるだけ読むのかな http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/581
582: 名前は開発中のものです。 [sage] 2011/08/09(火) 20:19:58.06 ID:9GJ5MiVh それやりすぎるとアプリの切り替えをすることが多いスマフォじゃ 面倒が起きやすいんじゃないか http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/582
583: 名前は開発中のものです。 [sage] 2011/08/15(月) 07:32:13.82 ID:zPArLam8 >>19 消えてるみたい どこか掲載されるサイトしらない? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/583
584: 名前は開発中のものです。 [sage] 2011/08/21(日) 15:33:02.73 ID:IUtyM1fd こないだ色々探したんだけど、糞アフィブログのリンク記事しか見つからなかった キャッシュとかも見たんだけどさ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/584
585: 名前は開発中のものです。 [sage] 2011/09/04(日) 02:30:22.85 ID:novGGJeq >>580 そうかもしれない。 その世代が今のゲーム現場で老害化してるんでむしろ行って欲しい。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/585
586: 名前は開発中のものです。 [] 2011/12/29(木) 00:00:54.00 ID:hHcZWWbE よさげなスレなのに、あまり話が盛り上がってないな・・・ RPGのクラス設計で、「CharacterがItem(複数)を持っている」 状態を表したい時、 昔の自分は、 class Character { List<Item> inventory; } って書いていたけど、最近の自分は、 class Inventory { static List<Item> itemList;//全キャラクター分のアイテムを格納 Character character; public int Count { get { itemListを数えて返す } } public Item this[int no] { get {
itemListのno番目を返す } } } class Character { Inventory inventory; } って書くようになった。 どっちの書き方が多数派なのだろう? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/586
587: 名前は開発中のものです。 [sage] 2011/12/29(木) 00:30:31.32 ID:8pF0f6jp そこまでいったら、Interface抽出までやるかなー。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/587
588: 名前は開発中のものです。 [sage] 2011/12/29(木) 11:43:29.12 ID:hHcZWWbE インタフェース抽出・・・ こんな感じ? interface IGameData<T> { int Count { get; } T this[int no] { get; } void Add(T arg); void Remove(T arg); } (ジェネリックの書き方は適当ですw) class Inventory : IGameData<Item> { static List<Item> itemList;//全キャラクター分のアイテムを格納 Character character; public int Count { get { itemListを数えて返す } } (ry) } http://mevius.5ch.net/t
est/read.cgi/gamedev/1211544659/588
589: 名前は開発中のものです。 [sage] 2011/12/29(木) 15:58:30.64 ID:8pF0f6jp たぶんそんな感じー http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/589
590: 名前は開発中のものです。 [sage] 2012/01/09(月) 19:11:25.37 ID:7/HYejXG >>588 なんでitemList がstaticなんだ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/590
591: 名前は開発中のものです。 [sage] 2012/01/10(火) 01:04:51.32 ID:Lc/KjEb7 プログラム自体全くの素人なんで 取り敢えず3D空間上に地面を作ってその上をキャラクタが歩き回れるプログラムを作ったんだけど 地面を生成する際に必ず必要になる地面の各頂点の座標だけで1面につきfloat1つ分で4byte取られるんだよね そこでふと思ったんだけど エルダースクロール2ってどうやってそこらへんの情報を扱ってるんだろ あのゲームのマップの大きさを計算してみたら一辺317Kmもあるみたい 1面を5m四方として扱ってもマップ全体を表すのに16078240000byte
も必要 エントロピー圧縮しても1/15位が限界だと思うから約1GB 本当はこれらにさらに木や草の位置、地面のテクスチャの種類なんかが必要なんだよね それなのにtes2のデータサイズを見ると160MBしかない 何かマップ設計自体が特殊なんだろうか http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/591
592: 名前は開発中のものです。 [sage] 2012/01/10(火) 01:20:07.70 ID:rFVH40vL 常にそのデータをメモリ上に保持しておかなければいかんわけじゃないだろ…… 100km先のデータなんて近づいてきたら読めばいいじゃない http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/592
593: 名前は開発中のものです。 [sage] 2012/01/10(火) 02:51:27.11 ID:tQJO4ffg floatじゃなくてhalf floatなのかもしれん。これだけで半分になる。 あとは、エントロピー符号化の前に、 曲面補完とか使って圧縮かけてるのかもしれない。 ビットマップで曲線を保持すると解像度分のデータが必要だが、 ベジェ曲線なんかで表せば、上手くいけばハンドル数個分で済む。 FUELなんかはたぶんこういう方法使ってて、川が途中で途切れてたりするところが目立つのはそのためだと思う。 全部俺の勝手な予想だが、いろいろ工夫はしてると思うよ。 http://m
evius.5ch.net/test/read.cgi/gamedev/1211544659/593
594: 名前は開発中のものです。 [sage] 2012/01/10(火) 20:26:05.97 ID:Wi6HPUjx >>590 ん、ごめん。判りにくいな〜と思いつつ手抜きしてしまった。 こんな感じのコーディングを想定していました。 class Inventory : IGameData<Item> { static List<Item> itemList; //クラスメンバ Character character; //プロパティ public int Count { get { int num = 0; for(int i = 0; i < itemList.Count; i++) num += (itemList[i].Character == this.character)? 1 : 0; return
num; } } public Item this[int no] { get { for(int i = 0; i < itemList.Count; i++) if (itemList[i].Character == this.character) if (--no < 0) return itemList[i]; throw new Exception();//noがオーバーしてたら例外(とかreturn null;とか) } } } class Item { public Character Character; } class Character { Inventory inventory = new Inventory(this); } 結局、呼び出す側からの見た目は、 class Inventory : List<Item> { } class Character { Inventory inventory = new Inventory(); }
とあまり変わらないんだけどね・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/594
595: 名前は開発中のものです。 [sage] 2012/01/10(火) 22:24:32.24 ID:Lc/KjEb7 >>592 そういう問題ではないんだけど、マップの構造設計を考えるとそこも考えなきゃいけないと思う >>593 ベジェ曲線・・・確かに全く別のアプローチ方法で面白いかも・・・ ベジェ曲線を3次元で表現するのかX、Yどちらかに絞って高さだけを表現するのか ただそうするとどのタイミングでどこの情報を取ってくるかが問題になるのかな 単純に複数の面(25個ずつくらい)をまとめた構造体で管理してたんじゃベジェ曲線の利点が薄まる? もう少し調べてみます。
アドバイスありがとう http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/595
596: 名前は開発中のものです。 [sage] 2012/01/10(火) 23:12:32.40 ID:Wi6HPUjx >>595 以前、フラクタルで地形を作成するプログラムを書いたことがあるけど、 動的にマップデータを生成するのはどうだろう? ランダムシードを固定値で持っていれば、再現性もあるかと思うし。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/596
597: 名前は開発中のものです。 [sage] 2012/01/10(火) 23:17:34.89 ID:Wi6HPUjx 言葉足らずすぎる気がしたので補足w 広い領域を、例えば5キロ平方に区切って、 隣の領域と連続性を保つため外周だけはデータを保持。 その内側の凹凸は動的生成、って意味です。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/597
598: 名前は開発中のものです。 [sage] 2012/01/11(水) 01:47:31.95 ID:dDo0BLDQ >>596 それ単独では制御が難しいかも。町を作りたいのに平らな地形が得られない、とか。 平らな地形の部分だけ追加データで入れるとかするのかな。 >>595 線→面への拡張は、概念はそんなにフクザツじゃない。 補間方法はベジェじゃなくてもスプラインでもいいけど、単純にXY両方でデータの無いところを補間するだけだと思う。 ただ当然実行時計算量とデータサイズのトレードオフはある。 TES2は分からんけど、TES4と同系統のエンジンのFO3なんかみると
、 たまにそういう曲面のエッジが誤差か調整不足かで浮いてるところがマップのところどころにあった気がする。 これは曲面補間かどうかは分からないけども。 SourceEngineなんかも似たような技術が実装されてるし、けっこう昔からある技術なのかな? Game Programming Gemsとか探したら取り上げられてるかもね。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/598
599: 名前は開発中のものです。 [sage] 2012/01/13(金) 08:38:17.24 ID:q77afuhx >>598 なるほど、ってことは、 街の地面:整地されてるから、メッシュを大きく平らに 平原とか砂漠とか:メッシュを大きく取って、細かい部分は補間なり動的生成なり 山岳みないな凹凸がある地形:メッシュを細かく って感じに・・・ (と言っておいてなんですが、メッシュの大きさを変えるのは、プログラムが汚くなりそうw) http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/599
600: 名前は開発中のものです。 [sage] 2012/01/13(金) 23:38:29.70 ID:sS8+h2Ga >>599 偏った例で恐縮だけど、SourceEngineのディスプレースメントサーフェイスは 分割数は2,4,8とか2の倍数固定でそれほど柔軟ではないし、穴あけれないとか制約はある。 だからその辺はレベルデザイナーのほうで調節する感じ。 ただしスムージングはかけれるから、たぶん補間はしてる。 たぶんゲームエンジンはどれも似たような仕組みは実装してると思うよ。 ディスプレースメントなら頂点4つ(△ポリゴン2つ)+差分テクスチャマップをシェーダーにぶち込んで高
速処理、とか そんなんだと思う。 あくまで予想だけど! http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/600
601: 名前は開発中のものです。 [sage] 2012/06/10(日) 17:27:25.03 ID:m7xNzVPO 特定の条件がなんなのか不明だけど、eventListenerとかgetInputとかで良いんじゃないの 設計としてはおかしくはない http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/601
602: 名前は開発中のものです。 [sage] 2012/06/10(日) 17:28:33.69 ID:m7xNzVPO 誤爆失礼 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/602
603: 名前は開発中のものです。 [] 2012/10/13(土) 15:00:59.36 ID:PbMUmxTV 保守 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/603
604: 名前は開発中のものです。 [] 2014/08/05(火) 01:15:42.94 ID:6YHbcuwm タイル形式の箱庭データ配置ってどう思う? メモリーが少なかった頃の遺物? 高速化のために未だに使う事ってある? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/604
605: 名前は開発中のものです。 [sage] 2014/08/05(火) 12:28:28.50 ID:mp7VEmF3 良くも悪くもゲームが記号的になるね http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/605
606: 名前は開発中のものです。 [sage] 2014/08/18(月) 17:56:46.58 ID:/xfKqDtl Androidでゲームを作ってるんですが、クライアント・サーバー型のゲームのデータを データベースで管理しようとすると武器の名前とかいらないと思って、端折りまくってたら 武器のIDだけのテーブルになってしまいました。(パラメータはクライアントで持ってます) ここまでくるとテーブルとして参照するだけcpuの無駄だと思い、 テーブルを消していくと他のテーブルと全く関わり合いのないテーブルが出てきます。 (例えば武器を売った時にいくらお金が手に入るか?と
か) そうすると何か自分の考えてる構造に不安を覚えるのですが、これは正しいのでしょうか? 「データベースの外とリレーション貼ってる」って考えれば自分を納得させられるような気もしないんですが・・ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/606
607: 名前は開発中のものです。 [sage] 2014/08/18(月) 18:09:33.31 ID:/xfKqDtl 砂漠とか海の3D空間で遠景を表現するのってどうすればいいですか? 地平線とスカイドーム(スカイボックス?)の切れ目が不自然になって、 ちょっとでもカメラのY座標を高くすると地面の切れ目もはっきり目立ちます。 fogは遠くのオブジェクトも見たいのであまりしたくありません。 http://livedoor.blogimg.jp/terashima999/imgs/1/3/1321e840.jpg http://yoda.dip.jp/Diary/200707/20070711_AC6_1.jpg ↑こういうの http://mevius.5ch.net/test/read.cgi/gamedev/
1211544659/607
608: 名前は開発中のものです。 [sage] 2014/08/23(土) 15:13:29.78 ID:yctiE/PZ >>607 LOD(level of detail)を使って遠くまで描画すればいいと思う。 ちょっと古い記事だけど下記のサイトが参考になるんじゃね? 3Dゲームファンのための「ワンダと巨像」グラフィックス講座 http://game.watch.impress.co.jp/docs/20051207/3dwa.htm の「■地形のLODシステムと読み込み」の項目 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/608
609: 名前は開発中のものです。 [sage] 2014/08/23(土) 18:35:40.53 ID:w69tOcJ6 なるべく地平線や水平線の近くまで描画したいんでしょ? 自分の場合は / ̄ ̄ ̄\ /: :\ /: .: a .: .:\  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↑↑ b c a:視点の位置 b:フォグの開始 c:フォグの終了 空は角錐台状につくってaのxy座標に追従 bを遠くにとれば遠くまで描画できるし、 空の天辺がフォグで霞むこともなくなる。 http://mevius.5ch.net/test/read.cgi/gamedev/12115446
59/609
610: 名前は開発中のものです。 [sage] 2014/08/24(日) 14:20:41.69 ID:AJZlAWRG >>609 視点のY座標が高くなると、地平線と空の間に描画されない部分が出てきてしまいます・・ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/610
611: 名前は開発中のものです。 [sage] 2014/08/25(月) 00:41:57.10 ID:2KTfo870 あぁXZ座標か。兎に角視点の高度はに角錐台は影響されない方向で。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/611
612: 名前は開発中のものです。 [sage] 2014/08/26(火) 13:52:23.48 ID:qHUiU/pW いや、角錐台は影響されないんですけど、 aが立ってる地面とかは高度上げれば上げるほど離れていくわけじゃないですか そうすると地面のポリゴンと角錐台がどんどん離れていって 地面のポリゴンの終端があらわになってしまいます。 街を探検するようなゲームなら全く問題ないんですが 海とか航空機とかで「地平線を表現したい」となった時にfogにも頼れず(霞ませたいわけじゃない)どうしたものかと・・・ LODで全力で軽量化しつつ、XZ座標1000000,1000000とかすごい
桁のパラメータで遠くに設置してもいいんですが、 カメラのトリム距離もネックになってて、それだけの距離を1.0~0.0に収めると浮動小数点型の誤差?なのか、 遠景のZバッファによる描画が不自然になります 近景用と遠景用で2回判定してもいいんですが(通常ポリゴンとLODポリゴンで分けられたら一石二鳥かも) なんだか王道から離れていってるようで、他の人がどう対処してるのかなと http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/612
613: 名前は開発中のものです。 [sage] 2014/08/26(火) 21:43:36.70 ID:HN5WQ9H7 / ̄ ̄ ̄\ /: a :\ /: .: .: .:\  ̄ ̄ ̄ ̄ ̄←地面が小さいの? 地面をフォグの終了まで描画すればいいと思うけど… http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/613
614: 名前は開発中のものです。 [sage] 2014/08/27(水) 17:08:35.72 ID:r0T91QdR ぢめんをちきゅうみたいにまるくするのはどう? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/614
615: 名前は開発中のものです。 [sage] 2014/08/28(木) 17:39:54.03 ID:bFGeiPpW >>613 ということは、607の下の画像みたいなのは建物を思いっきり縮小してるんですかね? 上の画像はすごいきれいに水平線が見えますけど http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/615
616: 名前は開発中のものです。 [sage] 2014/08/28(木) 21:14:49.09 ID:m/S7fPOm 上のは船上だから視点は高くても数十m。水平線は結構近いと思うよ。 下のは数kmとかじゃないかな。建物を縮小というか単純に距離が離れてると思うけど… それでもフォグを使って描画範囲を制限して、描画対象を削減してる。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/616
617: 名前は開発中のものです。 [sage] 2014/08/29(金) 17:47:40.60 ID:PQKddMMr >>616 今実際に水平線を描画してみたんですが、遠くの船が空中に浮いてるように見えます 海面の描画外で船を描画するとスカイドームの背景が船底より下に描画されます 海面にかけるフォグ色とスカイドームに貼り付けるテクスチャの水平部分に 同じ色を使っていい感じにごまかせないか試してみたんですが、 海面の上から船底が描画されるのでやっぱり違和感があります http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/617
618: 名前は開発中のものです。 [sage] 2014/08/29(金) 22:39:55.32 ID:Me2CR80H 船を描画するときフォグは無効にしてるの? 船全体がフォグの終了の向こうに出るまでは、フォグを有効にして船を描画。 向こうに出たら描画そのものをスキップしないとダメだと思うよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/618
619: 名前は開発中のものです。 [sage] 2014/08/30(土) 08:34:58.97 ID:RhmAUk4c >>617 船のモデル側に海面ポリゴン(船底を隠す分だけ)をくっつけとけば、いいんじゃね? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/619
620: 名前は開発中のものです。 [sage] 2014/08/30(土) 11:22:17.06 ID:5AIFhixX >>618 海面は有効にしてますが船は有効にしてません そもそもフォグをかける理由はスカイドームに描かれた海面と同色にして 違和感なく水平線を再現したいって理由なので ある距離で突然船が消えるようなのは無理です >>619 それだと嵐とかの表現で大波とか拡張したくなった時とか、 動的な表現に耐えられないような・・・ フォグとスカイドームの間だから単色の板ポリで動的に隠すことも出来なくはないかも http://mevius.5ch.net/test/read.cgi/gamede
v/1211544659/620
621: 名前は開発中のものです。 [sage] 2014/09/01(月) 07:02:26.23 ID:raj97bmv 状況が良くわからないけど、こういうこと? _目____空 __視視__空 ____視視空 ______海視 ______海_視視 ______海___視視_________浮船 海海海海海海海海海海海海海海海海海海海海海海海海ー水平な水平線 ______________視視 ________________視視 __________________\ ___________________見た目の水平線 http://mevius.5ch.net/test/read.cgi/
gamedev/1211544659/621
622: 名前は開発中のものです。 [sage] 2014/09/01(月) 07:04:40.93 ID:raj97bmv ちょっと修正 _目____空 __視視__空 ____視視空 ______海視 ______海_視視 ______海___視視_________浮船 海海海海海海海外外外外外視視外外外外外外外外外外外ー水平な水平線 ______________視視 ________________視視 __________________\ ___________________見た目の水平線 http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/622
623: 名前は開発中のものです。 [sage] 2014/09/06(土) 11:55:58.35 ID:khJXlvEe http://i.gyazo.com/ab7ac366b1f7133d16273b35ef24044c.png 浮いて見える? http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/623
624: 名前は開発中のものです。 [sage] 2014/09/20(土) 12:54:30.99 ID:aka1I6g9 >>623 海面のポリゴンより遠い所で船を描画すれば 船底が見えて海面から浮いて見えるね 洋ゲーとかの遠くに見える空母とか戦艦ってどうやって表現してんだろうね http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/624
625: 名前は開発中のものです。 [sage] 2015/03/16(月) 18:52:45.04 ID:ELGRcANR すごい大雑把な質問なんだけど ゲーム設計において外部ライブラリの扱いってどうやるの? ひとつだけならそれに従えばいいかもだけど複数になるとどうしても設計が汚くなってしまう http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/625
626: 名前は開発中のものです。 [] 2015/12/19(土) 14:31:11.96 ID:uNL25Qjh プログラマはMacを使ってるってマジ? http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/626
627: 名前は開発中のものです。 [] 2017/12/31(日) 20:22:02.22 ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。 グーグル検索⇒『来島のモノノリウエ』 A8RNONREKQ http://mevius.5ch.net/test/read.cgi/gamedev/1211544659/627
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s