Das sollte eher eine Art Schutz sein, sollte ich mal wieder vollkommenen Unsinn geschrieben haben, dass nicht gleich auf mich eingeprügelt wird.
Aber mal Spaß bei Seite:
Die Situation, die du beschreiben hast, ist durchaus unpraktisch, allerdings kommt es auf das Game Design an, ob eine solche Situation auftreten kann. In meinem Action Adventure beispielsweise wird dies nicht der Fall sein, in anderen Spielen wäre es aber durchaus denkbar. Wenn man ein solch freies Herumreisen zwischen den Gebieten hat, dann könnte man überlegen, ob man dafür das Prefetching deaktiviert, sofern es andernfalls überhaupt greifen würde. Es wäre dann immernoch denkbar, dass die Teilgebiete einer Stadt per Prefetching geladen werden.
Was ein Teilgebiet im konkreten Fall ist, kann wieder unterschiedlich sein. In meinem Action Adventure wäre eine Map der kleinstmögliche ladbare Teil. In anderen Spielen sind die Maps häufig in Chunks unterteilt, da die Verwaltung aufgrund ihrer Größe sonst geradezu unschaffbar werden würde. Da wären dann die Chunks die kleinstmöglichen Teile, die man Prefetchen könnte. Auf die anderen bereisbaren Städte übertragen: man könnte von diesen vorerst nur die beim Betreten erforderlichen Chunks prefetchen und die restlichen sobald es dann tatsächlich erforderlich ist (wenn der Spieler diese Map betritt).
Was eine bessere Herangehensweise ist kommt sehr stark auf den Einzelfall an und es lässt sich keine allgemeingültige Lösung benennen.
Und nicht nur du findest die Spieleetnwicklung schwerer als die Anwendungsentwicklung.
@ERROR:
Als ich mein Action Adventure noch in Python hatte, waren alle Dateien Textdateien und jetzt mit C# habe ich immernoch das gleiche Format für die Rohdaten. Da ich XNA verwende, nutze ich natürlich auch die Kompilierung des Ressourcen und generiere mir *.xnb-Dateien, allerdings hätte ich mit einem anderen Framework wohl immernoch das gleiche Format auch zur Laufzeit des Spiels.
Ich würde dir also empfehlen, bei Textdokumenten zu bleiben bis das Codegerüst wirklich fertig ist und in diesem höchsten Bugs zu besitigen sind. Dann kannst du dir nochmal Gedanken machen, ein anderes Format zu nehmen, zumal du dann wahrscheinlich erst mit Sicherheit alle Daten kennst, die gespeichert werden müssen und wie sie im Spiel dann später benötigt werden.
Textdateien haben übrigens, bedingt durch ihre bessere Editierbarkeit, den Vorteil, dass Konflikte in einem Versionsverwaltungssystem besser bereinigt werden können, allerdings wird das erst dann relevant, wenn mehr als 1 Person mittels Versionsverwaltung an dem Spiel arbeitet.