ランダムでダンジョンを自動作成する手法についてのスレです。
ローグタイプやシレンタイプのダンジョンや、街並みや地形など。
※過去スレ
ダンジョン自動生成
http://pc11.2ch.net/test/read.cgi/gamedev/1027084016/
関連サイトは>>2>>3
探検
【ダンジョン】 自動生成 2 【地形】
■ このスレッドは過去ログ倉庫に格納されています
2007/06/19(火) 12:21:35ID:oqLsw/ra
2007/07/21(土) 18:09:51ID:zXVxsGbI
こういうのに敵を配置して歩かせるための AI スレってどっかにありますか??
2007/07/21(土) 19:23:31ID:44Fkc2D+
A*のスレならないな
2007/07/24(火) 11:18:46ID:joQZgMIs
53hp+ZzJpD0 ◆tdos3yGGco
2007/07/29(日) 08:11:12ID:jExIUSGR 進可氏のRANDRANDLANDにインスパイアされて、ドラクエチップそのもので自動生成するFlashを作ってみた。
水際処理まではさすがに断念。
ttp://www.voidelement.com/randqmap/
水際処理まではさすがに断念。
ttp://www.voidelement.com/randqmap/
2007/07/29(日) 08:40:52ID:Xzvd7jFc
弾幕の人か
2007/07/29(日) 17:43:54ID:I8FDzYW4
3500ターンほどで世界が海に飲まれてしまいますた
2007/07/29(日) 19:54:24ID:YgssoeS4
思った以上に砂漠化は深刻ですな
2007/07/30(月) 00:04:33ID:s7cNDyJ9
なんかライフゲームを思い出した
2007/07/30(月) 00:10:12ID:yphm74U5
むしろライフゲームそのものじゃね?
2007/07/30(月) 02:40:47ID:PEc7Ld9x
>>53
これ面白いなぁ
これ面白いなぁ
60hp+ZzJpD0 ◆tdos3yGGco
2007/08/01(水) 07:52:16ID:iM9ravM5 水際というか海岸処理実装してみた。
コンボリューションフィルタ駆使してみたら意外と軽くいけたので満足。
ついでにスムージングON/OFFも追加。
コンボリューションフィルタ駆使してみたら意外と軽くいけたので満足。
ついでにスムージングON/OFFも追加。
2007/08/01(水) 09:28:25ID:lNtVBUSY
WEBデザイナーの作るモンって見栄えだけで内容浅いよねw
職業天ぷら詐欺師wwwwっっwうぇうぇww
職業天ぷら詐欺師wwwwっっwうぇうぇww
2007/08/01(水) 12:32:04ID:Hoz61AAF
内容浅い煽りが目に付く季節ですなぁ
2007/08/01(水) 12:48:14ID:h2WH7o/b
しかし、ぱっと見だけのもんしか作ってないというのは同意かな。
なんか料理の模型が並んでるショーケースみたいなサイトだね。
なんか料理の模型が並んでるショーケースみたいなサイトだね。
2007/08/01(水) 12:51:12ID:bZpIGDHs
と、1行もコードを書いたことのない者が申しております。
2007/08/01(水) 12:56:54ID:G1X+Fstu
お、必死だな本人w
2007/08/01(水) 20:06:44ID:PHJ5d3dl
2007/08/01(水) 20:09:03ID:PHJ5d3dl
2007/08/02(木) 01:40:04ID:tW/BiuTt
ホイール必須のインターフェースはどうかと思うけどな
2007/08/02(木) 06:52:48ID:k9KZi+UU
それしか思わんのか
2007/08/02(木) 07:05:33ID:DbqHXc5c
なんで本人そんな必死なのw
2007/08/02(木) 07:42:21ID:k9KZi+UU
?
2007/08/02(木) 07:58:56ID:y196QZ4K
!
2007/08/02(木) 09:41:42ID:fmxyYPUr
夏ですね
2007/08/02(木) 10:01:03ID:eQe0hbZW
Flash厨はいつも元気ですよ(苦笑)
2007/08/02(木) 20:55:14ID:tfcWOmvo
2007/08/02(木) 21:30:13ID:MP5ocgXV
プゲラッチョ
2007/08/03(金) 01:06:26ID:WkRBiNtL
単発IDに煽られても自演にしか見えないって知っててやってるんだろうか?
2007/08/03(金) 04:50:18ID:eMY8tx2X
単発IDの擁護は作者自演にしか見えないって知っててやってるんだろうか?
2007/08/03(金) 07:57:24ID:e2Qiydbk
無能で何やっても駄目な奴が、嫉妬してる様子に笑った。
2007/08/03(金) 08:00:37ID:okXpPYte
Flash厨の分際で有能だとか勘違いしてる様子に笑った。
2007/08/03(金) 08:39:45ID:VKCtddo4
おいおいこのスレすっげー盛り上がってるじゃねーかよ!!
2007/08/03(金) 08:49:13ID:jkXm9wBz
どこも夏だなあ
2007/08/03(金) 08:59:24ID:rvwQ978o
>>82
どのスレを開いても夏な展開になってるから困る
どのスレを開いても夏な展開になってるから困る
2007/08/03(金) 09:02:48ID:VKCtddo4
夏が寄り付かないようにもっと寒い流れにしておけば
夏厨も裸足で逃げ出すんじゃないか
夏厨も裸足で逃げ出すんじゃないか
2007/08/03(金) 09:15:47ID:7UxPsFEw
Flash(苦笑)
2007/08/03(金) 13:17:35ID:Q8cuV4eO
板名考えたらそりゃそうだよなぁ
2007/08/03(金) 16:11:10ID:Y/HlBCq4
2007/08/03(金) 16:54:26ID:uCXrv81G
夏が過ぎればまた過疎気味の濃いスレに戻ってくれることでせう
89進可 ◆Sinka1my5k
2007/08/09(木) 00:13:33ID:5x3ECIuy >66
GJ!
GJ!
90名前は開発中のものです。
2007/08/09(木) 12:09:31ID:cz7TfNwM 丘とか山のような地形データって、座標と標高で表すものでしょうか?
その上の建物とかはまた別に普通のモデルとして表しているのでしょうか?
何か参考になる本がありましたら教えてください。
その上の建物とかはまた別に普通のモデルとして表しているのでしょうか?
何か参考になる本がありましたら教えてください。
2007/08/09(木) 18:39:09ID:f1Ms1wCQ
地形はグレースケールとか?
2007/08/10(金) 02:04:49ID:BQLhEe79
93名前は開発中のものです。
2007/09/13(木) 00:01:35ID:z8NXjx1m 保守
2007/09/21(金) 22:12:54ID:qTGljLSz
今、自動生成のアルゴリズムを作ってた。
ちなみに最初はRacanhack コード解説を参考にしてみてたんだけどうまくいかなかったから自己流にしてみたんさ。
作り方は、ランダムに生成する部屋の数を決める。
部屋のサイズを決定し、各部屋が重ならないようにランダムに配置。
二つ目の部屋からは部屋の中に通路の基点を用意。
一つ前の段階で作った部屋にも通路の基点を設定して二つの起点を直線的に結ぶ。
これを最後の部屋まで繰り返す。
したがって、一つ目の部屋と最後の部屋には通常一本しか通路がつかない。
また、通路の交差および関係ない部屋と通路の接触は判定しないので、十字路や通路と混じっていびつな形になった部屋も生成される可能性がある。
けっこういびつなんだけど、これはこれでいいかなーとか思う。
ちなみに最初はRacanhack コード解説を参考にしてみてたんだけどうまくいかなかったから自己流にしてみたんさ。
作り方は、ランダムに生成する部屋の数を決める。
部屋のサイズを決定し、各部屋が重ならないようにランダムに配置。
二つ目の部屋からは部屋の中に通路の基点を用意。
一つ前の段階で作った部屋にも通路の基点を設定して二つの起点を直線的に結ぶ。
これを最後の部屋まで繰り返す。
したがって、一つ目の部屋と最後の部屋には通常一本しか通路がつかない。
また、通路の交差および関係ない部屋と通路の接触は判定しないので、十字路や通路と混じっていびつな形になった部屋も生成される可能性がある。
けっこういびつなんだけど、これはこれでいいかなーとか思う。
95SDL厨 ◆SDL/2aFg42
2007/10/22(月) 22:48:43ID:xmLMehyO http://www.chukkysoft.com/m-bara/My3D/main.html
JavaApplet製
・テクスチャ貼ってみました。重い。't'を押したらテクスチャ解除。
・画面下の数値は飾りです。
JavaApplet製
・テクスチャ貼ってみました。重い。't'を押したらテクスチャ解除。
・画面下の数値は飾りです。
96名前は開発中のものです。
2007/10/23(火) 17:34:42ID:kEBy9ORT2007/10/23(火) 18:22:05ID:kEBy9ORT
すまん。あげてもーた。
2007/10/23(火) 22:00:43ID:HvHbfAAD
奥行きに従って暗くしてくれ
99SDL厨 ◆SDL/2aFg42
2007/10/24(水) 01:07:23ID:8LaMeF2R >>96氏
すまんこってす。
もっと軽くする工夫が必要ですね。
>>98氏
了解。
http://www.chukkysoft.com/m-bara/My3D/main.html
暗い・暗くないの二値ですが出来ました。
さらに重くなったのでとりあえずテクスチャ解像度落としました。
すまんこってす。
もっと軽くする工夫が必要ですね。
>>98氏
了解。
http://www.chukkysoft.com/m-bara/My3D/main.html
暗い・暗くないの二値ですが出来ました。
さらに重くなったのでとりあえずテクスチャ解像度落としました。
100名前は開発中のものです。
2007/10/24(水) 01:43:43ID:ZJmVIrZF 立ち位置の真横が通路があるかないかわかりにくいのは
テクスチャのふちで段差ができるせいじゃないかな
テクスチャのふちで段差ができるせいじゃないかな
101SDL厨 ◆SDL/2aFg42
2007/10/24(水) 23:11:16ID:8LaMeF2R >>100氏
通路が分かりやすいように壁と床のテクスチャをてきとーに代えてみた。
テクスチャの横線がガクガクしてる事に気付いた。
もっと軽くする工夫を思いついたけどあんまり時間が無い。
まとまった時間欲しい・・・
通路が分かりやすいように壁と床のテクスチャをてきとーに代えてみた。
テクスチャの横線がガクガクしてる事に気付いた。
もっと軽くする工夫を思いついたけどあんまり時間が無い。
まとまった時間欲しい・・・
102名前は開発中のものです。
2007/11/14(水) 15:43:19ID:2PAcQd+E 初めて遊んでみたけどz(扉を開ける)で前進するのがいいね。
WizでK(Kick)で進んでたの思い出した。
敵と宝箱、そしてレベルアップがあればブラウザのタブを切り替えて、ちょこちょこっと遊んでしまいそうだ。
ただそれはすれ違いになってしまうけど。ともかく頑張ってください。
WizでK(Kick)で進んでたの思い出した。
敵と宝箱、そしてレベルアップがあればブラウザのタブを切り替えて、ちょこちょこっと遊んでしまいそうだ。
ただそれはすれ違いになってしまうけど。ともかく頑張ってください。
103名前は開発中のものです。
2007/12/19(水) 00:19:15ID:UPCgpToM104名前は開発中のものです。
2007/12/19(水) 06:32:25ID:ejSDpWvF105名前は開発中のものです。
2007/12/19(水) 08:23:53ID:UPCgpToM106名前は開発中のものです。
2007/12/19(水) 08:30:48ID:qunHTsYl がんばれだぜ
107名前は開発中のものです。
2007/12/19(水) 23:30:02ID:2Mp0D9Cn このスレっぽい話題だったので
ttp://www.inside-games.jp/news/258/25833.html
ttp://www.inside-games.jp/news/258/25833.html
108名前は開発中のものです。
2007/12/21(金) 23:44:22ID:dB2xCSTp >107
シナリオを自動生成ってどうやるんだろうね?
誰が何をどうしたのランダムぐらいしか思いつかない。
ダンスで、アフロを、でかくしろ!とか。
シナリオを自動生成ってどうやるんだろうね?
誰が何をどうしたのランダムぐらいしか思いつかない。
ダンスで、アフロを、でかくしろ!とか。
109名前は開発中のものです。
2007/12/22(土) 01:39:31ID:mYtBb4dP >>108
物語の流れにはいくつか基本的な組み合わせがあるので、
その流れの組み合わせをランダムに繋げる方法があるよ。
その組み合わせ方について書かれている本としては、
ウラジミール・プロップの『昔話の形態学』が有名だね。
詳しくは↓のサイトでも読んでくれ。
ttp://www.trpg.net/user/el./fct/labo/u_p.htm
ttp://gumina.sakura.ne.jp/CREATION/OLD/STORY/OLDTALE.htm
ttp://gumina.sakura.ne.jp/CREATION/OLD/STORY/OLDTALE2.htm
物語の流れにはいくつか基本的な組み合わせがあるので、
その流れの組み合わせをランダムに繋げる方法があるよ。
その組み合わせ方について書かれている本としては、
ウラジミール・プロップの『昔話の形態学』が有名だね。
詳しくは↓のサイトでも読んでくれ。
ttp://www.trpg.net/user/el./fct/labo/u_p.htm
ttp://gumina.sakura.ne.jp/CREATION/OLD/STORY/OLDTALE.htm
ttp://gumina.sakura.ne.jp/CREATION/OLD/STORY/OLDTALE2.htm
110名前は開発中のものです。
2007/12/22(土) 14:12:51ID:TbioTVeu 俺好みの話題になってきた
前スレでもシナリオの話題は出てたね
でも、あれはドラクエタイプのシナリオだったけど
(金の鍵を設置→金の扉の向こうに次の世界への入り口を設置、とか)
TRPGには前からノウハウがあって、俺もサイコロを振ってシナリオ作ったりしてたよ
こことか詳しい
http://www.trpg-labo.com/modules/article/index.php?articleid=38
>>109の方法論と組み合わせれば、結構実用的なものができるかも?
前スレでもシナリオの話題は出てたね
でも、あれはドラクエタイプのシナリオだったけど
(金の鍵を設置→金の扉の向こうに次の世界への入り口を設置、とか)
TRPGには前からノウハウがあって、俺もサイコロを振ってシナリオ作ったりしてたよ
こことか詳しい
http://www.trpg-labo.com/modules/article/index.php?articleid=38
>>109の方法論と組み合わせれば、結構実用的なものができるかも?
111名前は開発中のものです。
2007/12/23(日) 22:53:27ID:7Ch2cFyT そこまで凝ると、小説のあらすじメーカーができそうだな。
112名前は開発中のものです。
2007/12/23(日) 23:00:04ID:PQd2o1nK >>111
七度文庫を思い出した。
七度文庫を思い出した。
113名前は開発中のものです。
2007/12/23(日) 23:45:07ID:sYYhIO4q 央華封神ってTRPGがあったんだけど、それをもとにしたTCGも作られてたんですよ。
そのTCGが「物語を作って得点を競う」っていうものだったそうなんで、ちょっと関係あるかもしれませんね。
そのTCGが「物語を作って得点を競う」っていうものだったそうなんで、ちょっと関係あるかもしれませんね。
114名前は開発中のものです。
2007/12/24(月) 00:13:58ID:iCCURTXI なんでこの話題で、ティルナノーグが出てこないんだ。
つーか、PC98の頃の話なんてしてもだれもわからんか・・・・。orz.
つーか、PC98の頃の話なんてしてもだれもわからんか・・・・。orz.
115名前は開発中のものです。
2007/12/24(月) 17:22:07ID:cKY7rpLD ティルナノーグはドラクエタイプのシナリオ生成だよね。
物語主体のシナリオ生成ではなかったような・・・?
物語主体のシナリオ生成ではなかったような・・・?
116名前は開発中のものです。
2007/12/24(月) 18:25:05ID:s6ioOBVT つWikipedia
これを読む限りでは>109なのかな。
これを読む限りでは>109なのかな。
117名前は開発中のものです。
2007/12/25(火) 05:04:41ID:f266Y5WJ Elonaというゲームが、自動生成っぽい感じ・・・
Elona
http://homepage3.nifty.com/rfish/elona_top.html
シナリオといっても、基本、おつかいだけど
Elona
http://homepage3.nifty.com/rfish/elona_top.html
シナリオといっても、基本、おつかいだけど
118名前は開発中のものです。
2007/12/25(火) 11:10:25ID:45JhSWjC そういう自動小説の物語の確信に関わる部分で
○○は××だと思っていたが、実は真相は△△だった!
みたいなどんでん返しが欲しいところだけど
まさかそこまで実装できてるものはないよなぁ。
○○は××だと思っていたが、実は真相は△△だった!
みたいなどんでん返しが欲しいところだけど
まさかそこまで実装できてるものはないよなぁ。
119名前は開発中のものです。
2007/12/25(火) 11:14:12ID:6WgQSOPl 自動小説だとまた違うだろ
どちらにしろテンプレートを考えれば実装は難しくもない
需要が無いだけ
どちらにしろテンプレートを考えれば実装は難しくもない
需要が無いだけ
120名前は開発中のものです。
2007/12/26(水) 12:47:24ID:LPlmC5KA ストーリーの自動生成という話に関して
水声社から出ている
「可能世界・人工知能・物語理論」
マリー=ロール・ライアン 著
岩松正洋 約
ISBN4-89176-550
…を先日入手したが、まだ読む時間がとれない。・゚・(ノД`)・゚・。
水声社から出ている
「可能世界・人工知能・物語理論」
マリー=ロール・ライアン 著
岩松正洋 約
ISBN4-89176-550
…を先日入手したが、まだ読む時間がとれない。・゚・(ノД`)・゚・。
121名前は開発中のものです。
2007/12/27(木) 11:28:11ID:Ytg+YzMm ランダムで4コマというのがあってだな。なかなかカオスだぞ。
122名前は開発中のものです。
2007/12/30(日) 00:55:54ID:R2ZefpMo この話題は、実装は簡単だけど手間はかかるから現物が出てこないのが難だね
123名前は開発中のものです。
2007/12/30(日) 05:57:27ID:gh2DPire そういや、思いだした。
昔出てた、天国から来た男というゲーム?が、
シナリオ自動生成だった気がする
しかし、当時、クソ高くて手が出なかった orz
天国から来た男
http://www.electricsheep.co.jp/amfh.shtml
昔出てた、天国から来た男というゲーム?が、
シナリオ自動生成だった気がする
しかし、当時、クソ高くて手が出なかった orz
天国から来た男
http://www.electricsheep.co.jp/amfh.shtml
124名前は開発中のものです。
2007/12/30(日) 15:52:49ID:GdVUAPHc 思ったんだが、RPGのシナリオとノベルゲームのシナリオの話題がごっちゃになってるなw
125名前は開発中のものです。
2007/12/30(日) 17:12:09ID:GelyN0Wd 共有できるからいいんでね?
126名前は開発中のものです。
2008/01/01(火) 00:12:45ID:fTSX/zU4 物語理論か……
俺のところの教授の分野じゃないか……
俺のところの教授の分野じゃないか……
127名前は開発中のものです。
2008/01/02(水) 16:12:12ID:SvgGyawT ジャンルどこよ?文学かな?それともコンピューター系かな?
128名前は開発中のものです。
2008/01/03(木) 19:42:38ID:m4afjvCW 俺も学生のころウラジーミルプロップにはまりかけたよ
129名前は開発中のものです。
2008/01/03(木) 20:02:55ID:DnILrl9J130名前は開発中のものです。
2008/01/04(金) 01:35:35ID:0eO4bikW だとしたら文系の膨大な資料が必要になってくるだろうけど
たぶん文系教授はものごっつ嫌がりそうだ。
たぶん文系教授はものごっつ嫌がりそうだ。
131名前は開発中のものです。
2008/01/04(金) 01:58:27ID:osyt6r0V 文系教授がネット上に公開している↓のような資料はあった。
物語要素事典
ttp://www.agu.ac.jp/~kamiyama/index.html
物語要素事典
ttp://www.agu.ac.jp/~kamiyama/index.html
132名前は開発中のものです。
2008/01/10(木) 04:35:59ID:PkUQ+U0a133名前は開発中のものです。
2008/01/12(土) 23:58:19ID:Sk9TeTsY ってかスレ違いはいい加減にしろ
134名前は開発中のものです。
2008/01/13(日) 03:30:41ID:X4JKR+6e >>133
おまはや
おまはや
135名前は開発中のものです。
2008/01/13(日) 05:42:26ID:t2Ib2ko/ いいんじゃない?
前スレもダンジョン以外をやって今回スレタイ変わったんだし
前スレもダンジョン以外をやって今回スレタイ変わったんだし
136名前は開発中のものです。
2008/01/13(日) 09:32:42ID:WGuhQnKH ここはマップ生成スレ。
137名前は開発中のものです。
2008/01/13(日) 13:43:50ID:6dlu7jBB でも、新スレ立てようとしたとたん、こちらに誘導されるだろうなw
138名前は開発中のものです。
2008/01/13(日) 15:27:39ID:qr0K3hAQ マップだけに限定したい理由がわからん
139名前は開発中のものです。
2008/01/13(日) 23:38:43ID:V1w7zyd4 言いたいことはわかるが、別スレ立てたって見るメンバー同じだろ
140103
2008/01/14(月) 00:40:52ID:OMKohYtz ■ダンジョン自動生成アプリ
ttp://gamdev.org/up/img/10938.zip
ttp://gamdev.org/up/img/10939.png
■動作環境
・.NetFrameWork 2.0 が動くこと
■操作方法
ReadMe読んでください
自然窟っぽいダンジョン生成を目標に作りました。
ttp://gamdev.org/up/img/10938.zip
ttp://gamdev.org/up/img/10939.png
■動作環境
・.NetFrameWork 2.0 が動くこと
■操作方法
ReadMe読んでください
自然窟っぽいダンジョン生成を目標に作りました。
141名前は開発中のものです。
2008/01/14(月) 01:46:09ID:2cfS3gf5 GJ
142名前は開発中のものです。
2008/01/14(月) 08:58:47ID:KMhCtH8L143名前は開発中のものです。
2008/01/14(月) 11:09:37ID:X3lp6un1 ヘルプにあるのは矩形のことだよね。
小さい四角を重なり合うように配置している?
大きくすると時間かかるのはコリジョンチェックのため?
どういうアルゴリズムでやっているのか興味がある。
小さい四角を重なり合うように配置している?
大きくすると時間かかるのはコリジョンチェックのため?
どういうアルゴリズムでやっているのか興味がある。
144名前は開発中のものです。
2008/01/14(月) 16:34:50ID:OMKohYtz >>143
あー恥ずかしい、ずっと たんけい って読んでた そりゃ変換できないわな
■アルゴリズム
1)フィールド(200x200のマップの描画先)からランダムで一点選び、基点とする
2)左右、上下をそれぞれランダムでどちらかに絞り、矩形サイズ定数内の値をランダムに取得して矩形のX,Yを得る
3)基点から 2) で求めた値を使って矩形を生成。このとき、矩形がフィールドからはみ出すことがあれば、 2) からやり直す
4) 3) で生成した矩形内からランダムで一点選び、基点とする。矩形数が設定値に達していなかったら 2) へもどる
Mキーを1回押すと、これが実行される。
矩形が大きいと時間がかかるのは、 3) で処理戻りが発生しやすいからだと思うけど、とてもトレースできないので定かではない。
矩形サイズ下限を100とかにすると、基点によっては無限ループが発生する
あー恥ずかしい、ずっと たんけい って読んでた そりゃ変換できないわな
■アルゴリズム
1)フィールド(200x200のマップの描画先)からランダムで一点選び、基点とする
2)左右、上下をそれぞれランダムでどちらかに絞り、矩形サイズ定数内の値をランダムに取得して矩形のX,Yを得る
3)基点から 2) で求めた値を使って矩形を生成。このとき、矩形がフィールドからはみ出すことがあれば、 2) からやり直す
4) 3) で生成した矩形内からランダムで一点選び、基点とする。矩形数が設定値に達していなかったら 2) へもどる
Mキーを1回押すと、これが実行される。
矩形が大きいと時間がかかるのは、 3) で処理戻りが発生しやすいからだと思うけど、とてもトレースできないので定かではない。
矩形サイズ下限を100とかにすると、基点によっては無限ループが発生する
145名前は開発中のものです。
2008/01/14(月) 16:52:08ID:OMKohYtz ■ダンジョン自動生成アプリ(誤字修正版)
ttp://gamdev.org/up/img/10940.zip
ttp://gamdev.org/up/img/10940.zip
146名前は開発中のものです。
2008/01/14(月) 20:39:34ID:dLp72EAg どうせ1も2もランダムなら、2を先にしたらどうかな
そうすれば戻りはなくせる
もちろん結果は変わってしまうけど
そうすれば戻りはなくせる
もちろん結果は変わってしまうけど
147名前は開発中のものです。
2008/01/19(土) 22:54:02ID:lZOHlVzA148名前は開発中のものです。
2008/01/28(月) 00:09:54ID:icdx03N7 ■ダンジョン自動生成アプリ
ttp://gamdev.org/up/img/10989.zip
■動作環境
・.NetFrameWork 2.0 が動くこと
■操作方法
ReadMe読んでください
部屋の連結などを実装
処理時間が猛烈にかかるのは、私が言語仕様をしっかり理解していないから、な気がする
ttp://gamdev.org/up/img/10989.zip
■動作環境
・.NetFrameWork 2.0 が動くこと
■操作方法
ReadMe読んでください
部屋の連結などを実装
処理時間が猛烈にかかるのは、私が言語仕様をしっかり理解していないから、な気がする
149名前は開発中のものです。
2008/01/29(火) 16:53:20ID:ubNaezab 異常にページフォルトが頻発してるね(暴走してるのかと思って一瞬焦ったお・・)
プロファイラでメモリ使用状況見てみたけど(個=インスタンス数)
・全体 - 5.670.000個 - 約117M
・Dictionary<T,U>.Entry - 270,000個 - 41M(34.2%)
・DungeonAutoCreate.Data.arrow - 3,300,000個 - 38M(32.2%)
・Int32 - 1,600,000個 - 18M(15.5%)
・Int32[] - 270,000個 - 13M(10.5%)
・Dictionary<T,U> - 90,000個 - 4.5M(3.8%)
これで全体の96.2%を占めている。
・DungeonAutoCreate.Block - 90,000個 - 1.7M(1.5%)
・DungeonAutoCreate.Block[] - 10,000個 - 1.7M(1.4%)
ここまで入れると99.1%
330万インスタンスあるData.arrowってのも気にはなるけど、何で辞書がこんなに大量に使われてるの?
GCも何度か発生して殆どのインスタンスがGEN2になっている辺りも改善の余地がある(=無駄なGCが発生している)
処理速度に関しては明らかにボトルネックは別なので見ていない。
あと、ReadMeに書いてあるサイズ変更した場合に大量のメモリが消費される問題だけど
「古いフィールドを破棄→新しいフィールドを作成」の間で手動でGCを実行してやるのが効果的だと思う。
プロファイラでメモリ使用状況見てみたけど(個=インスタンス数)
・全体 - 5.670.000個 - 約117M
・Dictionary<T,U>.Entry - 270,000個 - 41M(34.2%)
・DungeonAutoCreate.Data.arrow - 3,300,000個 - 38M(32.2%)
・Int32 - 1,600,000個 - 18M(15.5%)
・Int32[] - 270,000個 - 13M(10.5%)
・Dictionary<T,U> - 90,000個 - 4.5M(3.8%)
これで全体の96.2%を占めている。
・DungeonAutoCreate.Block - 90,000個 - 1.7M(1.5%)
・DungeonAutoCreate.Block[] - 10,000個 - 1.7M(1.4%)
ここまで入れると99.1%
330万インスタンスあるData.arrowってのも気にはなるけど、何で辞書がこんなに大量に使われてるの?
GCも何度か発生して殆どのインスタンスがGEN2になっている辺りも改善の余地がある(=無駄なGCが発生している)
処理速度に関しては明らかにボトルネックは別なので見ていない。
あと、ReadMeに書いてあるサイズ変更した場合に大量のメモリが消費される問題だけど
「古いフィールドを破棄→新しいフィールドを作成」の間で手動でGCを実行してやるのが効果的だと思う。
150名前は開発中のものです。
2008/01/29(火) 20:19:35ID:ubNaezab 既存のコードを極力変更せずに対処してみた
Dictionary<Data.arrow, Block> 互換の辞書クラスを作成
・IDictionary<Data.arrow, Block>を実装
> ArrowDict.cs
・Dictionaryとして使えるが、実態は配列として実装されている
internal class ArrowDict : IDictionary<Data.arrow, Block>
ttp://gamdev.org/up/img/10994.zip
↑実際のコード例(ちょっと手抜き)
> Block.cs
・ArrowDictを使うように修正
// public Dictionary<Data.arrow, Block> arw = new Dictionary<Data.arrow, Block>();
public ArrowDict arw = new ArrowDict();
これでメモリ使用量が激減(117M→10M)して、処理速度が大幅に改善する筈。
これ以上の最適化が必要なら、自分でパフォーマンス計測して頑張ってくださいな。
Dictionary<Data.arrow, Block> 互換の辞書クラスを作成
・IDictionary<Data.arrow, Block>を実装
> ArrowDict.cs
・Dictionaryとして使えるが、実態は配列として実装されている
internal class ArrowDict : IDictionary<Data.arrow, Block>
ttp://gamdev.org/up/img/10994.zip
↑実際のコード例(ちょっと手抜き)
> Block.cs
・ArrowDictを使うように修正
// public Dictionary<Data.arrow, Block> arw = new Dictionary<Data.arrow, Block>();
public ArrowDict arw = new ArrowDict();
これでメモリ使用量が激減(117M→10M)して、処理速度が大幅に改善する筈。
これ以上の最適化が必要なら、自分でパフォーマンス計測して頑張ってくださいな。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- サウナ夫婦死亡 非常ボタンの通報装置の電源入っておらず オーナー「今まで電源入れたことない」 [夜のけいちゃん★]
- 【野球】WBC、録画放送含め地上波中継なし (ネットフリックス) ★3 [阿弥陀ヶ峰★]
- 日中関係改善は「下手をすると10年かかる」 トランプを全面信頼できない高市官邸の苦悩★5 [ぐれ★]
- サウナ夫婦死亡 非常ボタンの通報装置の電源入っておらず オーナー「今まで電源入れたことない」★2 [夜のけいちゃん★]
- ファミマ「遊べるコンビニ」へ ゲーム機を5000店舗に設置方針 IP強化 [七波羅探題★]
- 【アイドル】「HKT48メンバー襲って道連れにし、自分も死のうと思った」 HKT48劇場スタッフ刺傷で逮捕の男 金銭的に行き詰まっていた [冬月記者★]
- 【乞食悲報】日額1000円先進医療特約付261円の激安保険 新規減額が不可能で実質値上げへ [358382861]
- 倉田真由美「国会見てると高市政権を倒すための質問ばかり。もっと国のための質問をしてください」 [834922174]
- 🏡要る?
- お前ら俺に力をくれ
- 煽り抜きで『進撃の巨人』って日本人の漫画史上でもトップレベルの傑作じゃねぇか? [339035499]
- じゃあ逆にマトモな鉄オタは居るのか?
