Basic RPG game development question

Hello

I am hoping to create a list of the basics that I would want to have in my RPG/Quest Driven games State.

What I mean by State is the properties I want to track. or save…

If anyone has such a list or better yet a table because I know this can be BIG.

Personally I am new to game development but NOT data saving.

I can see that we are crawling through this like pulling teeth to end up with a system that will track data.

What data? – the basics… a list,

Maybe I can ask this a different way.

What properties does a Player have in a typical RPG/Quest driven game that need to be saved?
please include all the little things ie… inventory, spell abilities, ??? i just dont know
What properties does an Enemy have in a typical RPG/Quest driven game that need to be saved?

What props in scene would need to be saved? ( will we have props with state?)

any comments will be read and thanks in advance for giving me some thought about basics of RPG/Quest driven games.

— I can see that we are crawling through this like pulling teeth to end up with a system that will track data.
What I meant by this comment:
We have not saved that much data at all… so our pace in saving state makes me wonder about the BIG picture… again being data driven as I am I would feel better if I an a better idea of the total amount of data we want to save… so please don’t misunderstand my intent here.

Hey Steve,

I am not following the RPG course so I am not sure if you are referring to something particular and the data you would need would probably vary from game to game but IMO, checking the RPG sheets of tabletop games might give you something to start with.

For example: Custom 13th Age Character Sheet | EN World | Dungeons & Dragons | Tabletop Roleplaying Games

Cheers…=)

My best advice on this is to keep track as you continue through the course. For example, already in the Core Combat Course, you have the Health component, the state it is saving is relatively simple: the current health.

If I wrote out a complete list without the knowledge of each of the components and their functions, they would be mostly meaningless.

I will give you a small head start, though… some of these won’t make much sense without the associated class, but I’ve been working on a conversion of our Saving System to Json (to address a vulnerability warning that Microsoft announced concerning BinaryFormatter).

So here is a json file of a test save I recently made. The majority of the items we’re saving can be found under the Player entry.

{
  "player": {
    "RPG.Movement.Mover": {
      "x": 26.5988083,
      "y": 2.9808197,
      "z": 26.96432
    },
    "RPG.Attributes.Health": 415.0,
    "RPG.Inventories.StatsEquipment": {
      "Weapon": "06937866-e68a-430c-ab01-b0c3c8906e95"
    },
    "RPG.Attributes.Mana": 240.0,
    "RPG.Stats.TraitStore": {
      "Strength": 3,
      "Constitution": 1,
      "Dexterity": 1
    },
    "GameDevTV.Inventories.Inventory": [
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      },
      {
        "itemID": null,
        "number": 0
      }
    ],
    "RPG.Inventories.RandomDropper": [],
    "RPG.Stats.Experience": 2929.4812,
    "GameDevTV.Inventories.ActionStore": {
      "0": {
        "itemID": "9d0578ce-a8ca-4634-9631-dfcc7002476a",
        "number": 1
      }
    },
    "RPG.Inventories.Purse": 332.0,
    "RPG.Quests.QuestList": {
      "17788": {
        "questName": "Swamp Donkey",
        "completedObjectives": []
      }
    }
  },
  "36f9eb35-70a8-4bd7-bd70-df667b4d5622": {
    "RPG.Movement.Mover": {
      "x": -36.6297226,
      "y": 6.46999931,
      "z": -7.38366
    },
    "RPG.Attributes.Health": 63.0,
    "RPG.Inventories.RandomDropper": []
  },
  "b9b0aa27-c828-448c-be8e-ed856a259c16": {
    "RPG.Movement.Mover": {
      "x": 0.224872589,
      "y": 1.609808,
      "z": -12.6371346
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "0826a0ca-17a2-475d-81ba-2405a29295a6": {
    "RPG.Movement.Mover": {
      "x": 2.00947571,
      "y": 1.60079,
      "z": -11.2938309
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "ba3df814-d2c9-4d75-8c81-52c3c6114351": {},
  "3a6a27d7-074e-4a00-804c-525769ed2ba7": {
    "RPG.Movement.Mover": {
      "x": -6.100464,
      "y": 1.58329391,
      "z": 7.75206947
    },
    "RPG.Attributes.Health": 0.0,
    "RPG.Inventories.RandomDropper": []
  },
  "57fc73b9-1a21-4eab-b669-8ebb9c3e2738": {
    "RPG.Movement.Mover": {
      "x": -24.3562317,
      "y": 3.88491058,
      "z": -11.1565142
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "ece3a915-9105-49d3-a4ac-170a33d489c3": {},
  "588bec02-907b-4a3b-ba52-5ffa9cc49e16": {
    "RPG.Movement.Mover": {
      "x": 10.6104622,
      "y": 1.46999931,
      "z": -22.0281429
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "00985ff0-2635-4c3b-be06-35f5613c4c90": {
    "RPG.Movement.Mover": {
      "x": -19.22845,
      "y": 1.56999969,
      "z": 22.1042614
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "9a18aa46-096a-492b-a388-ce0af89a04c8": {
    "RPG.Movement.Mover": {
      "x": -18.9816971,
      "y": 1.621685,
      "z": 10.5339794
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "2a46384c-3892-42a8-8a4e-b70f58ce8862": {
    "RPG.Movement.Mover": {
      "x": -22.8565369,
      "y": 3.92466927,
      "z": -10.1220741
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "e490e9d4-9bd7-41d4-a4e1-c447a466ba3f": {
    "RPG.Movement.Mover": {
      "x": -24.4357948,
      "y": 3.87579918,
      "z": -8.281422
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "f75a5be9-1b6a-4157-912b-90d653ebdd6b": {
    "RPG.Movement.Mover": {
      "x": -5.12612343,
      "y": 1.58263588,
      "z": 9.032583
    },
    "RPG.Attributes.Health": 0.0,
    "RPG.Inventories.RandomDropper": []
  },
  "cabfdf34-f161-45e2-91cf-f44bda119df3": {
    "RPG.Movement.Mover": {
      "x": 8.624573,
      "y": 1.53649712,
      "z": -21.3107662
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "92efdce8-03b1-43aa-bd62-4f19ab2fe6e0": {
    "RPG.Movement.Mover": {
      "x": 14.3627319,
      "y": 1.53401184,
      "z": -0.628204346
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Shops.Shop": {
      "06937866-e68a-430c-ab01-b0c3c8906e95": 1,
      "9d0578ce-a8ca-4634-9631-dfcc7002476a": 2
    }
  },
  "cdc5cbf1-b2ea-4b97-bcd2-fe2f42ecdd32": {
    "RPG.Movement.Mover": {
      "x": -3.40588379,
      "y": 1.56999969,
      "z": -29.6157417
    },
    "RPG.Attributes.Health": 42.0,
    "RPG.Inventories.RandomDropper": []
  },
  "71f85a6d-cae0-41d3-ba06-1f7da0449ce9": {
    "RPG.Movement.Mover": {
      "x": -21.210083,
      "y": 1.56999969,
      "z": 20.98866
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "499a205b-e20f-40e7-b712-3a75057ff4f8": {
    "RPG.Movement.Mover": {
      "x": -37.5152931,
      "y": 6.476652,
      "z": -5.89255047
    },
    "RPG.Attributes.Health": 63.0,
    "RPG.Inventories.RandomDropper": []
  },
  "b17ce1b0-4ba2-4973-a6a8-95f5473755ab": {},
  "3f1453a0-cf9a-453f-8214-9b713a21b87e": {},
  "f2cf9ca3-b506-4c71-ac22-71b8f336cb94": {
    "RPG.Movement.Mover": {
      "x": 11.089119,
      "y": 1.46999931,
      "z": -20.4241066
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "85df1511-9d16-477b-bf5a-b886f4efa70d": {
    "RPG.Movement.Mover": {
      "x": -35.98301,
      "y": 6.46999931,
      "z": -10.2805481
    },
    "RPG.Attributes.Health": 63.0,
    "RPG.Inventories.RandomDropper": []
  },
  "9c458a67-22dd-45f3-bc9e-94343c5a4131": {
    "RPG.Movement.Mover": {
      "x": -22.5299759,
      "y": 1.59337425,
      "z": 10.6136036
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "92a8e5bf-fa2c-4a05-9336-b75d6d4724ec": {},
  "d9147b20-153e-4b3f-98ec-25456c65fd63": {
    "RPG.Movement.Mover": {
      "x": -6.408283,
      "y": 1.56999969,
      "z": -27.65455
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "24d591c0-6157-4edf-a6c7-1b1863b19918": {
    "RPG.Movement.Mover": {
      "x": -4.25011444,
      "y": 1.56999969,
      "z": -28.3039818
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "679bf29d-5613-49f0-8110-66a2932d60e8": {
    "RPG.Movement.Mover": {
      "x": 10.18008,
      "y": 1.5553875,
      "z": -23.39344
    },
    "RPG.Attributes.Health": 42.0,
    "RPG.Inventories.RandomDropper": []
  },
  "24000892-d904-4637-8507-fe3d9c4082be": {
    "RPG.Movement.Mover": {
      "x": -15.6486168,
      "y": 1.56999969,
      "z": 17.693634
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "df66597f-a919-4768-806a-366090cd58b4": {
    "RPG.Movement.Mover": {
      "x": -10.6750145,
      "y": 1.5891571,
      "z": -24.9124718
    },
    "RPG.Attributes.Health": 42.0,
    "RPG.Inventories.RandomDropper": []
  },
  "2e5a4f1f-3299-42db-aa47-7335d6230c6d": {},
  "c5acf000-caff-4a12-b5e1-0fb8807ea93b": {
    "RPG.Movement.Mover": {
      "x": -38.6642761,
      "y": 6.46999931,
      "z": -9.148351
    },
    "RPG.Attributes.Health": 90.0,
    "RPG.Inventories.RandomDropper": []
  },
  "c7a38016-72c1-4e92-a613-3f819e5297dd": {
    "RPG.Movement.Mover": {
      "x": -37.3131447,
      "y": 6.46999931,
      "z": -6.457038
    },
    "RPG.Attributes.Health": 90.0,
    "RPG.Inventories.RandomDropper": []
  },
  "65072c99-dff7-44d1-a8f4-fa20d1aaafdf": {
    "RPG.Movement.Mover": {
      "x": 0.365139,
      "y": 1.604845,
      "z": -11.3003664
    },
    "RPG.Attributes.Health": 42.0,
    "RPG.Inventories.RandomDropper": []
  },
  "771055ac-a415-4ff0-99eb-03811be9ed37": {
    "RPG.Movement.Mover": {
      "x": 3.78326035,
      "y": 1.583004,
      "z": -10.7195549
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "c421e2b5-535f-4017-b39d-e62bbb765b1c": {
    "RPG.Movement.Mover": {
      "x": -40.59581,
      "y": 6.46999931,
      "z": -8.60709
    },
    "RPG.Attributes.Health": 90.0,
    "RPG.Inventories.RandomDropper": []
  },
  "be49e5d8-4216-485a-8302-518b6374fbf4": {
    "RPG.Movement.Mover": {
      "x": 8.305912,
      "y": 1.52859688,
      "z": -19.72513
    },
    "RPG.Attributes.Health": 42.0,
    "RPG.Inventories.RandomDropper": []
  },
  "70cbdde1-7247-41a6-861c-42145e46a55d": {
    "RPG.Movement.Mover": {
      "x": -7.86946869,
      "y": 1.61337662,
      "z": -26.312603
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "fc55f8b8-fa11-498f-a42c-59f516409c61": {
    "RPG.Movement.Mover": {
      "x": -23.3159046,
      "y": 1.991251,
      "z": 8.972509
    },
    "RPG.Attributes.Health": 60.0,
    "RPG.Inventories.RandomDropper": []
  },
  "7bb6e388-77d2-4cf4-9626-751354c705ae": {
    "RPG.Movement.Mover": {
      "x": -0.4880867,
      "y": 1.66422272,
      "z": -13.8916254
    },
    "RPG.Attributes.Health": 42.0,
    "RPG.Inventories.RandomDropper": []
  },
  "27cc8c88-973b-42ea-8ad7-3cb948e8dc19": {
    "RPG.Movement.Mover": {
      "x": -36.2826,
      "y": 6.528944,
      "z": -8.321118
    },
    "RPG.Attributes.Health": 63.0,
    "RPG.Inventories.RandomDropper": []
  },
  "14cb44f9-051c-4c6e-bffd-d3640594d1d4": {
    "RPG.Movement.Mover": {
      "x": -5.59662437,
      "y": 1.58400726,
      "z": 8.617382
    },
    "RPG.Attributes.Health": 0.0,
    "RPG.Inventories.RandomDropper": []
  },
  "lastSceneBuildIndex": 1
}

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.