Hey, I have a question about how designing a game editor would for an engine would work. Let's say I am making an engine for some sort of RPG game. My instinct would tell me to build an editor tool which allows to to create a file which would record the data for a given spot like a room in a dungeon. The file could simply be a list of all the entities in the room and I could load the file when the game is running. However, what worries me is if I make a change to the data which an entity has (like an extra int to the entity struct), all the level files I made in the editor suddenly become useless and I would need to remake them from scratch.
I could only think of a couple potential solutions. The first is to simply not add any changes to entities once I began creating room files. This means I would need to be 100% sure my entities have all the potential data they need and I have tested them extensively before beginning to build the bulk of the game. This seems like the safest option, but the idea of not being able to add a new feature later bothers me a little.
A second solution would be a some sort of tool or function which could map older entity structures into newly changed entity structures. This sounds a little complicated and I haven't thought too much about how I would implement such a thing.
Another would be to try to format the room file in away to lessen the impact adding changes to entities might make. This might look like a room file having the number of entities in a room at startup and then a line that applies each specific attribute to each entity. That would mean that only the attributes that have been changed would break. This seems like a decent solution but might take a little more work...
Am I missing an easy solution? Are there any good resources on this topic? I have been thinking about this for awhile now and wanted to know what others think about this topic.
Thanks!