It seems to me that for an RPG, you have to have some set of variables that comprise a save file, such that the game can get you back to where you were upon reloading. Obviously, this need not be *all* the variables that the game uses, but only some small subset of them.

It also seems to me that you'd have a rather large set of data that is in use during a battle, and some set that is in use outside of battle (smaller than the battle data but still larger than a save file). I think we can agree on all of those general statement.

While the battle engine is probably the most difficult thing to do, it is also the most *nested* in terms of code: a battle is called from somewhere else, and it is a self-contained module as far as what it accomplishes. Outside of battle, you never need monster data (barring some kind of bestiary), level up data (barring some event-based level system), magic data (excepting the few non-battle spells), item data (except a few healing/status items)... What I'm saying is that the battle engine essentially is the driver of all the data. Everything else is just walking around on a map and keeping track of very general things like time, money, inventory, map/position... and of course churning out "events" which are really just a script (step here, do this..).

So what all has to happen for battles to be a reality? (not in final form, but as a testable module)