1 名前:名前は開発中のものです。 [2008/03/10(月) 18:25:42 ID:aUiEtfD9] Ruby でなんかゲームをつくろうと思います。 開発環境は Windows XP、Ruby 1.8.6 (MyGame) です。 ゲームの制作は基本的に一人でやるつもりです。 また、1 はあまりゲームを作った経験がありません。 今までに作ったことがあるのは ブロック崩しとかテトリスとかライフゲームくらいです。 なので面白いものができる保証はありません。 とりあえずのまとめサイト > www7.atwiki.jp/rubydenanka/
83 名前:名前は開発中のものです。 mailto:sage [2008/04/28(月) 20:43:57 ID:jnZXOePg] 1、元気?
84 名前:1 mailto:sage [2008/04/30(水) 21:31:01 ID:2q9bP0Tg] >>83 はい。落ち込むこともあるけど、元気です。
85 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 19:50:19 ID:2U0kHtjd] 俺もRubyでゲーム作ってみようと思ってる
86 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 23:37:38 ID:oIp0pcdI] >>85 がむばれ。 出来たらここでちょくちょく報告してくれるといいな。
87 名前:1 mailto:sage [2008/05/15(木) 21:16:03 ID:0HKsR/Rh] チップセットの各チップが歩行可能か否かを設定するための 簡単なツールを作った。 MyGame じゃなくて StarRuby で。
88 名前:1 mailto:sage [2008/05/25(日) 16:47:16 ID:qC3ViASp] ダンジョンの中をうろうろ動き回る AI を作った。 歩行可能なタイルをランダムに1つを選んで そこまでの最短経路を A* で探索して移動する。 AI はこの探索、移動のサイクルを延々と繰り返す。 AI たちがわらわら動き回る様は見ていて面白い。 でも1つ問題がある。 A* 探索を開始してから答えを得るまでには少し時間がかかるので 探索をはじめると AI の動きが一瞬ピタっと止まる。 AI が複数いると、AI たちのどれかが探索をする度に 他の AI まで動きが止まってしまう。 探索の影響を、なるべく他の AI には与えたくないのだけど こういうときってどうしたらいいんだろう? スレッドを使ってなんとかできるのかな。
89 名前:名前は開発中のものです。 mailto:sage [2008/05/25(日) 20:14:47 ID:g2vbuKQP] スレッド使うとか、コルーチン使って暇な時に計算させるとか?
90 名前:名前は開発中のものです。 mailto:sage [2008/05/25(日) 21:31:15 ID:QgKX5KGU] JavaScriptでゲーム作ってたときに同じ状況で悩んだなぁ スレッドないし、おれ頭悪いので 「処理終わらせる関数」として書くからそうなるのだと考えて 「処理を進める関数/終わった時に呼ばれる関数」に分離したらなんとかなった Rubyならスレッドかなぁ コルーチンってよく判らんけど言語機能で同じ事やってるだけなのかな
91 名前:1 mailto:sage [2008/05/25(日) 21:46:59 ID:u/AqeOfy] >>89 >>90 ありがとうございます。 スレッドとコルーチンかぁ。調べてみよう。 ちなみに、件のプログラムは MVC で組んでいて AI の次の移動先を Model で計算しておいて View が Model の計算結果を見てその位置に描画、っていう感じになっています。 スレッドを使うってなると Model と View でスレッドを分けるようにするのかな。 なんだかまだ今一イメージが掴めてないですが 調べたり紙に書いたりしている内にうまくまとまるといいなぁ。
92 名前:名前は開発中のものです。 mailto:sage [2008/05/26(月) 00:54:57 ID:q+r4EH/m] View Modelの関係はそのままにしておき、 移動の計算は、ワーカースレッドに任せちゃうとかは? 1.Model:開始地点・目標地点など必要な情報を仕事依頼キューに積む 2.ワーカースレッド:仕事依頼キューから一つずつ取り出し計算し、結果キューに積む (全ての仕事が終わったら、新しく仕事が詰まれるまで待機) 3.Model:結果キューを確認し、結果が詰まれていれば取得 この辺参考になるかも [Ruby] Queueを使ったワーカースレッド ttp://d.hatena.ne.jp/unageanu/20071228 >>90 コルーチンは処理を細切れにして、ちょっとずつ実行していくやり方で >「処理を進める関数/終わった時に呼ばれる関数」に分離した ってのは結構近い考え方かも
93 名前:1 mailto:sage [2008/05/26(月) 01:10:44 ID:YPl5ZkW3] >>92 ありがとうございます。 ワーカースレッドというものをはじめて知りました。 参考先をちょっと見てみましたがよさそうですね。 明日以降また見てみます。
94 名前:1 mailto:sage [2008/05/26(月) 19:03:28 ID:HmVOAoHn] 下記を参考にしてワークパイルを実装してみた。 ワークパイルはワーカースレッドみたいなものだろうと思っている。 イメージは掴めたし大体は意図した通りに動いている。 blog.s21g.com/articles/245 でもまだ完全じゃない。 A* 探索の結果として得られるのは ある地点 Start からある地点 Gall までの最短経路。 具体的な例を出すと、こんな感じの配列。 [[0, 0], [0, 1], [0, 2], [1, 2], [2, 2]] この配列は地点 (0, 0) から (2, 2) までの最短経路を表している。 だけどワークパイルを通して複数の AI の経路を探索させると、 たまにトンチンカンな配列が返ってくる。 ちなみにその配列の要素数は決まって 1、[22, 34] とかそんなの。 こういう結果が返ってくると (2, 2) から (22, 34) に AI がジャンプしたかのような動きをする。 たぶんワークパイルのどこかがおかしいんだろうな…。
95 名前:1 mailto:sage [2008/05/27(火) 21:19:39 ID:tgyjkVJl] バグ取れた。 ワークパイルは問題なかった。 問題は A* 探索がマルチスレッドに対応できてなかったことだった。 何はともあれ解決できてよかった!
96 名前:名前は開発中のものです。 mailto:sage [2008/05/28(水) 20:32:51 ID:lAtw5FKI] マルチスレッドはデバッグが困難な茨の道だからあまりおすすめしないぞ。 A*探索を中断・再開できるような仕組みにしてちょっとずつ進めるとかしたほうがいいんじゃない。
97 名前:1 mailto:sage [2008/05/28(水) 21:44:43 ID:8HjKeYrg] >>96 うーむ…。 たしかにデバッグは大変そうですね。 探索を中断・再開かぁ。 とりあえずは今のままで開発を進めていって 「デバッグ大変だー」ってなったときに考えようと思います。 A* 探索は今のままであまり問題ないような気がするので。 ところで、AI が動き回るだけじゃさびしくなったので マップの中に家を建てていくようにしてみた。 建築場所の探し方がまだあまり賢くはないけど ワラワラと押し寄せてマップ中を家だらけにできるようになった。
98 名前:名前は開発中のものです。 [2008/06/21(土) 18:37:09 ID:bqd1b7Jj] 質問なんだが rubyで作ったゲームをexeにしたいんだがexerbでできないんだが・・・ SDL対応してないん? もし他の方法あるならおしえてくだしあ
99 名前:名前は開発中のものです。 mailto:sage [2008/06/21(土) 21:52:00 ID:7I10kcIl] 作れたはずだけど、ダメそうならスターターキットから適当に拝借するとか mono.kmc.gr.jp/~yhara/w/?RubySDLStarterKit
100 名前:名前は開発中のものです。 [2008/06/21(土) 22:12:30 ID:bqd1b7Jj] まさか一日でレスかえってくるとは・・・ありがとうございました
101 名前:名前は開発中のものです。 [2008/06/21(土) 22:59:50 ID:J+b403eZ] jp.rubyist.net/RubyKaigi2008/Live.html
102 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 13:49:36 ID:YJ7ypR7c] 基本を説明して終了っぽいね。>>101
103 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 16:23:50 ID:wTGmZ5+2] Star Rubyの発表を聞いてちょっとやろうかなと思った。 が、ページを見て、チュートリアルをもう少し書いてくれといいたくなり、 やめた。 せめて、もうひとつキー入力のとり方くらい書いててほしかった。
104 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 18:52:44 ID:YJ7ypR7c] >>103 samplesフォルダ、マジお奨め。 正直、チュートリアルするほどAPI多くないから サンプル見て全部理解できるよ。 SDLから速度を稼ぐのための工夫を全部抜いて簡単にしたらStarRubyになる感じ・・・ 説明にあった全部テクスチャもその成果だと思う。
105 名前:名前は開発中のものです。 mailto:sage [2008/06/22(日) 20:32:27 ID:wHRGMMP8] チュートリアルを書かないせいで、結構なユーザーを取り逃がしてそうな気はする。
106 名前:名前は開発中のものです。 [2008/06/24(火) 08:49:23 ID:LfqfoG4M] チュートリアルを書かないなら書かないで、 samplesフォルダを参照して下さいという一節は欲しいかもね。 でも書くとすると何があるといいんだろう。APIの使いどころ?ゲームの作り方を1から解説? それとも横アクションとか縦シューティングとか、サンプルゲーム自体を増やすべきなんだろうか。
107 名前:名前は開発中のものです。 mailto:sage [2008/06/24(火) 16:42:10 ID:zm+U4rjq] ああ、それはあるかも。 添付サンプルのシンプルさは素敵だけど、webだけ見て不安になる人少なくなさそうね
108 名前:名前は開発中のものです。 [2009/11/18(水) 01:52:46 ID:2NTHAGK/] バイト募集中です。内容は宿題の代行(提出課題の代行)です。 Rubyのプログラミング課題で、内容は初心者用なので比較的優しいと思われます。 拘束期間は12/15迄、課題数は4回で、問題数は一回につき一題。計4題です。 謝礼金は5000円〜10000円 の予定です。 人助けだと思って、どうかよろしくお願いします。 連絡先:white_knight2あっとまーくlivedoor.com
109 名前:名前は開発中のものです。 mailto:sage [2009/11/20(金) 21:31:26 ID:nirCwV6d] マジで金くれるならやっても良い。
110 名前:名前は開発中のものです。 mailto:sage [2009/12/03(木) 16:27:37 ID:S3zoWyCK] 一問10000円?
111 名前:名前は開発中のものです。 mailto:sage [2009/12/07(月) 00:22:54 ID:DRTUC3a7] いま誰か作ってる人はいないのヶ
112 名前:名前は開発中のものです。 mailto:sage [2009/12/07(月) 21:16:05 ID:cV0izVto] DxRubyで一画面アクションを作っててあたり判定をつけるところで止まってる んで別のゲームを作りたくなってきてる 使いやすくて作り出せばスルスルいくけどやる気が出ない
113 名前:名前は開発中のものです。 mailto:sage [2009/12/07(月) 23:58:44 ID:DRTUC3a7] DxRubyは使いやすいよね ちゃんと更新されてってるし 最近ようやくだけど、文字描画のバグが消えた
114 名前:名前は開発中のものです。 mailto:sage [2009/12/08(火) 17:12:18 ID:feD2TaiO] 拾い物てとりす 画像1.bmp 2.bmpを適当に用意、 サイズは縦横20px require"dxruby" b=[[-1,0,0,0,1,0,0,-1],[0,0,0,1,0,2,1,1],[0,0,1,0,2,0,1,1],[0,0,0,1,0,2,-1,1], [0,0,0,1,0,2,1,2],[0,0,1,0,2,0,0,1],[0,0,1,0,1,1,1,2],[0,0,1,0,2,0,2,-1], [0,0,1,0,2,0,2,1],[0,0,0,1,0,2,1,0],[0,0,1,0,2,0,0,-1],[0,0,0,1,0,2,1,2], [0,0,1,0,1,1,2,1],[0,0,1,0,0,1,1,-1],[0,0,1,0,1,1,2,1],[0,0,1,0,0,1,1,-1], [0,1,1,0,1,1,2,0],[0,1,0,0,1,1,1,2],[0,1,1,0,1,1,2,0],[0,1,0,0,1,1,1,2], [0,0,0,1,0,2,0,-1],[1,0,2,0,3,0,0,0],[0,0,0,1,0,2,0,-1],[1,0,2,0,3,0,0,0], [0,1,1,1,1,0,0,0],[0,1,1,1,1,0,0,0],[0,1,1,1,1,0,0,0],[0,1,1,1,1,0,0,0],] g=[Image.load("1.bmp"),Image.load("0.bmp")];z=Input; t=b[(c=rand Y=5+X=8+x=y=2)%27];q=(0..Y).map{(0..X).map{0}} def n(q,t,x,y,o=1)4.times{|i|q[x+t[i*2]][y+t[i*2+1]]=o}end def v(q,t,x,y)4.times{|i|return nil if q[n=x+t[i*2]][m=y+t[i*2+1]]==1||m==Y||n==X||n<0};1 end Window.loop{c+=1;n(q,t,x,y,0);(a=(b.index(t)+1)%28)%4<1?a-=4:0 v(q,b[a],x,y)?z.keyPush?(57)?t=b[a]:0:0;n=z.keyPush?(205)?1:z.keyPush?(203)?-1:0 v(q,t,x+n,y)?x+=n:0;v(q,t,x,y+1)?z.keyDown?(208)&&c%3<1?y+=1:0:(n q,t,x,y;t=b[c%27];x=y=2) c%50<1?v(q,t,x,y+1)?y+=1:0:Y.times{|i|f=1;X.times{|k|f=nil if q[k][i]==0} X.times{|k|q[k].delete_at i;q[k].unshift 0}if f};n q,t,x,y X.times{|i|Y.times{|k|2.times{|u|q[i][k]==u ?Window.drawEx(i*20,k*20,g[u]):0}}}}
115 名前:名前は開発中のものです。 mailto:sage [2009/12/08(火) 17:13:27 ID:feD2TaiO] 画像0.bmoと1.bmpだ