Nesta linha de trabalho você fará duas coisas:
O ítem 2 acima é simples, graças aos recursos de serialização de objetos de Java. Basta garantir que o estado do jogo seja dado por um objeto (ou conjunto de objetos) serializável (isto é, que implemente a interface java.io.Serializable) e usar adequadamente os métodos writeObject() (da classe java.io.ObjectOutputStream) e readObject() (da classe java.io.ObjectInputStream).
Já o ítem 1 requer maior planejamento. Em vez de inventar um formato especial para o arquivo de texto com a definição do mundo virtual, usaremos XML (Extensible Markup Language), uma ``linguagem de marcação'' padronizada, que nos oferece as seguintes vantagens:
Eis um trecho de uma definição de um mundo virtual em XML:
<place> <place-name>clareira</place-name> <place-description> Você está numa pequena clareira na floresta. A vegetação a seu redor é fechada e impenetrável. Ao leste se vê o início de uma trilha muito estreita. Ao sul há algo que parece ser a entrada de uma caverna. </place-description> <exit> <exit-name>sul</exit-name> <exit-destination>caverna</exit-destination> </exit> <exit> <exit-name>leste</exit-name> <exit-destination>trilha</exit-destination> </exit> </place>Cada elemento do arquivo XML é demarcado por tags de início (com a forma <algum-tag>) e final (com a forma </algum-tag>). Os tags são dependentes da área de aplicação (você pode escolhê-los), assim como as regras de aninhamento de elementos. Essas regras dizem quais os elementos que precisam obrigatoriamente aparecer dentro de um certo elemento, quais os elementos que podem opcionalmente aparecer dentro de um certo elemento, etc. No caso de um elemento ``lugar'', é razoável que ele contenha um elemento ``nome'' e um elemento ``descrição'' (ambos obrigatórios), um conjunto (possivelmente vazio) de elementos do tipo ``saída'', e o que mais for conveniente (elementos para coisas, personagens, etc). Esse tipo de regra é especificada numa Document Type Declaration (DTD) específica para uma área de aplicação.