Save File Woes and other assorted problems

Just a few questions:

  1. As far as I can gather, data in save files can simply be represented by a list (nested arrays) of all the objects in the game and the values of predicates related with them. Is that correct?
  2. If that is correct, saving a text file containing the location of objects in form of lists (like;
(universe (living-room ((table (pen paper)) (chair) (washing-machine (clothes)))) (bedroom .....

and value of predicates (like the cyclops-fled-p of Zork 1) as a simple ASCII file should work, right? As far as I can understand, that’s the data saved in queztal files, although in binary.
3. I have made it so when a game-world is completely empty, it is still a room like thingy called universe (to contain all rooms in one construct). Right now, you need at least one room (inside universe) for the game to be playable. Have there been any games that would have been impossible to implement due to this atleast-one-room limitation? Any ideas how to remove it?
4. Recommendation for some vast/complicated/“different” open-source games
5. Can using the following kind of code structure while programming games lead to inflexibility or other problems:

(make-room bed-room
(loc 'house)
(objects (living-room-f))
(desc "Bed Room")
(way east 'bathroom)
(if mom-is-home-p (way west 'kitchen)
                            (way west "Mom asked you not to go there"))
(way down (basement-exit))
(flags rlandbit lightbit safebit))


Have you read through the “Cross Compile Data Integrity” thread?

Inform games contain object property data, object location data, array data, global variables, and a few other data formats that are encoded by the compiler. All of these are stored in memory (in various formats), and Quetzal is a memory dump. Games are free to write any data they like into memory; I7 manages complex data structures like dynamic lists and indexed text.

Inform 6 constructs objects as a forest (set of simple trees). You could represent that as a single tree by creating a new “universe” object, sure. But that would be a confusing way to handle Inform 6 data. If you’re not handling Inform 6 data, you can do whatever you want.

Any kind of programming structure could lead to inflexibility. You can’t really tell from toy examples; you have to consider large games.