タグ付けされた質問 「serialization」

9
C ++ゲームの保存ファイルを作成するにはどうすればよいですか?
ビデオゲームプログラミングコースの最終版をコーディングしています。ゲームの保存ファイルを作成して、ユーザーがプレイして後で戻ってくる方法を知りたいです。これがどのように行われるかについての考えは、私が以前に行ったことはすべて、単一実行プログラムです。

3
保存データにテキストファイルを使用する必要がありますか?
私の質問は、テキストファイルを使用してゲームデータを保存する必要があるかどうかです。これを行う上でいくつかの基本的な懸念があります。 データを保護する方法は本当にありません。したがって、ユーザーがデータに触れた場合、ユーザーはすべてを台無しにする可能性があります。 それはおそらく私のデータを保存する最も効率的な方法ではありません(それはたくさんあります) ただし、テキストファイルを効果的に解析/書き込みする方法は知っているので、プロトタイプを作成するためには素晴らしいものでした。開発の終わり近くで顔を痛めないように、私は切り替えに何を考えるべきかを未来に見たいだけです。 テキストファイルを使用しない場合、何を使用すればよいですか?C ++と互換性のあるものが必要です。

8
C ++でのシリアル化に適したソリューションは何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 私は、ゲーム開発者がゲーム用に扱うさまざまなタイプのデータをシリアル化するためにどのようなソリューションを考え出したのか興味があります。派生型のシリアル化インターフェイスを収容するモノリシックなGameObject階層を使用する、カスタムRTTIベースのカスタムソリューションを使用する、特定のクラスの明示的なストリームシリアル化を実行する、またはいくつかのオープンソースソリューションを使用する(boost :: serialization、s11n、等)。

8
2D曲線をデータストレージのポイントに変換する
曲線、つまりパスを最小数のポイントに変換して、ファイルまたはデータベースに保存できるようにするアルゴリズムを作成しました。 この方法は簡単です。3つのポイントを等間隔で移動し、これらのポイントが形成するライン間の角度を測定します。角度が許容値よりも大きい場合、そのポイントまでの新しい3次曲線が作成されます。次に、ラインを前方に移動し、角度を再度測定します… Androidの知っている人のためにパス注こと-クラスdstPathは一方で、私は後でポイントを保存することができますので、配列にポイントを記録したカスタムクラス、あるsrcPathは地域労働組合の結果であり、したがって、私にとって何のキーポイントを持っていません保存する。 問題は、ソースパスが完全な円と長方形で構成されている下のコードで生成されたこの画像でわかるように、円が滑らかに見えないことです。許容角度とステップの長さを変更しようとしましたが、何も役に立ちません。このアルゴリズムの改善、または別のアプローチを提案できるかどうか疑問に思います。 編集:Android Javaを使用している人のためにコード全体を投稿したので、簡単に試してみることができます。 public class CurveSavePointsActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new CurveView(this)); } class CurveView extends View{ Path srcPath, dstPath; Paint srcPaint = new Paint(Paint.ANTI_ALIAS_FLAG); Paint dstPaint = new Paint(Paint.ANTI_ALIAS_FLAG); public CurveView(Context context) { super(context); srcPaint.setColor(Color.BLACK); srcPaint.setStyle(Style.STROKE); srcPaint.setStrokeWidth(2); srcPaint.setTextSize(20); dstPaint.setColor(Color.BLUE); dstPaint.setStyle(Style.STROKE); dstPaint.setStrokeWidth(2); dstPaint.setTextSize(20); …

2
インスペクターでフィールドを表示(アタッチ可能)するがコード(プライベートライク)でアクセスできないようにする方法は?
もちろんbutton、type という名前の変数があるとします。ButtonSystem.Serializable その変数をインスペクターを通じて割り当て可能にしたいので、次のようにしますpublic。 public class SomeScript : MonoBehaviour{ public Button button; } それは私にそれを与えます: 今、私はコードをクリーンで安全な(整理された)状態に保ちたいのですが、カプセル化を維持する必要がある本当の理由があります。 私は実行時にコンポーネントを取得する方法が複数あることを知っています。transform.Find("Some/Genius/TypeUnsafe/Path")または、GameObject.Find("3 seconds scene iteration").GetComponent(...).それを避けたいです。 インスペクターで変数private accessをどのように混合しますpublic accessか?

3
アセットを保存するときにバージョンの変更をどのように処理できますか?
私はしばらくRPGに取り組んでおり、2つの異なるシリアル化手法を使用しています。 敵、武器、アイテムはXMLとして保存されます。 マップとイベントは「制御されたバイナリ」として保存されます(すべてのクラスが保存/ロードメソッドを取得し、保存/ロードするものを決定します)。 しかし、私はマップとイベントの選択に疑問を持ち始めました。私の懸念: 私はマップエディタを作成しましたが、ファイルを開くだけでは小さなことを変更できません。 混乱が大幅に変化します。変数をクラスに追加したいとします。すべてのマップを再度ロード/保存しないと、後で壊れます。 最初の懸念は、私のテクニックを変更せずに回避することは困難です。JSONへの変更を考えましたが、大変な作業です。また、[DataContract]属性と[DataMember]属性がいたるところにあると、見苦しく見えます。 それは私の第二の懸念を私に残し、私はそれをどのように処理できるのでしょうか?すべてのマップをループし、新しい変数でそれらを再保存する小さなプログラムを作成しますか?私は今、いくつかのマップを取得し始めており、それでも手動で取得しています。多くの追加作業が発生するため、変更を加えたいときは毎回2度考えさせられます。

5
シリアライゼーションとは何ですか?
私は趣味としてプログラミングをしばらくしてきましたが、最近までこの概念を見始めていませんでした。私は「シリアル化とは」を何度もグーグル化してきましたが、実際にはどのような種類の定義も得ていません。通常、その方法の例にすぎません。Ogreフォーラム、Bulletフォーラム、その他すべてのフォーラムで見かけているので、実際にそれがどのようなもので、なぜそれを使用するのかを理解する時期にきていると思います。 編集する 明確にするために、特にゲームプログラミングの意味で、なぜそれを使用するのかをもっと探しています。たとえば、Bullet Physics APIはメッシュのシリアル化について多くのことを話しているので、その理由を理解したいと思います。 ありがとうございました :)

1
XNAのContentManagerがシリアル化のためにジェネリック型パラメーターに従うのはなぜですか?
ようやく問題の根底に達し、私の最善の解決策は何なのかと思っています。つまり、ReflectiveReaderシリアル化されているオブジェクトにジェネリック型のインスタンスが格納されていなくても、XNA がジェネリック型パラメーターに反映されるという問題があります。 例がこれを最もよく示しています。次のモデルクラスを検討してください。 namespace Model { using System.Collections.Generic; using Microsoft.Xna.Framework.Graphics; public abstract class Entity { } public sealed class TestEntity : Entity { public Texture2D Texture { get; set; } } public abstract class EntityData { } public abstract class EntityData<TData, TEntity> : EntityData where TData : EntityData where TEntity …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.