「ふにゃさん」に関する日記(2)

<前 次>

ふにゃさん

Gitの勉強をしながら開発中。
プラットフォーム非依存のマップオブジェクトや入力抽象クラス周り。
Portable ClassLibraryとSilverlightを使えるようにも準備中。

ふにゃさん

新バージョンをのろのろと開発中。
プラットフォーム非依存のルール部分とプラットフォーム依存の部分に分けて開発するという方針に。
あと、Gitの練習も兼ねています。

無題

ふにゃさん、これ以上開発する予定のなくなった1.xx系の作りかけの最新版をアップしました。
最新版といえども作りかけなので明らかにうまく動かない部分が多々あります。
ちなみに、WPFで作る予定の2.0.0は、比較的安定しているバージョンの最新版である1.13のソースコードをベースに作り直します。

TGWSAdminのRSS-Twitter連携機能が、RSSを更新するタイミングによってうまく動かないことがあったのを修正しました。
簡単に言うと、最新のRSSを以前ツイートしたものと同じかより古いと誤認識してしまうのが原因でした。
TGWSAdminもWindows7的にしていきたいですね。

ふにゃさん開発方針

WPFはベクターグラフィックを扱うのも得意だとか、ハードウェアアクセラレーションで高速に描画できるとか、そういったことを聞いたので、WindowsFormsではなくWOFで開発するというのもありかと思いました。
WPFで開発していると、ブラウザ上で動くというSilverlightにもほとんどコードの修正なしで移行できるという話ですし、充分なパフォーマンスが得られるのであればかなり良い選択かもしれません。

無題

ふにゃさんのグラフィックについて。
いつまでも320x240の画面サイズでもないだろうということで、ウインドウサイズに合わせてゲーム画面を大きく描画するというのを考えました。
しかし、320x240の画面をそのまま拡大しては画像が荒くなってしまいます。
そこで考えたのが2つの方法。
1つは、SVGなどのベクターグラフィックを利用する方法。
これならば解像度を気にせず画面サイズに合わせて自由にきれいに拡大縮小できます。
単純なふにゃの造形とも相性抜群です。
しかし、SVGを読み込み表示するノウハウを私はまったく持っていませんし、それらしきライブラリの導入に成功したこともありません。
つまり、かなり難しそう、ということです。
もう1つは、あらかじめ大き目のビットマップを用意しておいて、実行時に縮小するという方法。
縮小アルゴリズムにもよりますが、小さい画像を拡大するよりはきれいに表示できますし、実装も比較的簡単です。
問題は、ファイルサイズおよびメモリ使用量が大きさに比例して増大するということ。
まあ、最近のパソコンなら大きな画像でもまったく平気かもしれませんが。

無題

ふにゃさん開発中。
まだ地味なインターフェース作りです。
アニメーションは再生状態がそれぞれ変化するけどアニメーションの元データ自体は変わらない、そのあたりもうまく表現したいものです。

無題

ふにゃさんの開発中。
描画系のインターフェースを構築しています。
アニメーションを静止画と同じように扱いたい、描画先によって適切な描画モードが選ばれるようにしたい、などと考えているとなかなか難しいです。

ポケモンホワイトで、テラキオンを捕まえました。
あまりにも見つからないのでブラックにしかいないのかと思いましたが、なんとか見つけることができました。

GChatにクロスサイトスクリプティングの脆弱性が見つかりました。
簡単に言うと、誰でもチャット内に危険なコードを埋め込めるということです。
もちろんその具体的な方法は述べませんが、早急に問題を修正しようと思います。

無題

ふにゃさんのgitリポジトリ作りました。
githubで公開しています。
https://github.com/mifumi323/funya3

無題

アンパンマンDBの最新っぽい情報群で、WebNewtypeの情報を正しく取得できるようになりました。
AnimeNewtypeチャンネルから変更されたのに伴って正しく情報を取得できなくなっていましたが、これで解決です。
WebNewtypeはアンパンマンの今後の放送予定をかなり先まで公開しているのでとても便利なのです。

ふにゃさんについて、グラフィック、サウンドに関しても、少なくとも最初のうちは.NET Framework単体でどうにかなるような実装にするつもりです。
DirectXとかTiMidityとかをバリバリ使った実装はVC++を使わないと難しそうで、それはとても面倒な作業になるため、それよりまず動くような実装をしてしまいたいのです。

無題

ふにゃさんについて、BGMは引き続きDirectMusicにしようと思っていたのですが、どうにもWindowsVista/7の64bit版では既にサポートされていないそうです。
64bitがそれなりに広まってきている昨今、64bit版には対応させませんなんていうのは通用しないし、たぶん将来の私が憂き目を見ます。
64bit版Windowsに対応しているかどうか分かりませんが、Timidityというのはどうでしょう。
演奏データをリアルタイムにいじりたいので自力でカスタマイズしてコンパイルする作業が必要になりそうですが。
グラフィックについてはサウンド以上にいろいろなライブラリが転がっているのでまああまり問題はないでしょう。
フルスクリーンについては枠なし最前面最大化でなんとかしようかと思っています。

無題

ふにゃさんの開発について考えたこと、調べたこといろいろ。
・.NET Framework 2~4はWindowsXP~Windows7まで幅広く対応。4を選ぶのがよさそう。
・VC++2010EEはあまり入力補助してくれない。ヘッダファイルとソースファイルに分かれている上入力補助も少ないとなれば開発時間やモチベーションが足りなくなる。
・SilverlightはMacでも動くらしい。可能な限りプレーンなC#で書いていればブラウザ上で遊べるふにゃさんとかもできるかも?
・プログラムはいくつかにレイヤー分けする。OSやミドルウェアのAPIを直接叩くレイヤー、APIを直接用いないが各種の高度な処理を行うレイヤー、ゲームそのもののレイヤーなど。
・オールインワンのゲーム作成キットは使わない。キット作成者の思惑通りのものしか作れなくなる。
・個別の機能を実現するためのライブラリは迷わず使う。
・WindowsVista~7の64bit版はDirectMusicをサポートしないらしい。脱MIDIはほぼ必須要件になってしまった。エフェクトかけやすかったのになぁ。

無題

ふにゃさん次期バージョンの開発方針考え中。
そもそもゲームのルール自体は実装によって不定になることがないようどこかのバージョンで明確化したはず。
明文化はしていないけど。
となればC++からC#に移植してもバグが発生する可能性は低いはず。
少なくとも画面はVC#で組むつもりだから、ゲーム内容も同じVC#で組めたほうが都合が良い。
ただ、マップやステージファイル処理の実装は変更する可能性が高い。
とにかく、ゲームの実装上何が変化して何がそのままになるかを明確に分けないと

無題

ふにゃさんをどのOSに対応させるか決めるため、調査しました。
結果、今年に入ってから今朝までの統計で以下のようになりました。

Windows XP:1950
Windows 7:1545
Windows Vista:989
Windows 2000:72
Windows 98:48
Windows XP(64bit):14

私の使っているVistaが少なすぎて泣けてきます。
XPのシェアがいまだにかなり高いというのも驚きですが、逆に考えると、既に半分以上がDirectX10を使えるVista以上のバージョンとも言えます。
Direct2DとかDirectWriteにも結構興味があったりするのでどっちに対応させるべきか…。
少なくとも、XPとVista用を別々に実装することはないと思います。相当骨が折れるので…。

ふにゃさん2.0

大分前から、ふにゃさんを大幅バージョンアップするといい続けていました。
しかし、開発が難航し、ほかの事に忙しくなり、開発環境も新しくなっていき、従来の環境でのふにゃさんの開発が難しくなってきました。
というより、もうできる気がしません。
なので、いっそのこと新しい開発環境でリメイクすることにしました。
使う開発環境は、以前と同じC++を使えるという理由でVisualC++2010。
ゲームのルールに関する部分は元のコードをほぼそのまま流用。
グラフィックとオーディオに関しては書き直します。

無題

TGWSAdminに問題がありました。
設定変更の一部が反映されないのです。
さてどうしたものか。

そういえばふにゃ1のステージをふにゃさんに移植してくれた人がおりまして、洞窟ステージ各種とおまけステージ2を移植してくれました。
ちなみにおまけステージ1はふにゃさんでは構造上全くクリア不可能です。

無題

う~む、ふにゃさんの坂道はやっぱり無理そうなのです。
やっぱり影響範囲がとんでもなく大きいのです。
ふにゃの動きの変更は当然として、他のキャラクターたちも全部動きを作り直さなきゃいけないんですね。
敵キャラたちはみんな何かしらの形でマス目に縛られた動きをしていますし、氷の息の反射は計算が大変ですし、なんというか、新作を作ったほうが早いと思えるぐらいに大幅な変更が必要なのですよ。
なんというか、ゲームの根幹に関わる大きな変更になるのです。
折角坂道のマップチップを作ったのですが、坂道は中止にせざるを得ないようです。

1281625116.gif

無題

ふにゃさんの坂道のマップチップを作っています。
坂道は45°以上だと顔がつっかえて上れないので、割りと浅い角度の坂道になります。
通常ブロックと坂道の接続を作るのは面倒なのですが、坂道の機能を実装するとなると更に面倒なことが山積みなのです。

ミディビの記事削除をまじめに実装しました。
レス削除は実はまだできないのですが。

無題

のんびりナマライザのアイコンが他の.NETアプリと同じになっていて紛らわしいので、専用のアイコンを作っています。
ただ、1から描くのは大変なので、ふにゃさんからウナギカズラの絵を流用しています。
なぜウナギカズラなのかというと、ぬぼーっとした感じがナマライザのイメージと合っていたからです。

ボンボン占い師

オプーナやってました。
ストーリー的には変装を解くところまで。
今回は世界の芸術めぐりや行けなかったところをいろいろ回ったりしていました。

そういえば、まだできてなかったなーとなんとなく思ってふにゃさんのステージ14のページを作ってみました。
せっかくふにゃさんに久しぶりに触れたので、ちょっとBGMもいじくってました。

<前 次>