SFML을 사용하여 C ++로 작성된 2D 게임이 있습니다. 파일이나 데이터베이스에 줄 / 항목 / 행을 추가하여 항목이나 엔터티와 같은 콘텐츠를 쉽게 추가 할 수있는 방식으로 게임을 확장 가능하게 만들고 싶습니다.
프로그램으로 컴파일 할 필요가 없지만 런타임에 읽고 쓸 수있는 것을 찾고 있습니다. 데이터베이스를 사용하는 것이 언제 적절한가요?
SFML을 사용하여 C ++로 작성된 2D 게임이 있습니다. 파일이나 데이터베이스에 줄 / 항목 / 행을 추가하여 항목이나 엔터티와 같은 콘텐츠를 쉽게 추가 할 수있는 방식으로 게임을 확장 가능하게 만들고 싶습니다.
프로그램으로 컴파일 할 필요가 없지만 런타임에 읽고 쓸 수있는 것을 찾고 있습니다. 데이터베이스를 사용하는 것이 언제 적절한가요?
답변:
데이터베이스가 필요한 경우에만 데이터베이스를 사용하십시오. 그건:
게임 데이터가 이러한 조건 중 하나를 만족하면 데이터베이스를 사용하면 도움이 될 수 있습니다. 이것들은 흔하지 않으며 아마도 그것들을 만족시키지 못할 것입니다. 그렇다면 SQLite 또는 실행중인 서버가 필요하지 않고 라이브러리 일뿐이라는 비슷한 아이디어가 있습니다.
그렇지 않으면 시작시 파일을 사용하고 메모리에 데이터를로드하십시오. 게임을 수정 가능하게하려면 게임의 디렉토리와 모드의 디렉토리 모두에서이 데이터를로드하고 충돌하는 정보를 병합하는 방법을 정의하십시오.
또한이 경우 해당주의 할 데이터베이스를 사용, 그것은 모두 당신과 개조 '개발자는 여전히 게임을 할 때 부하를 초기 데이터를 읽고 데이터베이스를 구성하는 파일을 사용하는 혜택을 누릴 수 있습니다. 이 데이터베이스의 잠재적 크기가 크지 않은 경우 (즉, 수십 MiB 이상) 인 메모리 데이터베이스를 사용할 수 있습니다.이 데이터베이스 는 SQLite :memory:
에서 데이터베이스 경로로 지정하여 가능 합니다 .
SQLite
귀하의 요구가 "복잡하거나"거대하지 않더라도을 고려하는 것이 매우 두 번째 입니다. 실제로 작고 내장 된 무언가를 사용하면 데이터베이스를 손쉽게 사용할 수있는 데에는 많은 이유가 있습니다.
나는 게임 개발을 위해 MongoDB를 정말 좋아하고 성능이 뛰어나며 유연하고 사용하기 쉽고 json 기반입니다.
NoSQL Arch이기 때문에 컬렉션에 필요한 모든 필드를 추가 할 수 있으므로 게임과 같은 "동적"환경에 매우 적합합니다.
엿봄 줘 .
어떤 종류의 MMO Turn 기반 전략 게임을 개발하고 있다면 아마도 CouchDB 에 대해 읽어야 할 것입니다 .NoSQL 데이터베이스는 버전 관리 시스템이 정말 좋습니다.
CastleDB는 나중에 데이터베이스를 JSON 파일로 변환하는 편집기이기 때문에 좋은 옵션입니다. 나는 평문 파일이 최고라고 말하는 많은 답변을 보았으므로 CastleDB는 아마도 두 세계에서 최고 일 것입니다.