投稿

ラベル(ストレージ)が付いた投稿を表示しています

【GDevelop】セーブデータは暗号化しよう!

イメージ
GDevelop でセーブ機能を実装したいときは、多くの場合「ストレージ」機能を使うことになると思います。 このストレージ機能は、PC でもスマホでも、アプリでもブラウザ(HTML5)でも、ちゃんと機能してくれるのでとても重宝するのですが、実は簡単にセーブデータをいじれてしまうという弱点があります。 特に HTML5 ゲームがやばい GDevelop のストレージ機能はゲームが HTML5 で配信される場合は、Web Storage という機能を利用してデータを保存します。 しかし、この Web Storage はブラウザの標準機能で簡単に閲覧・書き換えができてしまいます。 Chrome ならデベロッパー ツール(DevTools) Edge なら開発者ツール(DevTools) Firefox なら開発ツール Safari なら Web インスペクタ つまりそれを知っているプレイヤーは、勝手にセーブデータを書き換えてズルができてしまうのです😥 そのため HTML5 で配信される、いわゆるブラウザゲームのほとんどは、Web Storage に保存するデータを暗号化しています。 (そもそも大事なデータは Web Storage ではなく、サーバー側に保存していたりしますが……) 実はセーブデータを暗号化してくれるゲームエンジンは意外と少なく、多くの場合、各自で独自の防衛策を講じる必要があります。 (国産ゲームエンジンはしてくれるの多いけど😉) 残念ながら今の GDevelop(v5.0.121)のストレージ機能にも、暗号化をしてくれる機能はありません。 そこでこのページでは、簡単にセーブデータを改竄(かいざん)されないようにするための、基本的な暗号化方法についてご紹介します。 なお、アプリで配信する場合も、セーブデータがどのように保存されているか私が知らないだけで、もしかしたら Web Storage 同様、簡単に操作できてしまう状態かもしれないので、HTML5 ゲームと同様に暗号化しておくことをお勧めします。 暗号化に利用できる拡張機能の紹介 そのものズバリな拡張機能はありませんが、組み合わせることでセーブデータを暗号化することができる拡張機能をご紹介します。 拡張機能をインストールする方法については「 新しい拡張機能のインストールの仕方 」をご覧くださ...

【GDevelop】セーブデータを JSON 化するとメリットしか無い件

イメージ
ハイスコアやプレイヤー名、所持品やストーリーの進行状況など、ゲームのデータを保存するためのセーブ機能は、昨今のゲームには必要不可欠なものです。 GDevelop にもデータを保存するために「ストレージ」という機能が用意されています。 このストレージ機能は、PC でもスマホでも、アプリでもブラウザ(HTML5)でも、ちゃんと機能してくれるという、とてもありがたい機能なのですが、書き込みと読み込みが数値とテキストにしか対応していないという、残念な一面もあります😥 構造体や配列、さらには真偽値も保存できたほうが絶対便利なのですが、残念ながら執筆時点(v5.0.121)では、そのような機能は用意されていません。 さらに、たくさん保存したいデータが有る場合、ひとつずつアクションを組まなければいけないのも手間です。 しかし、JSON というデータ形式を利用すれば、これらの問題を一気に解決することができます! 😆 JSON ってなに? JSON の詳しい説明は割愛します。ググってくださいw🤤 ちなみに読み方はジェイソンです。 一応、超ざっくりに説明すると JavaScript と互換性のあるテキストデータフォーマットのことです。 ↓こんなふうに書くことができます。  {"名前":"パンダコ", "Lv":3,"アイテム":["やくそう","賢者の石"]} ちなみに GDevelop のプロジェクトデータ(game.json)も JSON で保存されてますね。 なんで JSON を使うの? JSON なら GDevelop の構造体も配列も真偽値も表現することができます。 さらに上記の通り、JSON はテキストデータです。 つまり GDevelop の どんな変数でも、「テキストを書き込む」アクションで保存することができます 👏 どうやって JSON で保存するの? それでは具体的に、どのようにイベントを組めば良いのかご説明します。 この例では次のようなシーン変数があり、これを保存したいと思います。 色々なデータを「セーブデータ」という構造体の変数に、まとめている点がポイントです。 ひとつの変数にまとめることで、1回のアクションで必要なデータ全てを保存でき...

このブログの人気の投稿

【GDevelop】タイルスプライトで作る流れる背景

GDevelop でシンプルなボタンの作り方

【GDevelop】2026年1月よりサブスク値上げ。既存ユーザーへの「神対応」と、今すぐ入るべき理由。