2009-09-18 5 views

Respuesta

2

Realmente depende de lo que quieras. Ambos son perfectamente aceptables. Si el estado de tu juego es realmente complejo, entonces usar un archivo puede ser más fácil (toma tu estado de juego y codifícalo con un NSKeyedArchiver o algo así). Sin embargo, si tienes un juego simple (el jugador está en este nivel en esta posición), entonces SQLite sería una gran opción.

Si desea lo mejor de ambos mundos, también puede considerar el uso de CoreData.

3

Si necesita buscar/ordenar los datos del juego con frecuencia o, por lo general, solo carga un subconjunto de los datos a la vez, entonces debe considerar SQLite.

Si necesita simplemente almacenar su gráfico de objetos en el disco y volver a cargar todo al inicio, utilice NSCoder para archivar los objetos de su juego en un archivo (se almacena como un listado binario de manera predeterminada).

Si necesita intercambiar datos del juego con un servidor u otro sistema, puede ver un formato de serialización como XML o JSON.

1

Para un juego de rol, probablemente necesite buscar y recuperar elementos de un gran conjunto de datos como parte del funcionamiento interno del juego, por lo que debe usar SQLite (si se dirige a OS 2.x.) o Core Data (si se dirige a OS 3.x) para eso. Debido a que usarás una base de datos de todos modos para cargar los recursos de tu juego, solo tiene sentido usar eso para guardar el estado. Una vez más, para un juego de rol probablemente cargará y guardará una gran cantidad de datos para el estado del juego, para lo cual una base de datos será más rápida que un archivo de datos simple.

Core Data le permite administrar un gráfico de objeto complejo, es más rápido que incluso sintonizado SQLite, puede usar mucha menos memoria y puede ser mucho más fácil de codificar, pero solo está disponible en iPhone OS 3.x. Si aún desea segmentar 2.x, SQLite sería el camino a seguir.

En mi experiencia, tanto Core Data como SQLite han sido mucho más rápidos que los archivos simples para todos excepto para los casos más simples que requieren persistencia de datos.

Cuestiones relacionadas