funyan
https://github.com/mifumi323/funyan
とりあえずリポジトリ作成。
オープンソースとマルチプラットフォームの2点のコンセプトは前回の移植プロジェクトから引き継いでいこう。
https://github.com/mifumi323/funyan
とりあえずリポジトリ作成。
オープンソースとマルチプラットフォームの2点のコンセプトは前回の移植プロジェクトから引き継いでいこう。
funyakの開発がちっとも進まないので、そのつなぎとしてふにゃさんの.NET移植計画「funyan」発動。
以前やろうとしていたプロジェクトもあるのですが、そっちは理念が先走り過ぎてfunyakでいいじゃんって状態になっていたので破棄。
nは.NETの意味と、ナンバリングタイトルの移植である意味を持たせています。
今回は、極力単なるベタ移植で行きます。
第3作の動きも参考に、funyakのふにゃの動きの調整。
しゃがむ前にジャンプの急降下と、もっとしっくりくる空中挙動を実現したいのです。
ちなみに、funyakでは、ジャンプの跳び上がり中に、下キーでジャンプキャンセルできます。
そろそろfunyakの意味を明かしましょうかね。
二つ意味があるのですが、そのうちの一つを説明します。
「ふにゃけい」の読みの通り、「ふにゃ系」です。
今まで、ふにゃシリーズは直系3作、ふわふわふにゃシリーズは3作+亜種数作、出してきました。
3作目のふにゃさんは、キャラクターや要素も増え、ふわふわふにゃの要素の一部取り入れられました。
とても思い入れの深い作品です。
しかし、思い入れが深い分、不満点も多々残りました。
貧弱なUIを補うためVB6で作られた起動プログラムが必要不可欠だったこと。
主人公の基本的な動きの時点で不自然な動作が多数存在していたこと(風への反応など)。
見た目からわかりにくい仕様が多数存在していたこと(ヒートゾーンへの反応など)。
ふにゃ以外のキャラクターの、地形や他のキャラクターに対する反応が薄いこと。
画面が狭かったこと(歴代最小)。
ステージを選びにくかったこと。
名前の中の1文字を反転させるとたちまち卑猥かつだらしなくなってしまうこと。
上記および他にも多々不満点があったのに、それを仕様と割り切って決定事項として正式リリースしてしまったこと。
いくつかはバージョンアップで直せる可能性もあったでしょう。
しかし、今も残る問題の大部分は、修正してしまうと現存するステージの多くが深刻な影響を受けてしまいます。
仕様変更によりリプレイが正しく再生されなくなるのはもちろん、最悪、プレイしてもクリア不可能になる可能性もあります。
逆に、易しくなりすぎて、ステージのコンセプトが崩れてしまうこともあるでしょう。
バージョンアップで修正するのは根本的な解決にはならないのです。
一つの解決策として、ふにゃさんを「リメイク」することも考えました。
実際、それを試みたリポジトリがGithubに残っています。
しかし、たとえリメイクしても、同一作品であるならば、重要な部分はそのままでなければいけないわけです。
ところが、ふにゃさんには、重要な部分にも大きな欠陥があります。
それを変えなければ作り直す意味はありませんが、変えてしまえばもはやリメイクとは言えません。
2作目のふにゃふにゃは、二人で対戦できたり、坂の要素が出るなど、新しいことを試みた意欲作でした。
しかし、問題点はふにゃさん以上に多数あり、もはやバージョンアップでどうにかなるものではありませんでした。
そのことは以前から判明しており、いずれリメイクしたい旨も明記されていました。
でもリメイクでどうにかなるものではないことは上述の通り。
あれも直したい、これも直したい、でも、今までの延長線上ではそれはできない。
ならばとれる手段は、新作、これ以外にないでしょう。
新作にする動機はもちろん不満点の解消だけではありません。
旧作の開発当初は考えもしなかったけど、今はやりたいと思うこともたくさん出てきました。
Webブラウザ上でのお試しプレイ。
Windowsパソコン以外でのプレイ。
ステージファイル作成のゲーム本体への統合。
ステージファイル共有のゲーム本体への統合。
新しいキャラクターの追加。
新しい遊び方の追加。
自由なサイズでのプレイ。
自由な発想でのステージの作成。
オープンソースでの開発。
これらを実現するためには、旧作をいじるのではなく、全く新しく作る必要があるでしょう。
しかし、これらを単一のソフトウェアで実現するのは無理があるでしょう。
Windows用ソフトウェアはWebブラウザでは動きません。
新しい遊び方の中には、ふにゃ本来の遊び方とは大きく異なるものもあってよいでしょう。
オープンソースにすると、コードの秘匿ができなくなり、一本のゲームとして完成させるうえで不都合が出てきます。
さらに言うと、オープンソース化するということは、ソフトウェアの亜種の存在を認めるということにもなります。
新作への理想を叶えるためには、一本のソフトウェアでは足りないのです。
しかし、たとえ複数のソフトウェアを開発したとしても、それらすべてが同じ目標に向かうとすれば、それらすべてのソフトウェアに共通する芯があることでしょう。
その、ふにゃ系の複数のソフトウェアの芯となるべきものが、funyakという共通基盤なのです。
funyakとは、ふにゃ系の新作を作るための共通基盤を意味します。
そして、本当の新作は、funyakを使って作られます。
公開しました。
それとは関係ないですが、サイトの内部動作をちまちま新しくしていっています。
うまいことキャッシュが利くように、というのが主要な部分です。
リメイク途中のふにゃさんを放り投げて何らかのプロジェクト進行中…。
https://github.com/mifumi323/funyak
ストアに配信するには結局有料の開発者アカウントが必要なんですね…。
アカウントだけ先にとっておこうかと思ったけど、アカウントのほうもとりあえず様子見ですね。
8の開発はVS2013Communityでもできるけど、8がないのでやっぱりテストできないという…。
今後作るソフトは環境ごとの差がないロジックと環境ごとに異なる部分を明確に分けて作って、新しい環境向けに提供してもしなくても大丈夫なように作るのがいいかもしれませんね。
とりあえず、ふにゃさんの新バージョンはその方向性で作っていくつもりです。
ベクタ画像は元々非対応だったので、ラスタ画像でゲームを作ってその後余裕ができたら考えるという方向で。
そんなことより、今考えている描画システムでは、コントロールをものすごい数置きまくるので、コントロールの配置と削除のコストが結構バカにならないのです。
ということで、極力コントロール数を増やさないという方向で、コントロールはなるべくリサイクルするような方法を考えています。
ほとんどの部品はRectangleをブラシを変えて配置するだけなので、リサイクルシステムは割りと作りやすいのではないかと思っています。
画像の扱いについて研究中。
ベクタ画像はもしかしたら使えないかもしれない…。
描画関連を作成中。
ブラウザ上で直接遊べるようにSilverlightを使っているのですが、ダウンロード版も継続したいなと考えていまして、両方に対応できるように、環境依存の部分と共通の部分を分けて作っておく必要があるのです。
ダウンロード版は昔ながらの方法が使えて多少は無理も利くので後で作ることにしておいて、大変なほうのSilverlightを重点的に作っています。
RPGツクールやウディタとかのマップチップ素材も使えるようになったらいいなーとか考えています。
そうなるとマップチップの概念がかなり変わってしまいますが、リメイクですしね。
リメイクついでに、
コンティニューやステージセレクト時に支払うバナナの数を変えてみようとか、
マップ中にチェックポイントを作ってミスした後に途中から再開できるようにしたいとか、
看板みたいにメッセージを表示する機能を作ってみたいとか、
思っています。
メインループの3割ほど解読。
制御構文は先に解読完了したので、ある程度の流れはつかめるようになりました。
この解読結果を、何らかの形でふにゃさんに取り込みたいなーと思っているんですね。
メインループ処理を作成。
ここのところは元々構想があって、ゲームループと描画ループを別のスレッドに分けるつもりでした。
描画でもたついてしまうと、ゲーム全体までスローになってしまうためです。
このような場合は、描画は遅いままで、ゲームループだけは別スレッドで通常の速度で動くようにしておくと、見た目はカクカクになってしまうけれど、ゲーム進行は遅くならずに済むのです。
また、描画を実際に行うことが可能なメインスレッドは、一定間隔でイベントが呼び出されるという形のループが元々備わっていて、それを使うしかなかったので、こちらのゲーム処理の間隔と合わせにくかったという事情もあります。
このあたりは、スレッド間の通知も使って、それなりにうまく実装できたと思っています。
Silverlightでできることを色々試行錯誤していました。
描画回りが昔と同じやり方ではできなくなっていて少々面倒ですね。
新開発環境に移行。
やりたいことは決まっているのにSilverlightの作法になんぞ頼っていたら馬鹿を見そうなので、なるべく扱い慣れた方法で作っていこうと思っています。
ステージ投稿機能などもゲーム本体の機能に統合してしまおうかと考えています。
ドラクエ10、春イベント後編。
スラサポなしのァォィョッュでもクリアできた。
ふにゃさん。
Expression Designで画像を作れないか調査中。
はたしてベクター画像が使い物になるかどうか…。
ふにゃさん。
画像表示周りを試行錯誤中。
今は丸を表示しまくるテスト中。
ドラクエ10。
春イベント後編スタート。
火力インフレが発生した。
グラフィックの表示なども調べています。
まずはゲームっぽい画面が動くところまで行かないとSilverlightで作れるかどうかの検証さえできないのです。
タイマー処理とバインディングなど。
コントロールのプロパティ同士のバインディングは簡単だったけど、それ以外はどうすればいいんだろう?
Silverlightで色々お試し中。
そもそも画面の構成からして方向性が違うのでSilverlightの作法に慣れるのも必要そうですね。