2009-09-18 3 views

답변

2

정말 원하는대로 달라집니다. 둘 다 완벽하게 받아 들일 수 있습니다. 게임 상태가 정말로 복잡하다면, 파일을 사용하는 것이 더 쉬울 수도 있습니다 (게임 상태를 가져 와서 NSKeyedArchiver 또는 다른 것으로 인코딩하는 것). 그러나 간단한 게임 (플레이어가이 위치에있는 경우)을 사용하면 SQLite가 좋은 옵션이됩니다.

두 가지 장점을 모두 활용하려면 CoreData를 사용하는 것이 좋습니다.

3

게임 데이터를 자주 검색하거나 정렬해야하거나 일반적으로 한 번에 데이터의 하위 집합 만로드해야하는 경우 SQLite를 고려해야합니다.

개체 그래프를 디스크에 저장하고 시작시 모든 것을 다시로드하기 만하면 NSCoder를 사용하여 게임 개체를 파일로 보관합니다 (기본적으로 이진 plist로 저장 됨).

게임 데이터를 서버 또는 다른 시스템과 교환해야하는 경우 XML 또는 JSON과 같은 직렬화 형식을 볼 수 있습니다.

1

RPG의 경우 게임 자체의 내부 기능의 일부로 큰 데이터 세트에서 요소를 검색하여 검색해야 할 수 있으므로 SQLite를 사용해야합니다 (OS 2.x를 타겟팅하는 경우) 또는 Core Data (OS 3.x를 대상으로하는 경우)를 선택하십시오. 어쨌든 게임 에셋을로드하는 데 데이터베이스를 사용하기 때문에 상태를 저장하는 데만 데이터베이스를 사용하는 것이 좋습니다. 다시 말하지만, RPG의 경우 일반 데이터 파일보다 데이터베이스가 더 빠른 게임 상태를 위해 많은 양의 데이터를로드하고 저장하게 될 것입니다.

코어 데이터를 사용하면 복잡한 객체 그래프를 관리하고 튜닝 된 SQLite보다 빠르며 메모리를 훨씬 적게 사용할 수 있으며 코드 작성이 훨씬 쉬울 수 있지만 iPhone OS 3.x에서만 사용할 수 있습니다. 여전히 2.x를 목표로 삼고 싶다면 SQLite가 될 것입니다.

제 경험으로 볼 때 Core Data와 SQLite는 데이터 보존성을 요구하는 가장 간단한 경우를 제외하면 일반 파일보다 훨씬 빠릅니다.