Ruby でなんかゲームつくる
■ このスレッドは過去ログ倉庫に格納されています
Ruby でなんかゲームをつくろうと思います。
開発環境は Windows XP、Ruby 1.8.6 (MyGame) です。
ゲームの制作は基本的に一人でやるつもりです。
また、1 はあまりゲームを作った経験がありません。
今までに作ったことがあるのは
ブロック崩しとかテトリスとかライフゲームくらいです。
なので面白いものができる保証はありません。
とりあえずのまとめサイト > http://www7.atwiki.jp/rubydenanka/ さて、スレを立ててはみたけど何を作るかは全然決まってないという…。
まずはまとめサイトの形を整えようっと。 おわ。
>>3 はそっちに移動しなさいってことか。
たしかにゲーム制作の報告なら向こうのスレでやる方がよさそう。
Ruby でゲーム作ってる人ってあんまりいないみたいだから
こういうスレがあってもいいかなと思って立てたんだけど
それなら Ruby でのゲーム開発について話すとか
そういうことを目的にしないとダメですよね。 とりあえずスレをつぶすかどうかはまだ様子見でゲーム作りはじめた。
リアルタイムストラテジーが目標。
目標が高すぎるような気がするので色々けずった方がよさそうだ…。
キャラクター1人がクリックした箇所まで移動するっていう一番基本的なとことはできた。
MyGame のアニメーションの使い方も理解できた。たぶん。
次なんだろ…。落ちてるアイテムを拾えるようにしてみようかな。 SDLか。クロスプラットホーム前提だと見守りたいスレ
MyGameって実際どんな感じですか だんさんのだっけ
サイロスさんのは全部作り直したくなる欲求で満たされて窓から投げ捨てちまった 配布は exe 形式で、と思っていましたが
Ruby/SDL が動作する環境であれば UNIX などでも問題なく動くと思います。
サイロスさんのっていうのは Miyako のことですよね。きっと。
MyGame は Miyako よりずっとシンプルだと思います。
といってもおれもまだ使いはじめたばかりなのでこれは率直な感想です。
とりあえずできるところまで MyGame でやってみようと考えています。
そういえば MyGame の名前が出てるのにリンクがないのに気付いたので貼っておこう。
ttp://dgames.jp/ja/projects/mygame/ 操作は基本的にマウスでする。
キーボード操作もそのうち追加するかもしれない。
複数のキャラを範囲選択できるようにした。
左ボタンを押してドラッグすると範囲選択できる。
そんで選択したキャラには吹き出しのアイコンが出るようにした。 そっか。
制作過程のリンクを貼っておけばいいんだ。
ということで今日から貼っていこうと思います。
あんまりここ見てる人いないと思うけど
>>7 や >>10 のような方もいるみたいだしそれを励みに地道に続けていきます。
今日が2日目
http://www7.atwiki.jp/rubydenanka/pages/15.html のんびり継続してな
ゲ製的にRuby需要がどんくらいあるか知らんけど、
潜在的需要は少なくないと思うよ >>12
はい。ありがとうございます。
リアルタイムストラテジーだと漠然としてたので
ロードモナークを目標にすることにしました。
ロードモナークオンライン
ttp://www.falcom.co.jp/monarch/index.html
研究がてらちょっと久しぶりに遊んでみようかな。
あとやっぱりマップエディタが必要になってくると思うので
自分用の簡単なエディタを作ろうと思います。
マップのサイズは最初は固定でいいや。 古いるびまにマップエディタの簡単なサンプルがあるよ
http://jp.rubyist.net/magazine/?0003-RubyTkMovement
tkによるサンプルだから汎用性高いとオモ
既にご存知でしたら失礼 おっ、おお!
そうか tk ですか。
ちょっと見てみますね。
ありがとうございます。
実はマップエディタも MyGame(Ruyb/SDL) で作ろうとしてました。
っていうか作りはじめてました。ほんの少しですが。
当たり前のことかもしれないですが、MyGame はそういう用途には全然向いてませんでした。 教えてもらった Tk のページ見てみました。
ソースもちょっとだけ読んだ。
あとそのままじゃ動かなかったから ActiveTcl 入れた。
参考ページ
ttp://www4.ocn.ne.jp/~holmes17/html/rubytk.html
tk84.dll が必要らしいので、ActiveTcl は 8.4.* の中で一番新しい 8.4.18 を入れた。
でもマップエディタのサンプルがうまく動かない。
それに期待していたものとけっこう違った。
Tk でマップエディタを作るには Tk の使い方を覚えないといけないけど
その学習コストを考えたら、MyGame で作った方が早そうなのでやっぱり MyGame で作ることにした。 >>14
ってことなのでせっかく紹介してもらったのに申し訳ないっす! マップエディタの仕様を大ざっぱに決めた。
左クリックでチップを選択したり置いたりする。
右クリックは基本はスポイト。
でもキーボードから機能切りかえができるようにするかも。
例えば D を押したら消しゴムになるとか。
実装はチップを選択するところまでできた。
ttp://www7.atwiki.jp/rubydenanka/?plugin=ref&serial=4
マップにチップを置けるようになった。
でも重い!
原因として思い当たるところがあるので何とかしたい。 漏れもちょっとずつMyGameでテトリスを作ってたりするけど
ほんとシンプルというか機能が少ないというか。。
まあ足りないところはSDLを叩けばいいんだろうけど。 お。住人が増えてる?
こんばんは >>21 >>22
今 MyGame のソース読んでますがほんとに機能はしぼられてますよね。
MyGame では画像の一部を切り出すメソッドが用意されてないので
MyGame の Image クラスを少し拡張しようかと思ってます。
マップエディタを作るのに画像の切り出しをアニメーション機能で代用させたら
メモリをすごい喰ってしまうようになって困りました(´・ω・`)
テトリスがんばって!
まとめサイトのアップローダとかよかったら使って下さい。 とりあえずすごいアドホックな拡張ができた。
おかしなところが出てこなければいいのだけど…。 キャッシュにも対応させた。
たぶんこれでいける。
module MyGame
class PartialImage < Image
def initialize(filename, x, y, w, h, *options)
super(filename, *options)
key = "filename-#{x}-#{y}-#{w}-#{h}"
unless @@image_cache[key]
@image = @image.copy_rect(x, y, w, h)
@@image_cache[key] = @image
end
@w = w
@h = h
end
end
end
うわダメだ!
key がおかしい。
filename は #{filename} の間違いだ。 やっぱりキャッシュちゃんと取れてなかった。
何回ミスってるんだ…。
今度こそ。
module MyGame
class PartialImage < Image
def initialize(filename, x, y, w, h, *options)
super(filename, *options)
key = "#{filename}-#{x}-#{y}-#{w}-#{h}"
if @@image_cache[key]
@image = @@image_cache[key]
else
@image = @image.copy_rect(x, y, w, h)
@@image_cache[key] = @image
end
@w = w
@h = h
end
end
end
拡張はうまく機能しているみたい。
アニメーションで代用していたところを
PartialImage を使って書き直したらメモリ使用量が半分以下になった。
それでも 20MB。多い…?
あとチップを置いてるときに CPU 使用率が 90% くらいいく。
たくさんのチップイメージを render してるせいなのかも。
今度は画像の一部分を書きかえる拡張がいりそうだ。 その継続ではなく。Rubyだからって。わかったよ言い換えるよ。
ゆっくり継承してな。
だからmix-inではなく。 >>29 >>30
ん?
何を言ってるのかよく分かりません。
マップエディタを作ってたら細かいデザインなどが気になりだした。
後回しでいいようなものなのに…。
優先度を考えながらやるようにしなきゃ。
>>30
なんだ。コンティニュエーションのことじゃないのか。
うっかり勘違いしてた^^ そういや、しばらく前にもRubyのスレが立ったけど
全然レスがなくて、すぐ落ちちゃったな。
今回は1が頑張ってくれ。 >>33
そうなんですか。
消えないようにがんばりたいです。
4日目
ttp://www7.atwiki.jp/rubydenanka/pages/19.html
スクリーンショット
ttp://www7.atwiki.jp/rubydenanka/?plugin=ref&serial=5 CPU 使用率を 20% あたりにまで落とせた
マップのナンバーの表示をプリミティブな描画とフォントの描画で
毎フレーム更新してたのが問題だったみたい。
今は自前で用意した画像になってる。 マップをロードしたときの描画がうまくいかないよー。
更新が反映されてない。
なにがいけないんだろ。 やっとなんでうまくいかないのか分かった。
MyGame::Image#load は新しいサーフェスを作るときに
自動的にキャッシュを取っていて
以降同じファイルを load する場合は前回作ったキャッシュを参照する。
そう、キャッシュなんだ…。 やっと必要最低限の機能をもったマップエディタができました。
セーブがおかしいなぁと思ったら単純な計算ミスだった… orz
>>38
Windows XP SP2
Celeron M 360, 1400MHz
メモリ 512MB
VRAM 64MB >>40
そんな恥ずかしいこといえません!
5日目
ttp://www7.atwiki.jp/rubydenanka/pages/20.html
スクリーンショット
ttp://www7.atwiki.jp/rubydenanka/?plugin=ref&serial=6 スポイトの修正をしたり、消しゴム機能を実装してる間に
マップエディタの操作方法は
マウスとキーボードの両方でやりたいと思うようになった。
左手はフォームポジションで右手はマウス。
マウスの左クリックは "チップを置く" で固定で
右クリックの機能をキーボード入力で切りかえる。
右クリックに割りあてる機能は多くても 4 つまでにしたい。
今考えてるのは、スポイト、消しゴム、塗りつぶし、コピー。
スポイト … カーソル下のチップを左クリックで置くチップにする。
消しゴム … カーソル下のチップを削除。
塗りつぶし … カーソル下を含む閉ざされた範囲を塗りつぶす。
コピー … 範囲を選択して選択されたチップを全てコピーする。
以上が構想第一案なんだけど
これに加えて、チップセットからチップを選ぶ操作も
キーボードでできた方がいいかなぁとか思いはじめてる。
マップにチップを置いてるときに
他のチップを選びにチップセットまでカーソル動かすのがめんどくさそうなので。
いやスポイトがあるから別にいいのかなぁ。 あ、書き忘れてた。
マウスの真ん中クリックはペースト専用にしようかと思ってる。 構想第一案は実装してみたら微妙だった。
モード切りかえが微妙。
スポイトだと思って右クリックしたら消しゴムだったとかの誤爆が多い。
一応視覚的に確認できるようなインターフェースにしたけどそれでも微妙だった。
こうなったら特定のキーを入力している間だけモードが切りかわるようにしようと思う。
あと、消しゴムとかは、右より左の方が使いやすかったので
モードが切りかわるのは左にしようと思う。
右はスポイト固定にする。 とりあえずexe実行したらエラーになった。
「SDL_image.dllが蜜からなかったため、このアプリ(ry」
これって自分の環境にMyGameが入ってないと動かないの? >>47
おれの環境では動きました。
ちゃんとテトリスでした!
でも同封されてる dll が足りないです。
>>48 さんがエラーになっちゃったのはそのためでしょう。
Ruby/SDL の dll を全て同封すれば動くようになると思います。
MyGame の本体から dll ディレクトリを丸ごともってきちゃうのがお勧めです。
参考
ttp://www7.atwiki.jp/rubydenanka/pages/12.html ちなみに、dll は全部で 15 個です。
全部あわせて 4MB くらいあります。
必要ないのは削れるかもしれないですが
全部入れてしまうのが無難だと思います。
キーを入力しているときにマウスの左ボタンのモードが変わるようにした。
塗りつぶしモードも実装した。 ああ、いらなそうなの削ってるうちに必要なのも削ったのか・・
ごめんなさい
http://www.dotup.org/uploda/www.dotup.org3685.zip.html
必要(そう)なDLL全部同梱
5MBくらいでパスはmygame
exerbでexe形式にできるのはいいけど、でかいな・・ >>52
ですよね。
圧縮してもけっこうでっかい…。
dll と fonts は変わることないと思うので
それだけパス通しておいてもらえたらお互い楽かもですね。 >>53
そうですな。
まあ最近はみんな結構高速なネット環境を持ってるので、この程度なら
まあ我慢してもらえる気もするけれど。 >>54
そうだと信じたい!
6日目
ttp://www7.atwiki.jp/rubydenanka/pages/21.html
スクショ
ttp://www7.atwiki.jp/rubydenanka/?plugin=ref&serial=7
なんかコピー機能は別になくてもいいような気がしてきた。
もちろんあった方がいいけど。
アンドゥとかも欲しいけどそろそろゲームの方に取りかかりたいなぁ。
マップエディタは明日でとりあえず完成ということにして
不便を感じたときにチョコチョコ直していこう。 Star Ruby 使ったらどう?
ttp://starruby.info/ ↑ 言い忘れた。サンプルにテトリスあるよ。見てみるといいかも。 >>56-57
透視変換描画凄いなw
せっかく詳細なレビュー書いてくれてるんだから、
Rubyに興味のある連中が集まってるスレに貼らないのは勿体無い。(という事で勝手に転載すr
各種ライブラリ紹介スレ2
ttp://pc11.2ch.net/test/read.cgi/gamedev/1177886529/247 > 247 名前:名前は開発中のものです。 age New! 投稿日:2008/03/18(火) 04:58:50 ID:T0UZCOiP
> 評価日:2008-03-13
> 公式:http://www.starruby.info/
> とっつき:◎
> ドキュメンテーション:○(テトリス・飛空挺デモなどあり)
> ライセンス:○ MIT(SDL込みでLGPL)
> 2D対応:◎
> 3D対応:×
> 日本語対応:OK
> 機能:◎
> 拡張性:◎
> 速度:○
> 日本語サイト:◎ (Rubyベースなので、基本はRubyサイトを参照)
> マルチプラットホーム:◎
> 私見:
> SDLをベースとしたRubyの拡張ライブラリ。
> Win, Mac, Linuxのほぼすべてのプラットフォームで動作。
> ハードウェアに一切依存せず、すべてソフトウェアによって処理しているのが特徴。
> 基本的にすべての描画が、『テクスチャの上にテクスチャを書き込む』ことにより実現されているため、非常に柔軟で分かり易い。
> Rubyの恩恵をもろに利用できるため、ネットワーク対応なども容易。
> 感覚としては、RPGツクールXP・VXのRGSSに近い。
> 描画も結構速く、ラスタスクロールなども容易に実現できる。
> 2Dゲームライブラリとしてはおそらく唯一の透視変換描画機能があるため、
> FF6の飛行船、マリオカートのコースのようなものが実現可能。
> 画像は PNG、サウンドはOGG・MP3・WAVに対応。
> シンプルかつコンパクトなソフトウェア設計方針のため、
> 覚えることが少なく、学習が容易なのも特徴だ。
>
> 一言:
> 「とにかくRubyでゲーム開発できるのは効率的」 >>56->>59
おー。紹介ありがとうございます!
Star Ruby は試してみたことがあります。
ほんのちょっと触っただけですが。
テトリスのソースがあるのも知ってました。
MyGame での開発が行き詰まったら使ってみようかなぁ。
とかいって更新が2日空いてるわな…。
ちょっと他のことに時間をもってかれていて
マップエディタが進んでない!
今日はがんばろーっと。 マップエディターはひとまず完成ということで
ソースと exe を同封した zip ファイルをアップしました。
http://www.dotup.org/uploda/www.dotup.org6174.zip.html
興味のある方は試しに動かしてみて下さい。
もし動かなかったらごめんなさい(´・ω・`)
その場合はコメントで教えて頂けると助かります。 おや?DLLは同梱されてるけどエラーが出るな。
dllフォルダを検索してないみたいなので
*.dll を mapeditor.exe の所に持ってきて正常起動を確認。 >>63
確認して頂いてどうもありがとうございます。
dll ファイルはディレクトリの中に入れていたはダメなようですね。
勘違いしていました。
exe と同じパスに移動させてアップロードし直しました。
http://www.dotup.org/uploda/www.dotup.org6433.zip.html なんかウイルス検査が反応しちゃうな
Exerbが原因?? exerbのコアを誤検知するときがあるみたいだね。 >>67
>>68
>>69
すみません。います。
でも開発は全然進んでいません。
他のことばかりしていました。(´・ω・`)
TDD(BDD) のことが気になって
先にそっちを勉強しておこうと考えていたのですが
手があまり動いてないのでこれは言い訳ですね。
停滞していて申し訳ないです。 ■ このスレッドは過去ログ倉庫に格納されています