이를 사용하여 제작된 놀라운 게임들이 있었습니다. Unity 플랫폼에서 볼 수 있습니다. 일부는 Unity 앱 쇼케이스 섹션으로 이동합니다. 이러한 창조물만큼이나 인상적인 것은 Unity로 빌드된 모든 게임에는 로컬 데이터베이스라는 핵심 구성 요소가 빠져 있습니다.

Unity에서 로컬로 호스팅되는 데이터베이스는 다음을 수행할 수 있습니다. 게임 데이터 지속 게임 플레이를 개선하여 게임이 종료되거나 느려지지 않습니다. 네트워크 연결이 끊어집니다. 플레이어의 게임 내 최고 점수는 저장되었다가 네트워크 연결이 복구되면 원격 데이터베이스에 동기화될 수도 있습니다.

이 블로그 게시물에서는 Unity와 NoSQL 데이터베이스인 카우치베이스가 어떻게 함께 작동하여 다음을 제공할 수 있는지 살펴봅니다. 뛰어난 모바일 게임 플레이어를 위한 경험.

유니티 게임즈와 카우치베이스

유니티용 카우치베이스 모바일을 시작하려면 먼저 튜토리얼 를 참조하여 기존 Unity 게임을 가져와 로컬 데이터베이스를 추가합니다. 첫 번째 부분은 Couchbase Lite 프레임워크를 가져오는 것입니다. 예제 앱에서는 GameController.cs 파일의 맨 위에 Couchbase를 포함시킵니다:

Unity 게임 데이터베이스 생성

우리가 빌드하는 게임의 경우 플레이어 데이터는 문서에 저장되며 플레이어의 최고 점수가 포함된 문서를 가져옵니다. 데이터베이스를 검색하거나 데이터베이스가 없는 경우 데이터베이스를 생성하기 위해 Couchbase를 참조합니다. 관리자 클래스.

플레이어 문서 검색

'player_data'라는 문서를 통해 플레이어의 게임 내 데이터를 참조합니다. 문서를 요청할 때 데이터베이스 변수 db를 참조하면 해당 문서가 'spaceshooter' 데이터베이스와 연결됩니다. 우리는 문서 가져오기 메서드를 호출하고 문서 이름을 전달합니다. 문서가 존재하지 않으면 문서가 생성됩니다.

데이터는 문서의 속성으로 설명되며, 게임 내에서 사용자의 최고 점수를 설정하려면 문서의 속성을 수정하고 새 수정본을 저장합니다. 이를 위해 업데이트 메서드를 사용합니다.

게임용 로컬 데이터베이스를 보유하면 네트워크에 의존하지 않고도 게임 속성을 기기에 저장할 수 있다는 장점이 있습니다.

로컬 데이터 복제

복제 엔드포인트를 생성하면 로컬 데이터를 원격 서버로 푸시할 수 있습니다. 이를 위해 CreatePushReplication 메서드를 호출하고 동기화할 엔드포인트 URL을 전달합니다. 복제를 시작하려면 변수에서 'Start()'를 실행합니다.

데이터는 로컬에서 유지되며, 연결이 가능한 경우 원격 엔드포인트에서도 유지됩니다.

원격 데이터 동기화

원격 엔드포인트에서 최신 데이터를 가져오는 것은 로컬에 저장하고 동기화하는 것만큼이나 간단합니다. 단일 풀 복제를 만들려면 먼저 'GetDatabase' 메서드를 호출하고 데이터베이스 이름(이 경우 'spaceshooter')을 전달하여 데이터베이스를 가져옵니다. 하지만 이제 'PushReplication'을 통해 기기에 로컬로 있는 데이터로 원격 서버를 업데이트하는 대신 원격 엔드포인트에서 'PullReplication'을 실행합니다.

그리고 이전과 마찬가지로 변수에서 Start() 메서드를 호출하면 원격 엔드포인트에서 장치로 데이터를 동기화하는 복제 프로세스가 시작됩니다.

플레이어 데이터 검색

'스페이스슈터' 데이터베이스에 무엇이 있는지 살펴보기 위해 데이터베이스를 나타내는 변수를 참조하여 "player_data" 문서를 사용할 수 있는지 확인할 수 있습니다:

이제 플레이어의 최고 점수를 검색하려면 'high_score' 키의 값으로 highScore 변수를 채우면 됩니다.

결론

Unity 게임 디자인에 로컬 데이터베이스를 사용해야 하는 이유는 여러 가지가 있습니다. 카우치베이스 모바일을 사용하면 Unity 게임은 다음과 같은 이점을 누릴 수 있습니다. 로컬 상태 저장과 같은 로컬 활동을 실행하고 앱 인스턴스 간의 정보 일관성을 조정하기 위해 동기화 서비스를 설정합니다.

결론: 로컬 게임 환경이 풍부할수록, 즉 네트워크 종속적 유니티 게임 경험은 플레이성을 위한 것입니다. 자신감 를 추가하게 됩니다. 기능과 앱 네트워크 전반에서 상태를 동기화할 수 있는 점점 더 정교한 서비스를 제공합니다.

다음 블로그에서는 다음과 같은 내용을 살펴보겠습니다. 추가 방법 카우치베이스 모바일 게임 디자인을 향상시킬 수 있습니다., 개발 및 플레이.

작성자

게시자 윌리엄 호앙, 모바일 개발자 옹호자, Couchbase

윌리엄은 카우치베이스의 모바일 엔지니어링/개발자 경험 팀의 개발자 옹호자였습니다. 커피와 코드에 대한 그의 사랑은 오프라인 대면 경험을 즐기면서 모바일의 세계로 넘어왔습니다. 그 전에는 Twitter, BlackBerry, Microsoft에서 개발자 관계 팀에서 일했으며, Research In Motion에서 소프트웨어 임베디드 GPS 엔지니어로 근무하기도 했습니다. 윌리엄은 맥길 대학교에서 전기 소프트웨어 공학을 전공했습니다.

댓글 남기기