Variable Lynxのゲーム制作日記
FC2ブログ

2020 04123456789101112131415161718192021222324252627282930312020 06










現状4

今日は更新しないつもりだったけど、いくつかの問題に対する決断をしたので更新です。
gennzyou4.png
改変作業何日目かわすれたけど、一日1シーンの改造を目指してましたが、モンスター生成画面で早くも断念。

ソースコードを上から順番に眺めてたらバグを一つ発見して修正に手間取ってしまった。
ここは変数も沢山使ってるから数時間は掛かる。
動画見ながらやってますしねw

さて、今日はある決断をしました。
いくつかあるんですが、まず一つ目はとにかく早く作る。
そのために妥協する部分をある程度増やします。
体調と相談しながらやるので完成日は未定だけど……

二つ目は2Dや3Dのランダムダンジョンはやめる。
作者手作りのダンジョンの方が絶対に良い自信がある為。
ダンジョンを考えて作るのは手間がとにかく掛かるので嫌だったけど、
作者のゲームを面白くするにはランダムはダメ。絶対。
今作はローグライクとかじゃありませんしね。

三つ目は依頼の汎用性をなくす。
制作速度の問題もありますが、各依頼の専用ダンジョンを作るためソーサリアンみたいなシナリオタイプにします。
何度でも同じ依頼を受けられるシステムですね。
今回ルナドンタイプの依頼はやめておきます。
ソーサリアンよりはるかに簡単なダンジョンを依頼用にいくつか実装して、メインダンジョン1個と闘技場、クリア後ダンジョン1個でゲームを構成します。

いままで妥協しない方針だったけど、これからは妥協しますw

体調も完全ではないので今作をさくっと出来るだけ早く作って、完成したら治るまでは軽いゲーム作って行こうと思ってます。
スポンサーサイト



[ 2020/04/03 ] ゲーム製作日記 | TB(0) | CM(0)

現状3

現状3
数日前からやり始めた変数の変更。
まだ終わる気配はありません。

ここだけの話、普通はミスってバグりまくるので、使用している変数を変更するなんてする人はいません。
プログラムをする時は変数名は入力するものではなくコピペする物です。
それほど気を使って変数を使用するのはなぜか?ミスったらそのせいでバグるからです。

それをなぜやるのか?やってしまったのか?
グローバル変数を適当に使っていたので管理が嫌になったのも、もちろんあります。
ですがそもそもある程度できるかなというチャレンジ精神でCF2.5版をGAMEMAKER版とを並列で作っていて、CF2.5版は結構どうでもよかったからです。
その付けが回ってきただけ……でもありません。

CF2.5は処理が遅いわけでもありませんが、フレーム間移動、シーン変更というか場面を変えるとき、重い場面に変更すると結構時間がかかります。
当たり前ですけどねw
だからCF2.5で重いゲームを作る時には、1個のシーンに全部のシステムを入れ込めればシーン移動時の処理の遅さを無視出来ますが、作者にとってはそれは結構大変なのでやりたくない。

1シーンに全ての機能を入れ込むと純粋に作者の管理能力が足りない為制御出来ないのです。
CF2.5は条件付けがシビアなのでオブジェクトが増えると極端に管理が難しくなるし、エディタ画面もごちゃごちゃするし嫌だったりします。

それで、いままで全部のシーンにステータス表示をしてたのですが、それが処理的に少し重い。
時間でどのくらいかかるかと言うとおよそ0.2秒。

時間でみると大したことないように感じると思いますが、体感だとゲームが一瞬とまる感じになります。
だからステータスの表示を各シーンから取り除いて、重いのはメイン画面だけにして、その他は動作を軽くする感じの改造もするから、そのタイミングで今後の事も考えて変数の使い方もちゃんとしておこう!って感じで使用する変数の変更もしたのです。

各シーンを切り取ってサブアプリケーションとしてメインシーンにくっつけられる機能もCF2.5にはあるんですが、データがグローバル変数か外部ファイルでしか共有できないため、配列とかを共有する為には一つのグローバル文字列などに一旦データをまとめてサブアプリ側に送って、終わったらまた戻すとか、サブアプリからグローバル文字列を通して本体に命令を送るなど非常に手間がかかるのです。
外部ファイルにメインアプリが書き込んでサブアプリで読み込む方法もあるでしょうが、そんなデータをやり取りするようなつまらない事でハードディスクに書き込まれるのは作者がプレイヤーだったら嫌なので無しです。
読み込みだけだったら余裕でアリだけど、この場合書き込みもあるし。
でも、ここら辺は制作者の感覚でしかないので、使ってもいいですけどね。

最初にサブアプリ機能を使用してお店システムを作った時には、グローバル文字列でデータと命令のやり取りを作って完成させましたが、管理がすごく大変なのでサブアプリケーションとの連携はコメントシステム以外では今回は無し。

データがありすぎるので、メインとサブのデータを両方チェックしていくのが大変なんです。

というわけで改造と共に変数のやり直しをしたわけです。

各シーンも処理をごちゃごちゃさせずに素直に小分け。

難しい事は全力で排除です。

CF2.5はシンプルさを心がけて作らないと絶対に難しい物は出来ないので物凄く注意が必要です。
難しく考えたらダメ!絶対!

極端な話、システムを管理する覚悟と根性があれば難しく作っても何でもいけますけど、作者ももういい年したおっさんなのでそんな気力はないのですw

最近は疲れた時にやるとすぐに余分な変数は多いわソースコードは冗長だわでボロボロになってしまいますしね。
今はプログラムを簡単に考えれる時に作って、疲れてたらソースコードを軽く見直したり、考えたりしています。
なので完成日は未定のままです。

ちなみに最初の想定よりもさらに簡略化されてきたので、犬と猫様制作のレミュオールの錬金術師レベルまで簡略してしまおうかと思案中です。

ではまたね。
[ 2020/04/02 ] ゲーム製作日記 | TB(0) | CM(0)

現状2

名称未設定
ゲームの仕様がほぼ確定しました。

ゲームを移植CF2.5にしたままだとデータが重いのでデータを削れるところまで削り、さらに作者が制御出来るであろう範囲でデータを圧縮。
セーブやロードもCF2.5のINI機能無しで制作し、セーブデータも圧縮し暗号化した。
もはやセーブデータを解析出来るのはゲームと作者しか解析出来ないし変更もできません。ここはもう完璧。

あとはグローバル変数の無駄遣いも思いっきりやってしまい管理が大変になったので、ローカルで一時的に使う変数はローカルで用意することに。
ちょっとだけ、ちょっとだけだから……と言いつつ、結局はグローバル変数を使いまくってて、それで結局何が何だかわからなくなったのでグローバルで使用中の一時的に使用してた変数をローカルに移す作業をしています。

CF2.5は変数に名前を付けられるんだけど、グローバル変数はほぼ無限に設定出来るので少しだけ一時変数に使おう!と思ってしまう落とし穴があるなと思う。
ダメだとわかってても面倒だからグローバル変数をちょっとだけね!ってやって、ついつい泥沼化してしまった。

なのでCF2.5+バージョンになってから普通のオブジェクトも沢山の変数に名前つけられるようになったのでローカルでだけ使う一時変数はそっちで準備するようにした。

※ 結構前のアップデートで普通のオブジェクトの変数自体はほぼ無限に使えたけど(何番目の変数か指定して使う)、名前を付けた変数を沢山使えるようになったのは2.5+にバージョンアップしてから。

基本的な話としてなんらかのゲームエンジンは、簡単なものは簡単に出来るように作られていて、難しいものは指数関数的に作るのが難しくなっていく。

制作手法としては、とにかく部品をシンプルに作っていって、シンプルな部品をどんどんくっつけて一つのシステムを作ることを出来るようにならないと、管理できずに飛んでしまうのは間違いない。

作者も疲れた時にうっかり複雑な部品を作ってしまうことはよくあるけど、あとになって複雑な部品がどこかと競合して壊れたりしたら、手直しで死ぬのよ。
作者がCF2.5を使うときは高速ループを関数的に使用してゲームを作っていくし、CF2.5の仕様は頭に入っている上に、プログラムのアルゴリズムもゲーム制作に必要な分程度だがある程度知っているので、CF2.5でもほぼ作れないものはありません。
それでもとくにCF2.5は超スパゲッティコードな見た目なので、作者の目と脳に厳しいのだ。
難しい事もやってプロジェクトの規模も大きくなるとCF2.5の制作者の負荷はとてつもないものになる。
初心者の場合はワンアイデアでさらに1画面で作れるゲームから練習していって、なれてから規模を大きくしないと絶対に作ることが出来ません。
初心者らしき人の発言をたまに見かけるんですが、難しい物を作るときに難しく考えて作ろうとしてやっぱりできませんってのがよくあります。
難しい物を作るときに必要な考え方は、どれだけ機能をシンプルな内容に落とし込めるかです。
仕組みを理解して真理を見抜くのです!

プログラム初心者の訓練の仕方としては、頑張って難しい物を難しく考えて作った時に使用する変数を減らしていってプログラムが機能出来る限界まで使用する変数を減らすことです。
これはむやみやたらに減らすって事ではなく、パッと見たらわかるレベルでやるということで、難解な数式をぶち込んで無理やり行数を減らすと言うことではありません。
コードが難解になってしまったらそれは失敗です。
可読性と両立出来るレベルの限界を目指すのがベストである。
というのが作者の個人的な意見です。

まったく変数使用の無駄のない状態で見たら機能がすぐわかる。それがその部品の真の姿なのです。
それが結構出来るようになると、公開されている人のソースコードを圧縮する事すら余裕になってきます。
WIKIとかのサンプルなんか見ても、余分な変数がいくつもあるサンプルがごろごろしているのでそれを見て、わかりやすくなる範囲で使用する変数を減らす練習をするといいかもしれません。

でも上手な人が書いたコードはどうにもそれ以上縮まらないんですけどねw
どうにもならないし極限までシンプルで余分なものが無い美しいソースコードです。

これを繰り返していくと最初から一気に難しい物のシンプルな完成形の設計図が頭に浮かんでくるようになります。
これは訓練で身につく技術なのでだれでも出来るようになります。
作者は基本的に自分の作ったプログラムも一回は精査して変数に無駄がないか調べてから次にいったりするので、ソースコードはすごくシンプルで無駄がなくなっていきました。
さらにここ数年は重いゲームしか作ってないから作者のレベルアップすごいよ。
まあ、作者の呼吸器管がタバコで壊れてしまったので、結構パワーダウンしてしまったのですが……

とまあ色々書いたけど、結局はバグ無く動けば問題ないので組み方なんてどうでもいいんですけどねw
ゲームに至っては動作が遅かろうがその他にどんな問題があろうが面白ければ問題はないのです。
問題は無いに越したことはありませんが、面白ければすべてOK。
これはもう何にでも通じる真理で、小説、漫画、アニメ、映画などでも言えることですが面白ければいいのよ。
どんなにまずい部分があっても要はそれでも面白いかどうかなんです。

今日はこんな感じですね。

最後に話は変わりますが、作者の作品のレヴューなんかもよく見てたけど、バグがあるとかよく書かれてたりします。
バグなんか報告があれば一個あたり5分もあれば修正出来るのにレヴューで書くなよとよく思います。
レヴューでバグがあるって書く位なら、善意の報告をお願いしたい。
作者は一瞬で修正するスタンスは一生変えないので。
当時は修正後でもセーブデータが使えるように修正以前のセーブデータを改造してあげてたりもしましたしね。
これゲームしてないやつの悪意あるレヴューやコメントだってすぐわかるやつもあるので、そういうレヴューを消せるところにしかもうゲームをアップするつもりはないですしね。
悪い部分を書かれるのは参考になるので残すけど、プレイしてないから内容から間違ってるような悪意しかないレヴューはもう消すしかない。
というわけでコメントやレビューを消せないか、非表示に出来るところにしかもうゲームはアップロードしません。
今すでにある作者の作ったゲームは順次ネット上から消していきます。

最初に作ったいくつかはHSPコンテストページに残ってるのでそれは消せないので残るけど……



ちなみに作者はこのゲームが終わったら、気分転換にワンアイデアで1画面で作るスマホゲームを高速でリリースしまくるつもりです。
次の大作はこのゲームの評判を見て考えます。
ではまたね。






[ 2020/03/31 ] ゲーム製作日記 | TB(0) | CM(0)

現状

画像022519
この画像がCF2.5で作り直している現在のゲーム画面です。

元々game makerで作ったゲームの機能を出来る範囲でCF2.5に実装していたので、基本的な機能はすでに全部実装出来てましたが、ダンジョンや依頼は移植が難しかったので、CF2.5で作者が実装できる別のシステムにしよう!ということになり、完全自作で2Dランダムダンジョンを実装してみました。

ところが実際にやってみると、あんまりおもしろいという感じがしてこない。
マップチップをやっつけで作った為にすごくチープなせいかな……・
もうすこし色々やってみて、どうするか考えよう。

このシステムはそのままで3D画面に変換しやすく、後々の事を考えるとこれを使った方が良いような気がするので、なんとか面白くするように頑張ってみようと思います。

見た事ある人はわかるかもしれませんが、ゲームシステム的には作者の前々作のインフィニットライフクルセイダーとほぼ同じです。
あの時実装できなかった物を全部実装し、装備の無限強化や多人数戦闘も実装する感じになります。
戦闘システムはすでに100対100でも1000対1000でも出来るように作ってますが、操作性の問題がすぐにはクリア出来そうにないので、しばらく時間がかかりそう。

ではまたね。
[ 2020/02/25 ] ゲーム製作日記 | TB(0) | CM(0)

作者急病につき

お久しぶりでございます。作者です。
現在の作者は重病かつ急病な感じでダウンしています。
これによってまさにゲーム制作どころではなくなってしまい、当分のあいだは治療に専念することにしています。

今回、ほぼ同時にいくつかの病気がわかり、そのうちの一つの肺の病気。これが、きついw
知り合いの医者に処方箋を見せて、状況を伝えると、状況が改善しないと動けなくなるまで6年、その後は肺がんになるね。
と言われ、とうとう来たか、この日が……
来る所まできちゃったなーと自分でもそう思う。
このままだと最速でこれから6年経過するまでに症状が回復しなければ、最悪、作者は死ぬ……
がんにならなければある程度大丈夫だけどさ。

来世があれば赤ちゃんからやり直して誕生日とお年玉で、未来のパソコンみたいなのを買ってゲーム作りの天才児の戦いが始まるんだけど、いまだにそのような事象の検証すら嘘くさいので望みは薄い。

だが、もし生まれ変わりでゲームに関する知識をもったままチート出来たら転生もなかなか熱いので出来たらそうなってほしい所ではある。

ああータバコやめておけばよかったよー。俺は大丈夫って信仰してたのに、わかってたけどまるで根拠がなかったw
若い頃のかっこつけアイテムとしてタバコを吸い始めて、最後は肺の病気とか何のテンプレだよと。
動けるのはあと6年って言われたのは医者が脅かしてきたのもあるだろうけど、最悪そうなる可能性がある話で、がんばってちりょうをしていくしかない。治ったらいいな。

まあしかしこれを言われたのは、お医者さんの言うことを聞いてまじめに治療に専念しなさい!といったお叱りの意味もかなりあるあるなので、大丈夫と言えば大丈夫ですので、かなりの確率で寿命まで持ちますw

ゲームの方の話としては、今作の制作は治療中はやめてるとは言いつつも少しは触ってて、現在は制作環境を変更中です。今までは機能的にも非常に優れたGamemakerスタジオでプログラムを組んで制作してたけど、ゲームデータや内容量が増えてくると初回起動が遅くなっていき、無駄な時間が作者の許容限界を超えたため、現在は動作が軽快なインディーゲームクリエイター(Clickteam Fusion 2.5+ CF2.5+とも言われる)にシステムを移植しています。CF2.5+は基本的に軽くてすぐに動作するので良い物ですが、プログラムベースの物を移植するのは結構難易度が高いけど、ノートパソコンで寝転がりながらでも楽々作れるので移植開発は確定事項です。
CF2.5+では実装が難しいシステムはとりあえず切り捨てるけど、代わりにCF2.5+なら実装が簡単なシステムに変更するので大丈夫なはずです。
その後の進捗は作者の体調と相談しながらちょっとずつ作るので、完成時期は不明だけど、すごいものは出来るはず。

最後にちなみに作者がここでよく言ってる作者の作ってるすごい物のライバルというか対象物の説明を一応しておきます。
それは浅く狭くワンアイデアで作られたブラウザゲーやダウンロードゲームです。
今回はこれらのゲームのアンチテーゼとして、簡単に見えて実は内容は広く、プレイヤーが見えない部分は深くなるようなゲームを作る事が目的です。
まあゲームの方向性も色々ありますけどね。

作者もいろいろやってみた感想としては……
まあ言い方がすごく悪いけど勘弁してください。
この程度でみんな楽しめてるのか?とよく思うんですよね。
逆にセクシー絵パワーはすげーとも言えるけどw
かわいい女の子がカードになっておけばそりゃプレイするよねw
みんなに女の子ばかり追いかけてないで、早く解脱するのじゃ!と作者は言いたいぞw

まあ個人趣味というか、万人に好まれるものって作るのは難しいけど、今回は浅く狭くワンアイデアで作られたゲームを仮想敵にしているので、それらをプレイする人たちが今回のターゲット層です。

それと製品として永遠に矛盾なく遊べるゲームとして、あきてもまたやりたくなるゲームに作る事。
それが終わったら次回作は浅く狭くワンアイデアでゲームを作るのもいいかと思う。

今日はこんなところです。

ブログの方は何かきっかけがあれば更新しますが、体調的にしんどいので回復するまで基本的に更新はありません。


ではまたね。
[ 2020/02/17 ] 未分類 | TB(0) | CM(0)