Discuss Scratch

kankankn
Scratcher
7 posts

セーブ方法を教えてください。

今、ゲームを作っています。セーブ方法を知りたいので、教えてください。
00giri
Scratcher
1000+ posts

セーブ方法を教えてください。

セーブしたいデータを並べる方法が一般的だと思います(この際、それぞれのデータの長さをそろえる必要があります)。
例えば、HPとコインの数を保存したい場合(最大HPを100、コインの数の最大を10000とする)、
セーブのプログラム:
セーブコードHP+100コインの数+10000にする
ロードのプログラム(この方法だと長くなるので一部説明にします):
HPセーブコードの1~3番目の文字-100にするコインの数セーブコードの4~8番目の文字-10000にする
という感じになります。
========================================================================================
ところで、kankanknさんは、日本語フォーラムのお約束をご存知でしょうか?
日本語フォーラムでは、同じ内容のトピックを作ってはいけないルールになっています。それは、同じ内容のトピックがあると、他の必要なトピックが埋もれてしまったり、他の人がどのトピックを使えばよいか分からなくなってしまうからです。
なので、質問は今度からは質問コーナーでして頂ければと思います(さらに、その方が多くの人に見てもらえるので、より答えが返ってきやすいです)。
また、トピックは一度作ると削除できないので、トピックを作る前にここで相談すると良いですよ。
みんなが気持ちよく使えるディスカッションフォーラムにするために、ご協力お願いします。

Last edited by 00giri (June 19, 2021 10:14:35)

KimiruHamiru
New Scratcher
500+ posts

セーブ方法を教えてください。

kankankn wrote:

今、ゲームを作っています。セーブ方法を知りたいので、教えてください。

一番単純なのは「自己申告」です。
「面クリアしていくゲームで、どの面までクリアした」という情報を「プレイヤーが覚えておいて(紙にメモしてもいい)」、「ゲーム開始時に面を選べるようにする」
というような仕組みです。
実際にそういうゲームもあります。


変数はひとつでなくてもいい
「どの面」という「情報」は、変数の値として表現できます。
なので、もっと多くの、複雑な、
「この変数はこれ、あの変数はこれ」というのをプレイヤーが覚えておいて、ゲーム開始時に全部の変数の値をセットする!
というのも理論上は可能です。
「セーブ機能と呼ぶかどうか」は微妙な所ですが、ゲーム内容によってはこれもありと思います。

ふっかつのじゅもん
ドラクエ1の「ふっかつのじゅもん」は「ひらがな20文字で記録するセーブデータ」ですが、
「各変数の値をひらがなに置き換えているだけ」で、基本的にはそういう仕組みと考えてよいです。
この「置き換え」のところにあれこれ工夫があるので、簡単でもないですが
「ドラクエ1のふっかつのじゅもん」に絞り込んで検索すれば、仕組みに関する情報は見つかると思います。

これ系の仕組みで、個人的にある意味完成されてると思ったのは
・「バベルの塔(1986年Namco作品。Switchでも遊べる)」。ステージ選択はひらがな入力のかわりに「絵合わせ」になっている。
・「ネクタリス(1989年Hudson作品。移植版はパスワードないかも)」。「ステージ名」がそのままパスワードになっている。
あたりです。(動画とかは検索すれば見つかると思いますが、パスワード入力画面が見つかるかは不明)

こういった仕組みが実際のゲームでよく使われたのは、
「ゲームを中断したら進行状況は全部消えてしまう」という事情があったからで、
「カートリッジやディスクにデータが保持できる仕組み」が一般的になるまでの「短い期間にこれでもかと発達して、いまは失われた技術」
かと思いますが、
Scratchは基本的には「ゲームを中断したら進行状況は全部消えてしまう」という仕組みで、
だからこそ「セーブ方法を知りたい」という話になった
と思うので、「ふっかつのじゅもんの仕組み」というのは有効な選択肢と思われます。


「プレイヤーが覚える」かわりに、どこかに記録する
さらに、それを「プレイヤーが覚える」かわりに
「ゲームカートリッジ上のメモリとか、ゲーム機本体メモリ」とか、「OSのデータファイルとか、クラウド上に保存する」
というのが、いまどきの市販のゲームの「セーブ」の仕組みなわけですが、

Scratchの場合は
「ゲームカートリッジ」のメモリとかはない、「ゲーム機本体」に相当する仕組みもない
(外部機器を使う種類の拡張機能で、どうにかできなくはないかも知れません)

ので、

「OSのデータファイルとして保存する」
「クラウド上に保存する機能はある」
を選ぶことになります。

その上で、
・「OSのデータファイルとして保存する」機能は「プロジェクトを保存する機能」と「リストの書き出し」機能しかない。不可能ではないけど「エディタ画面を開く」のが必須。
・クラウド上に保存する機能は、「データ量、データ形式の制限がある」
といった制限があります。

で、「どうするか」

……という話になっていくかと思いますが、
そのあたりまでの前提を押さえた上での
高度な工夫の話題については、こんなトピックもあるようです。
https://scratch.mit.edu/discuss/topic/371996/
sexe5e
Scratcher
3 posts

セーブ方法を教えてください。

ありがとうございます
おかげで参考になりました

Powered by DjangoBB