HIROαさんの質問にあることを私も考えていました。(RPGを作ろうと考えていたので)私には技術がないのでプログラムやアルゴリズムに関する解説はできませんが、仕組みは何となく考えていたので、そちらの解説では力になれるかもしれません。
まず、ダニエルさんがおっしゃるように、変数を使うののがミソになると思います。ここで「ポケモン」を例に考えてみると、
例えば、「前回セーブした地点からゲームを再開する」場合
「○○シティ(タウン)の座標X,Yの地点でセーブをした」ということセーブします。
この処理をする時、必要なことは以下の3っつかと
1「○○」の部分→そのシティ(タウン)のマップ番号の変数をセーブ。
2「X座標,Y座標」→プレイヤーのスプライトのX,Y座標をセーブ
3「再開する」→マップ番号とX,Y座標をLOADしてそれに基づいてBG、スプライトを表示する。
多分こんな感じで大丈夫かと。
2そうだね プレイ済み