投稿記事

menon 2024/06/27 22:41

【新作進捗】ピクセルシミュレーション

こんばんは!
ギリギリ6月に間に合いました。
今回はゲームの目指している方向性というかグラフィック性というか、そんな感じのものをお伝えできる内容な気がします!

進捗

タイトルにもなってますが今回の内容はピクセルシミュレーションです!
便宜的にピクセルシミュレーションと言っていますが、要はピクセル単位で物体をシミュレーションしようということです。
昔からそういう感じのゲームであったり動画であったりは色々ありましたが最近のゲームでいうとnoitaなんかが記憶に新しいと思います。

ピクセルというかドット絵で描かれているのにリアルっぽい動作で1ドット1ドットが動いている世界ってなんか感動しませんか?
あ、でももちろん昔ながらのRPGみたいに1マス1マス動くものも好きですよ!
どっちもすごい!

今やっていること

今はまだゲームとして実装するような段階ではなく、ゲームに実装可能な処理速度でのシミュレーションが実現できるかを試作しているテスト段階です。
いつもなら最適化はある程度ゲームが形になってきてから行うのですが今回は重ための処理になるため、実装が現実的な範囲まで自分の技術力で持っていけるかを先に確認しているわけです。
そして現在の処理がコチラ!

512x288で動かしています。いい感じの処理速度が実現できるかを優先しているので物体の動作をいい感じにするのは後回し。
処理速度については、左上のFPSと書いてある行の数値を見るとどのくらい処理が重くなっているのかがわかります
うーん、なるほど。よーく見てみると物体の自由落下時にかなりfps_realの値が落ちてしまっています。
これでも試作当初と比べたら全体的にはかなり軽くなったんですけどね…。強敵…

最後に

前回は主人公のsprite候補だけだったのでどんなゲームを目指しているのかがイマイチわかりませんでしたが、今回はなんとなくお伝えできたかなと思います!

次回更新ではもう少し最適化を進めて、シミュレーション対象に気体を追加、物質同士の相互作用的なものまで実装できたらいいなーと考えています。

オマケ

一つ処理を変えるだけでこんなに動きが変わる!

処理方法をちょこっと変えるだけでこんなにピクセルの動きが変わるんだよーというお話です。まあ当たり前といえば当たり前かもしれない。

さて、上の動画にあるようなピクセルの一連の動作は簡単に説明するとこんな感じで処理しています

① 下に動けたら動く
② 左右斜め下に動けたら動く
③ 左右に動けたら動く

もう少し詳細に説明すると
1フレーム毎に
・①と②は同時に処理可能(下に移動後、さらに斜め下に動ける)
・③は①と②を試しても動けなかった場合に初めて処理

されます。

というわけでここで①と②を同時に処理不可能にしてみます

これは微妙な違い…
でも接地後の横への広がりを上の動画と比べると違いがわかると思います。
明らかに遅い!少しの間、接地前の四角い形が色濃く残ってしまっています。

次に変更した部分を元に戻して、今度はさっき説明した部分の2つ目を変更して①と②と③すべてを同時に処理可能にしてみます

もう一目瞭然ですね!弾き飛んでます。
さっきの動画を見た後だと尚更です。
水の動きとしてはこれをもとに調整したほうがいい感じになりそうな気がします。

おー、すごかったですね。
処理方法をすこーし変えるだけでこんなに変わっちゃうなんて。
このめちゃくちゃどうでもいい感じ…さすがオマケクオリティ。

処理方法の遷移

どんな感じに最適化していったのかというお話です。
GameMakerというゲームエンジンを使用しているのでGameMakerで使用されている言語であるGMLでの説明になります。
また、全部書くと大変なので掻い摘んで書きます。

参考にしたもののURL

Exploring the Tech and Design of Noita
How To Code a Falling Sand Simulation (like Noita) with Cellular Automata
Pixel Simulation - tech demo and breakdown

そのほか、ピクセル単位ではないですが2D上の水シミュレーションで良さげな記事があったのでこれも貼っておきます。
2D Liquid Simulator With Cellular Automaton in Unity

下に書いてある内容を読むよりこれらの素晴らしい動画や記事を参考にしたほうが圧倒的に良いです。引き返すなら今のうち!

最適化

まずそもそもこういうタイプのゲームを作るのにGameMakerは向いているのかっていう話なんですが多分向いてません。
マルチスレッドで処理高速化!的なことはできません。
まあそこはGameMakerで作っている以上は考えても仕方がないので気合で乗り切ります。

その1
全てのピクセルをシミュレートする方法として直感的に思いつくのは、1フレームごとに512x288全てのマスを調べて各ピクセルのシミュレーションを行うことかもしれませんが、全てのマスというのは今回の場合512x288=147456マスにも及びます。
つまり各マスを調べるだけで1秒(60フレーム)ごとに8847360回もの処理をすることになります。
まあもう数字を見るだけでなんとなくやばそうですよね。
実際に動作させるとこうです。

パラパラ漫画です。というより紙芝居です。
というわけでいかに調べるマスを減らすか、というのがとても重要になります。

その2
それに対するアプローチとして上で紹介した動画でなされていた一部に
・チャンクに分けてピクセルがある場所のみ処理。
・動いていないピクセルを無視する

という2つがあり、簡易的に実装してみました。


赤色になっているピクセルは無視しているピクセルです。
ピンクの四角形有効になっているチャンクです。
全てのマスを調べる方法と比べると大幅にFPSが改善されています!
しかもなんか有効になっているチャンクが表示されているとカッコいい!!

ただ、この動画時点の処理だと無視しているピクセルといっても「動かそうとする」という処理をスキップしているだけです。そのマスを調べてはいるわけですね。
また、有効になっているチャンク内はピクセルの有無関係なく全てのマスを調べてしまっているのでそれもムダな気がします。

その3
それらの問題を解消するぞ!といって紆余曲折ありながらも生まれたのが今現在の処理方法なのですが、まあ簡単な話、「動いているピクセルだけ調べればいいよね」ってことです。

そりゃそうだろって感じなんですがコード的には、配列に動いているピクセルの座標のみを保有させてそれをループして処理を行っています。
ここのやり方が一番処理速度に関係してくると思うので今後も最適化していく部分なのかなとは思ってます。

それに加えて描写面でも最適化を行い、静止しているピクセルを一度だけsurfaceに描画してその後はそのsurfaceを描画するだけにしています。
わかりやすく言えば動いていない部分のスクリーンショットを一度だけ撮って、動いているピクセル以外はその画像一枚をずっと表示させとけばいいって感じです。

こうやって比較していくとだいぶ処理速度マシになってますね!
また、コンパイラーもVMよりYYCの方が速いのでデバッグ以外ではそっちの方が快適です。

このほか現状思いつくものでやっていない細かい最適化はforループよりrepeatの方が速い!だったりとか外部スコープをできるだけ参照しないようにする!だとかがあるのでそのあたりも取り組んでみようかなーと思ってます。
あとは自由落下中の処理最適化もお試し中です。

というわけで長かったオマケもここまでです。
ここまで読んでくれた方ありがとうございました!
読まなかった方もありがとうございました!

menon 2024/05/31 22:44

新作進捗?とオマケ

1ヶ月半ぶりです!
5月中には何か書かなければと思っていたらもう6月になってしまいそうなので大急ぎで書いています。時間経つの早すぎ!
前作の開発中は空き時間をほとんど開発に当てていたので、この1ヶ月間はやりたかったゲームの消化に明け暮れていました。

というわけで新作のプログラムなんて一行も書いていないので実は新作進捗といっても大した報告はないんです。あれ?
ゲームシステムはそれなりに煮詰めてはいますが現状書ける範囲で記事にしたいと思います。

新作進捗

前回の記事で横スクロールのローグライトな感じかのんびりした感じのゲーム、とお伝えしていましたが前者の方向性で制作しています。
システムを考えていくうちにどんどんローグ要素が薄まっている気がするので、遊べる状態になる頃にはかなりマイルドめになっているかもしれません。

そういえばアイコンが変わっていることに気づきましたか?
こいつが次回作の主人公(予定)です!
実はひっそりと1ヶ月くらい前からアイコン変わってました。

そして現在はこの主人公のゲーム内spriteを考えている状態です。
説明するより見てもらったほうがわかりやすいと思うので過程をのせます。
まだまだラフ絵的な段階です。
1ヶ月前


『勇者のものは魔王のもの』と同じ等身で描いたやつですね。
なんかちょっとぽってりした感じになっちゃってる気がします。
まあ服が良くないのもあるかもしれません。

3週間前


少し小さくなりました。
ドット絵ならではのカワイさが増した気がします。

最新


進捗であげられるものがあまりにも少ないので数分前に急いで描きました。
今までのものは股の部分がいい感じにできなかったのでいっそのことちびキャラ感を増したバージョンです。
かなり気に入ってます。
ツルハシ的な武器の持ち方を両手持ちにしたのですが、キャラのイメージがガラリと変わってしまうので要調整かもしれません。

主人公のspriteについてはこんな感じです。
どのくらいの解像度で、どんなスタイルで描くのかによってゲーム全体の印象が変わってくるので最初に描くspriteは割と重要だと思っています。

開発初期というのもあって特にお見せできるものがなくてごめんなさい。
他にもシステム面で色々考えている部分はありますがもう少し形になるまでお待ちください。

おまけ

記事内容のかさ増し。
『勇者のものは魔王のもの』でボツになったものやラフ絵たちです。
上書き上書きで制作したものが多かったので数は少なめ。悲しい。
ボツ


戦士のモーション別パターン
ゆうなまの戦士のモーションに近い。


ガーディアン(魔法陣の魔物)初期案
亡霊的なイメージで作っていたもの。
コレじゃない感がすごかった。


アンノン(魔法陣の魔物)初期案
色味からわかるようにアンノンの原型。
制作途中いつのまにか変身できるようになってた。
魔物感が薄いのと世界観がイマイチ合わなかったのでボツ。


追加コンテンツボツ勇者2つ
上のボツ案を追加コンテンツの新勇者として作っていたもの。
歩きモーションも作ってたけどやっぱり世界観と合わなかったのに加えて諸事情でボツ。

ラフ
最後の方に作ったやつらは残ってました。



次回更新

月1ペースくらいでは記事を更新したいなーと考えているので6月中の更新を目指します。
次回までには少しでもゲームが動かせるようになっていればいいな…!

menon 2024/04/16 00:10

【お知らせ】『勇者のものは魔王のもの』販売終了しました/今後について

『勇者のものは魔王のもの』販売終了しました。

短い期間ではありましたができる範囲で皆さんのご要望に答えられたかなと思います。
実装できなかったご要望をくださった方々ごめんなさい…
魔物の追加の要望もそこそこ多いなーという印象でしたがさすがにちょっと難しかったです。
開発初期はもう少し種類がいる予定だったんですけどね…
力不足でした。
いろいろな魔物で、いろいろなピッケルで遊べるゲームに仕上がったと思うのでまだプレイ中の方はぜひお好みの組み合わせで遊んでいただければと思います。

販売終了後はDLsiteマイページの左にある「購入履歴」画面より、購入月を指定すると購入した作品が出てくるのでそこからダウンロードすることができます。

また、一部環境でゲームを起動できない方がいるようなのですが、以下の方法で起動できたと報告してくださった方がいたので一度試してみてください。
アプリとブラウザーコントロール→評価ベースの保護→アプリとファイルの確認をオフ

今後について

一段落したら次回作を作り始める予定です。
横スクロールのローグライトな感じか、のんびりとした感じのゲームを作りたいなーと漠然と考えています。

menon 2024/04/11 23:46

【お知らせ】勇者のものは魔王のもの ver1.1アプデ情報/販売終了について

こんばんは!
Ci-enの記事をしっかりと書くのは久しぶりだなーと思っていたら販売開始の告知からまだ三週間も経ってなかったみたいです。
バタバタしすぎて販売から一ヶ月以上は経ってるような気分になってました。

今回は本作最初で最後の大型アップデートver1.1の紹介です!!
皆様の要望をできる範囲でお答えしつつ新ステージと新ピッケルの追加です。
盛りだくさんの内容です。
それに加えて販売終了のお知らせです。
まず初めに誤解のないように書いておきますが自己判断です。
謎の力的なものは全く働いていません。本当に。

追加項目がたくさんあるので例のごとく目次から必要な項をご覧ください。

販売終了について

題の通りです。
ver1.1配信後、数日様子を見て致命的な不具合などがないことを確認でき次第本作の販売を終了しようと思っています。
販売から数週間しか経ってない上、突然のお知らせとなってしまい申し訳ありません。
個人の判断での販売終了となりますので、他の方のご迷惑となるような行為等は控えていただきますようよろしくお願いいたします。

販売からの期間でできる限り皆様の声を反映したつもりではいますが、長期間のサポートやこれ以上のご要望を取り入れることができないことお詫びいたします。
また、販売終了後もアップデート自体はできますので急いでアップデートする必要はありません。

ver1.1アップデート内容

たくさんあるので書き忘れていることがあったらあとで追加します。

新要素

新ステージ
新ステージ「そのあと」を追加しました。
ストーリークリア後に挑戦することができます。
強くなった魔王軍とともに生意気度合いが増した勇者を再びやっつけるお話です!
ストーリーモードとは一風変わった戦法や掘り方が求められる(かもしれない)ステージを目指しました。

また、メインメニューでのコマンド入力の状態に限らず「そのあと」モードは常に表示されますがどの状態から選択しても同じ内容です。

新ピッケル
新たなピッケルを一つ追加しました。
新ステージ「そのあと」をクリア後に使用可能となります。

図鑑追加
新ステージ・ピッケル追加に伴い該当する勇者とピッケルを図鑑に追加しました。
また、全ての勇者の図鑑に移動速度の欄を追加しました。

ダミー勇者
「なぞのばしょ」にて選択できるダミー勇者を各ステージの勇者に変更しました。
図鑑を解放済みの勇者のみ選択可能です。

カスタム設定
プレイヤー自ら様々な設定を弄ることができる機能を追加しました。
難易度「ふつう」と「むずかしい」にて使用可能です。
カスタム機能解放には条件があり、「そのあと」クリアに加えてストーリーモードをランクS又はランクSSでクリアが解放条件となっています。
いわゆるやりこみ要素的なやつなのでカスタムによるスコア倍率アップ等はありません。


土の表示変更設定
オプションから土の表示を「マナレベルごと」「詳細表示」かを選択できるようになりました。デフォルトでは「マナレベルごと」に設定されています。
不具合回避のためこの設定はメインメニューからのみ変更可能です。
地味ですがこれが一番今回のアップデートで利便性が上がっていいんじゃないかなーと思ってます。

不具合関連

プレイヤー側に有利な修正予定のない不具合
・勇者のATKバフ上限が80%に設定されている。
100%のつもりが80%になっていました。
なので勇者のスキル「バイパワー」の倍率は2倍じゃなく1.8倍です。

・ステージ3の「マリヤ」以外の遠距離攻撃を使う勇者が魔物と隣接するまで遠距離攻撃を使わない。
該当の勇者以外の勇者が遠距離攻撃を行わず、隣接するまで攻撃しない設定になっていました。
ストーリーモードの勇者への変更は行いませんが、ver1.1で追加される新ステージの遠距離攻撃勇者は正常に遠距離攻撃を行います。

不具合修正
・「マナリターン」使用時、土のない場所に使おうとしてスキルが失敗した場合も使用回数がカウントされる。
・魔法陣に変化した後も魔法陣の下に元の状態の土が表示されてしまっている。
・ダイアログ表示で魔王の一部spriteが白枠に重なっている。
・トレーニング中の解説画像が出てるタイミングでスキップするとクリア時に解説画像が引き続き表示されてしまう。
・ステージ1以外の剣士が想定していたより3フレームほど攻撃速度が早い。
・勇者捜索ONの時にトゲ類合成種が正常に動作しない。

その他

・コントローラー操作時、ダイアログで選択肢が表示されている時にマウスが選択肢の上にある状態でもマウスが反応しなくなりました。
・メインメニューからトレーニング画面に入ってもコマンド入力の状態が保持されるようになりました。
・魔物の勇者捜索ONになっていて魔物が勇者を発見した際、発見した時に勇者がいた位置で高速移動が正しく終了するようになりました。
・保有していないピッケルを装備しようとした時にエラー音を追加。
・キーボード操作を魔王設置時にも対応。
・城の影を書き忘れていた部分を書き足しました。
・メインメニューにて「▶」の位置を少しだけ右にずらしました。

最後に

以上がver1.1の内容です。
デバッグも販売開始前と同じくらい入念にやったので不具合はもうない…と思いたいのですがそれでも発生するのがバグです。大きめなアップデートなので致命的なものを見落としていないか心配ですが無いことを祈ります。

そして気づけば販売から3週間弱で10000本以上も購入していただきました。
本当にありがとうございます。
本作のお話は今回の追加要素でおしまいですが最後まで楽しんでいただけたら嬉しいです。

出ないですかねゆうなま新作。待ってます。

menon 2024/03/26 18:18

【アプデ情報】勇者のものは魔王のもの

アップデート履歴

ver1.1.0.2

不具合修正
・ボッケル以外のピッケルを装備した状態で「なぞのばしょ」に入るとボッケルのスキルが使用不可能になる。
・ダイアログの選択肢表示が正常に描写されていない。

ver1.1.0.1

不具合修正
・新ステージ「そのあと」のステージ6において特定の条件が重なると稀にエラー落ちしてしまう。
・魔物の勇者索敵ONの時、トゲ類が勇者発見後見失うとスタックしてしまう

ver1.1

大型アップデートなのでこちらの記事をご覧ください。

ver1.0.4.2

不具合修正
・モス類合成種が復活後スタックしてしまうことがある。
・ver1.0.4,ver1.0.4.1においてチビデスの近接攻撃が正しく動作しない。
その他
・「なぞのばしょ」でのピッケルスキルチャージ時間が現在のピッケルと正しく同期するようになりました。

ver1.0.4.1

不具合修正
・ver1.0.4においてクモ類合成種の近接攻撃が正しく動作しない。

ver1.0.4

新機能
・「なぞのばしょ」を追加しました。
新たにトレーニング画面へと追加された「なぞのばしょ」では自由にダンジョンを掘って魔物たちを眺めたり戦略を練ったりすることができます。
ver1.0.4時点では呼ぶことのできる勇者は三種類の中から一人だけ選ぶことになります。今後のアップデートでステータスやスキル等を自由に設定できる機能を予定しています。
生み出すことができる魔物は図鑑が開放されている種類のみです。
「なぞのばしょ」で図鑑開放することはできません。
また、「なぞのばしょ」では実験的に魔物の索敵機能ON/OFFが実装されています。
索敵機能については現行のストーリーでの実装予定はなく、別の形での実装を予定しています。ご了承ください。

・ハイスコア表示を各難易度の表示へと変更しました。
スコアのみを参照する仕様となっていました。今までのご不便をお詫びいたします。
また、この変更に伴って現在表示されているハイスコアをできる限りの範囲で新たな仕様へと反映させましたが、ハイスコアを取った本来の難易度とは異なる難易度で表示されてしまうかもしれません。
ご迷惑をおかけしますが、ご理解の程よろしくお願いいたします。
不具合修正
・一部シーンで音が左からしか聞こえなくなる。
・一部シーンでレイアウトが崩れてしまう。
・勇者が道を引き返している時に、勇者の魔王捜索範囲に魔王が入るように土を掘るとスタックしてしまう。
その他
・勇者の魔王捜索処理を軽量化しました。

ver1.0.3.1

新機能
・全てのステージにSSランクを追加。
後半のステージに関しては元々総合SSランクのスコア設定が15000(ネタバレ回避のため白文字にしています)と比較的低めに設定してあり、各ステージのSSランクをそれなりの難易度にしようとすると総合SSランクと差が生まれてややこしいことになるので総合SSランクをベースとして各ステージのSSランクを設定することにしました。
結果として少し味気ない感じになってしまったので、さらなる難易度を求める方向けに魔法陣の吸収率やボーナスの倍率などを自分で設定してストーリーを遊ぶことができるカスタム的なものも考えています
いわゆる縛りプレイ的な位置づけのシステムなのでカスタム設定によるスコア倍率UPなどは付けない予定です。
ただそこそこ大きい作業になるのでその他のアップデートを優先させていただきます。
不具合修正
・全ステージクリア時に残っていた魔物がいままでのきろくで「死んだ魔物」としてカウントされてしまう。

ver1.0.3

新機能
・暫定的にピッケル操作のみキーボード入力へと対応しました。
ゲーム内オプションの操作方法にはまだ未反映なので、ファイルに同梱されている「_操作方法.txt」をご覧ください。
また、従来の操作方法に干渉しないかテストプレイは行っていますが万が一コントローラーやマウス操作時に支障が出るようなことがあればコメントをお願いします。
・ステージ「古のキオク」までの各ステージにSSランクを追加しました。
総合ランクのみSSランクを実装していましたが、該当のステージまでの各スコアにもランクSSを追加しました。
それ以降のステージに関してはスコア設定のためのテストプレイが追いついていないため、本バージョンでは前半のみの実装となります。紛らわしい仕様となってしまい申し訳ありませんがご理解の程よろしくお願いします。
20:50追記
総合ランクのSS評価を少しだけ緩和(具体的には10000から9000に変更←ネタバレ回避のため白文字です)しました。
これで少しだけSSでクリアできる魔物の幅が広がるかと思います。

ver1.0.2

新機能
・現在の難易度に応じた勇者のステータス変化を図鑑に反映。
不具合修正
・コントローラー操作時、オプション内にて「タイトルにもどる」→「やめぬ」を選択しても正しく動作しない(マウス操作時は通常通り動作します)。
・一部ステージでの誤字。
・3つ目のピッケルのピッケルスキルを準備フェイズの時に使用するとエラー落ちする。
・一部ピッケルスキルの効果がムービーにも適用されてしまう。
・図鑑の各項目の一覧を閲覧中にコントローラーからマウスに変更すると「もどる」ボタンの表記がおかしくなる。
・魔王設置時に右端に置こうとするとエラー落ちする。
ゲームプレイに関係する不具合修正
・残りMP0の勇者が魔法陣の周囲を歩いた時も通常の魔法陣から変化してしまう。
本来、残りMP0の勇者から魔法陣はなにも吸収できていないという設定なので魔法陣の変化は起こらない予定でしたが、変化してしまう状況になっていました。
大前提として、販売以降に残ってしまった意図しない挙動・不具合のうちプレイヤー側に有利となるものは残す方針です。
しかし、今回の不具合の場合にはそれぞれ
修正する→魔法陣の一部魔物が生み出しづらくなってしまう。
修正しない→MPを吸収していないにもかかわらず、MP吸収機能が失われてしまう。

というデメリットが生じます。
今回は、魔法陣を掘らずに放置する(=MP吸収機能を持続させる)ことの有用性のほうがプレイヤーに利益となるタイミングが多いと判断し、修正する判断をしました。
魔法陣の一部魔物は生み出しづらくなってしまいますが、その希少性も含めて楽しんでいただけたら嬉しいです。

« 1 2 3 4

月別アーカイブ

限定特典から探す

記事を検索