くまりゅう日記

もっと過去の日記
[.NET | BeOS | Blender | COLLADA | fossil | mono | monotone | NPR | OpenGL | PeerCastStation | Riko | Ruby | Silverlight | TRPG | XNA | ゲーム | ゲーム作り | プログラム | | 模型]

2012-12-10

日記

先週なにやったかな。特に何もしてないな。

土日はいろいろ消費しておわった。本読んだりゲームやったり。イベントに向けて何か作らないといけないんだが何を作ればいいのかわからん状態。あと2週間しかないとなぁ。

[Ruby][OpenGL] Rubyでゲーム作りどうしよう

ゲーム作るのをどうしようか悩んでる。

正直完全に止まってしまっている。Box2DをRubyに移植しようとか言い始めてやってるんだが、思ったより大変だった。C++とRubyじゃだいぶ違ってるのでBox2DJSをRubyに移植した方が簡単かもしれない。

なによりテストがないのがつらい。 テストがあれば最終的にテスト通るところを目標にすればよかったんだけど、無いので動かしてなんかおかしかったらどこがおかしいのか目星をつけてデバッグしなきゃいけないんだろ?まだそこまで行ってないんだが、今からデバッグを想像しただけでおなか痛くなりそうだ。

速度も問題だ。どうせ出来てもゲームに使える速度が出るとは全く思えない。最終的にはC#版なりJava版なりをラップして使うことになるだろう。じゃあ最初からそれ使えばいいじゃんという話だ。全く理にかなった話だわ。

じゃあなんでRubyで書いてんのかというとまた頭の悪い話で、単にRubyで書きたいから。Rubyでゲームなんてねーよとかいう話を聞くとぐぬぬと思ってしまうわけだ。だが確かに速度的に無理ってのはわかってるんだが、じゃあRubyはやめるか→Rubyでゲームを書く人は居ないので速くもならない→やっぱりRubyでゲームは無理だ、という悪循環になるのが嫌なんだよねー。悪循環もなにも循環する程人居ないんじゃないかという気もするが置いておいて。

そこでBox2Dとか移植するなりRubyでゲームがあるとこれを速くしようというベンチマーク的な使い方ができて、速くする人も出てくるんじゃないかと思うわけだ。 アプリが先か環境が先か的な感じで、環境を作るためのアプリを作ってあげましょうというお話。自分で書いてて思ったがすっげー周りくどいな。 なんでいつもこんな周りくどいことしてるんだ1

あともう一個の理由は.NETで書くべきかJVMで書くべきか決めきれていないので両方対応できるようにしたいというのがあるんだけど、これはまあ決めればいいんだよな。JVMの方がアプレットもいけるので良さそうなんだけどJava書けないし、C#の方が慣れてるんだよねぇ。MonoでのIronRubyがあんまりあてにならないんだけど。

Rubyの環境云々というのを抜きにして真面目にゲーム作るつもりなら、やっぱり描画等の大部分はC#なりJavaなりC++で書いてロジックをRubyで書くってのが速いし早いはず。結局のところゲーム作るのか環境を作りたいのかはっきりしろってことだなぁ。

たぶん、まずはゲーム作るところに集中した方がよさそうな気がする。 動く物作らんとさすがに俺もモチベーションが持たんのよね……。 ゲーム作るのも最初は動くの優先とか言ってた気がするので、その路線に戻ろう。

JVM+JRuby+lwjglでアプレットを睨みつつというのも気になるけどJava書けないので、C#+OpenTKで.NET/Mono+IronRubyベースでいく。 Box2DのRuby移植は一旦あきらめてC#移植の何かを使う。とにかくゲームとして動くの優先で!

  1. MacでPeerCast配信するためにPeerCast自体作り直したりしてるしな 

[ゲーム] マリシアス リバース

Vitaのマリシアスリバースをやった。PS3持ってないのでこれが初めて。

土曜日はずっとこれやってて8時間くらいで一通りクリアした。いいゲームだった。 こういうゲームって今でも作れるんだなぁ。そりゃまあ作れはするだろうけど、ちゃんと作って売れるんだな。日本で。

中身はアクションゲームで、ステージ選択するとボス戦から始まるんでまわりのザコを倒してエネルギー溜めてパワーアップしてボス倒しましょう、というのの繰り返し。ボス倒してクリアするとボスに応じた能力がもらえて、じゃあ次はどこのステージをクリアしに行きましょうかと。

前半の討伐編6ステージ、後半の再誕編6ステージの計12ステージだったかな。まあPS3版が討伐編として入っているので1・2が各6ステージと思った方がいいか。

好きなステージ選んでクリアするとパワーアップ貰えて、ある程度倒すとラスボスステージが出てきて…という流れは完全にロックマンだよなぁ。

ゲーム的にもそんな雰囲気はあって、といってもアクションとしては全然違うけど、どうやってクリアすればいいんだよとか思うような面があっても何度もやって上手くなればちゃんとクリアできるようになってたりとかはロックマン的な感じ。てきとうにやってクリアできたり、特殊武器使えば瞬殺なんてことはない。特に再誕編は討伐編に比べて難易度上がってるので適当に連打してるだけでクリアはできなかった。

再誕編のラスボスは特に何をどうやって倒せばいいのかさっぱりわからないくらい強くて困ったんだが、結局のところ普通に戦うしかないようで、何度も頑張ったら倒せた。ラスボス倒した時の頑張って倒した感はとてもよい。すげー強いんだけど頑張れば倒せるのを倒したって感覚いいよねー。

ストーリーもいい感じだった。といっても大したストーリーはないんだが、それにしてもゲーム中の語りはほとんどない。再誕編の最後あたりはなんかよくわからんことになってたが詳しいことは説明まったくない。説明がないあたりがいろいろ想像できてとてもいいね。BackStoryとしてストーリーが読めるモードがあるんだけどゲームが始まる前までの話だからな。再誕編は討伐編の後の話なのでバックストーリーも間の話ではあるんだが。

残念な点としては再誕編の強化が盾を除いてあんまり使えないところか。槍強化は使えそうだけど難しくて使えなかった。あ、でも拳強化はすごい使ったか。剣強化の使いどころはあるんだろうか。まあ再誕編は既にある武器を強化することになるから使いどころが難しくなるのは仕方ないか。

こういう10時間未満で終わって丁度いいくらいの難易度なゲームってあんまり無いんだよなぁとは思ったけど、1500円程度のゲームだからこのくらいのボリュームで出せてるのかなぁ。フルプライスのゲームだって無理にボリューム詰め込まずにこんなもんでいいんだぜ?世の中的にはそうでもないのかなぁ。まあマリシアスをフルプライスで買ってたかというと、プレイした後なら買ってもいいと断言できるけど、プレイ前だとさすがに買いづらかっただろうな。むずかしいもんだな。

[PeerCastStation] 1.0準備

1.0出す準備としていろいろ足りなかったところを埋める作業。といっても何やったっけかな……。

.NET4だけで起動できるようにしたのか。 .NET3.5で作ってたから.NET3.5が必要と思っていたけど、.configファイルにsupportedRuntimeというのを複数書くと.NET4でも起動できるようになるみたい。 しかし.NET4が入ってて.NET3.5が入ってない環境というのを作るのは非常に面倒で……まあ結局Windows8の初期状態で動けばいいんだけど、Windows8持ってないから試せない。

書くsupportedRuntimeの順番によって優先順位が変わるようなのでv4.0を上に持ってきてみたら.NET4で動いてる雰囲気。これでいいでしょう。しかしデバッグできなくなったので優先は3.5、というかv2.0.~ね。

GUIを終了させようとすると落ちるというのがあったのを修正した。単に終了させても落ちなかったが、チャンネルが残ってる状態で終了しようとすると例外が出ていた。再現が簡単でいいですね。

バグとしてはありがちな物で、チャンネルが消えた時や追加された時に通知されるイベントに登録したハンドラが、GUI破棄後に呼ばれてリストか何かを更新しようとして落ちるとかそんなん。ウィンドウが閉じる時にハンドラを外すようにして完了。C#のイベントって簡単に使えるわりには気をつけなくちゃいけないことも結構あって難しいよね。

ログの記録がメモリを喰いまくるのをなんとかした。今までログは全部記録してて、ファイルに書き出したりコンソールに出力する分にはよかったんだけど、GUIとかメモリに書き出してると際限なくメモリをくってやばいことになるので制限したかった。

GUIの方はTextBoxが行単位で設定とかできるのでこれを使っちゃう。新しい行が入ったら前の行を削除というのを毎回やるのは遅そうだけどどうだろうなぁ。

HTML UIの方が難しい。StringWriterに書き出してメモリに保持していたんだが、StringWriterじゃ先頭の行削除とかできない。というわけでリングバッファクラスを作ってみた。最初はリングバッファのバイトストリームを作ってみたんだけど、いざ使おうとしたらバイト単位じゃなくて行単位でリングバッファにしないとだめじゃんと気付いてリングバッファコレクションを作りなおした。行毎に分割してこれに入れていけばいいだろう。ということでできたっぽい。10000行だと表示するのに多かったので1000行にしといた。

1.0までにやっておきたかったのはこれくらいかなぁ。UserAgent名が長いのを変えてもいいけど変えなくてもいいし。

自動アップデート用にNetSparkle入れたい気はするけど今から入れるのはちょっと不安だな。まあ入れられたら入れるか。

ドキュメントやサイトもちゃんと書き直したい。こっちの方が重要だわな。

本日のツッコミ(全2件) [ツッコミを入れる]
_ taco (2012-12-18 14:03)

peercaststationってauto keepなんですよね。これって回線細いくせにザッピング厨だった場合、軽く逝ってしまうんですが、auto keepじゃなくする方法ってありますか? or 選択制にする方向はありますか?

_ kumaryu (2012-12-18 19:00)

ちょっと前にも同じこと聞かれた気がする……。<br>今無いんですけどその辺なんらかの形で制御できるようにするつもりです。<br>ポト0・帯域不足弾きみたいなのもないんでそれといっしょに上手いこと接続監視・制御ができるようになるといいなぁ。


ページのトップへ | トップ «前の日記(2012-11-28) 最新 次の日記(2012-12-18)» | 編集 | kumaryu.net by kumaryu