この土日はちゃんといろいろやった。いろいろもやってないか。しかし気温35℃とかなっちゃうのはそろそろなんとかならんだろうか。今年は残暑厳しくないって予報だったが。
唐突にゲーム作りたくなったが何で作ろうか。 STG作りたいんだが、自前で一から書くかUnity使うか。 どう考えてもUnity使うべきだわな。
そう思いながら描画コードを書き始めた。どうせすぐ飽きるだろうからな……。
最近Java使えばアプレットでゲーム動くんじゃねーかと思ってJRuby+JOGLで。 しかし三角形描くのに手間取って通常のウィンドウで表示するだけで寝る時間になってもうた。
一から描画コード書いてるとあれもこれも欲しくなって、それは大抵別プラットフォーム用に過去作った物だったり、ゲームエンジンなんかには当然載ってるような物だったりとほんと無駄なことしてるなーと思うけど、今回は欲しいなー程度の機能の実装はなるべくやらずに必要な物だけをOpenGL直叩きに近い感じでやりたい。そうでもしないといつまでも凝っちゃうので。
ゲームエンジン使わないのもそこがあって、簡単にそこそこの見た目が作れちゃうので逆に見た目をもっとよくしたくなっちゃう。単色立方体が灰色背景にぽろぽろ出てくるだけで充分なのに、簡単に見た目を良くできるからってやってみると単色の場所がしょぼく見えちゃうのでそっちを直したくなって。おっとゲーム作りって結局素材作りが全てですね!という状況に陥ってしまう。いや違う、素材は作りたくないんだ。見た目はしょぼくていいんだ。しょぼいので統一されてれば。
我慢しろよって?そりゃそうだが、できないから困る。アセットストアから買うにしても統一性が云々とかで探しまくったりとかピンとくる素材がないとか言いそうだしな。
なので一から素朴に書いて見た目に凝らないようにしてみたい。
てか結局のところ、どうせすぐ飽きるだろうけどな……。
PeerCastStationも進めております。
FLV配信しようとしていろいろと不具合があったのをある程度修正して、上手く配信できるようになった……かな?
PeerCastStationからの視聴は上手くいくものの、パッチを当てたPeerCastIMで視聴すると上手くいかないのでなにかとしばらく調べていたんだが、単にパッチが不十分でContent-Typeを正しく出力していないだけだった。真っ先に確認すべきところを忘れて数時間も無駄にするという。
パケットのスキップが起きまくってるので何かと思ったんだが、動画を10パケット分しか保持していないためにリレーより溜める速度が速くて落ちてしまっていたようだ。保持しておけるパケット数を大きくすればいいんだが、あまり大きくすると無駄にメモリ喰いすぎるので難しい。個数でなく容量か時間で制限かければいいんだけどな。容量で制限かけるとメモリの最大使用量は抑えられるが、高ビットレート配信の場合にはすぐにパケットが消えていって抜ける可能性がある。時間で制限かければ抜けなくはなるだろうが、高ビットレート配信の場合にはメモリを喰いすぎる可能性がある。個数で制限かけると……とにかくパケットサイズに左右される。
どっちにしろ個数で制限は筋がよろしくないな。時間と容量の両方で制限かけるのがいいかもしれない。どちらも充分大きければ問題はでないだろう。 とりあえずは個数を増やすだけにしておいて、こんどなおそう。
そんなところを直してなんだかんだで視聴もできるようにはなったが結構微妙だなぁ。 VLCではまず視聴できない。どうもちゃんとタイムスタンプを見ているようで、エンコ開始後3分時点のパケットが最初に飛んでくると3分待ってから再生しようとしているようだ。えー、それって随分微妙な動作じゃね。
Flashベースのプレイヤーで見ると無事再生できるんだが、プレイヤーの作りによるのかもしれないが結構切れまくる。一度切れるとキャッシュした分しか再生してくれなくなる。プレイヤーが悪いのか否かはよくわからん。
Flashベースのプレイヤーではセキュリティの関係があるのでPeerCast内でホストしているswfからじゃないとflv再生できない問題があるのもまためんどい。AIRベースでプレイヤー作るなり探してきて使えばいいのかもしれないけど、AIRをよく知らないのでちょっと困ったかな。
mkvでの配信は意外と上手くいったのでこれは問題なさげ。しばらくVLCが反応してくれなかったりするのがちょっと困るけど。頑張ればWebM配信もできるだろうきっと。エンコ重そうだ。
PeerCastIM用のパッチは作ったのでこれ投げておこう。FLVのプレイヤーはどうしたものか。FLVはFlash Screen Videoのコーデックが気になるので使ってみたいんだよなぁ。WMV9 ScreenはMacとかだと見れないし。