2017-05-30 12 views
0

ゲームの最高得点をパスワードで保護されたファイルに保存する方法を見つけるのが難しいです。LibGDX - 「環境設定」で最高得点を保存する

私は、プレイヤーがプレイング/に入ってハイスコアを変更し、それを使ってゲームを読み込ませたくありません。

値を暗号化して変更するのは難しくなりますが、異なる暗号化された値と正しい形式をランダムに使用しないようにすることはできません。

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 
<properties> 
    <entry key="highScore">4</entry> Not encrypted 
    <entry key="lGTlMAdWzXQaem8c78FMow==">NiGac2LEgYO8uo0wkiKpasdLA==</entry> Encrypted 
</properties> 
+0

ジョンの偉大な答えは別として、私は暗号化されたデータにプリファレンスファイルを使用せず、自分のファイルを作成します。 – Madmenyo

答えて

1

ローカルに保存するデータは、プレーヤーが十分に判断された場合にハッキングされる恐れがあります。たとえバイナリファイルと同じようにファイル全体を暗号化しても、決定された人物が複数のハイスコアファイルを生成して比較することができます。

プレイヤーが高いスコアを共有することができれば、クライアント - サーバーモデルを採用し、プレイヤーが変更できないデータベースにハイスコアをリモート保存することをお勧めします。

高得点がローカルに保持されている場合は、ファイルを改ざん防止にする価値はないと私は考えています。彼らが実際にそれを獲得するのではなく、自分のプライベートスコアを膨らませたい場合は、それを聞かせてください。あなたの時間は素晴らしい新しいゲームのメカニックを開発するのに費やされる方がいいです。

問題を解決するもう1つの方法は、ファイルの改ざんを防止することではなく、改ざんされた時期を検出することです。チェックサムがハイスコアファイルと一致しない場合、それが改ざんされていることを知っていて、あなたのゲームに「チーター」のイースターエッグを追加するなど、チェックサムを追跡するような卑劣なことをすることでこれを行うことができます。

+0

私は参照してください。ありがとうございました – Joao

関連する問題