분산 데이터베이스

유니티와 게임 개발을 위해 특수 설계된 최고의 확장성을 가진 데이터베이스 입니다.

DOWNLOAD TRIAL

Overview.

uGameDB는 유니티 게임 엔진, 특히 네트워크 게임에 적합한 데이터베이스 솔루션입니다. uGameDB는 유니티와 타이트하게 연동되어 동작하는 uGameDB 클라이언트와

한단계 앞선 확장성을 자랑하는 Riak 백엔드 데이터베이스로 구성되어 있습니다.

백엔드 데이터베이스는 여러대의 게임 서버와 제한없이 연동이 가능하며 uLobby 시스템과 같이 영속적인 게임 정보를 읽고 써야하는 모든 종류의 어플리케이션과 함께 사용될 수 있습니다.

안정성과 확장성

네트워크 게임들은 보통 많은 게임 서버들로 구성되어있고, 이 서버들이 장시간 실행되면 끊임없는 데이터의 엑세스를 필요로 합니다. 만약 데이터베이스의 접근이 불가능해지면, 게임을 할 수 없는 경우가 대부분이기 때문에,  이렇게 되면 장시간 실행되는 온라인 게임의 경우 그 평판에 큰 타격을 입게 됩니다.

Riak 백엔드 데이터베이스는 안정성과 확장성에 중점을 둔 분산 데이터베이스 솔루션입니다. 한대의 데이터베이스 서버 대신에 여러개의 노드로 이루어진 Riak 클러스터는 데이터에 대한 책임을 공유합니다. 만약 하나의 노드가 크래쉬되거나 접근이 되지 않아도 클러스터는 계속 데이터를 처리 할 수 있습니다. 용량을 늘리기 위해 클러스터에 새로운 노드를 점검없이 즉시 추가할 수 있습니다. 데이터는 자동적으로 복제되고 최적의 성능을 위해 각 노드에 분산처리 됩니다.

간단한 데이터배치(data layout)

Riak 데이터베이스에서 데이터는 키-밸류 페어(key-value pair, 혹은 KVP)로 버킷(bucket)에 저장됩니다. 버킷은 여러개의 키-밸류 페어를 포함하는 콘테이너와 같은 형태로써 키끼리 충돌을 일으키지 않도록 하는 네임스페이스(namespace)라고 볼 수 있습니다. 키(key)는 스트링(string) 형식이며 벨류(value)는 형식의 제한을 받지 않는 데이터입니다.

쿼리의 처리는 Riak의 강력한 MapReduce시스템으로 동작하며 자바스크립트 코드로 작성됩니다. 쿼리는 키와 밸류 어떤쪽에서도 동작하며 결과물은 리스트(list) 형태로 반환됩니다. 개발자는 “이 상인이 파는 5000 골드 미만의 모든 검 목록” 또는 “플레이어의 PVP레벨보다 5레벨 이상 높지 않은 모든 플레이어의 목록”등을 요청할 수 있습니다.

Unity와의 연동

uGameDB 클라이언트는 데이터베이스 요청을 하기 매우 쉬운 인터페이스를 제공하며 병렬 요청을 최소한의 코드로써 처리할수 있도록 유니티의 코루틴(coroutine)을 이용합니다. 따라서 게임 서버의 데이터 코드의 작성과 유지가 간결하며 버그의 위험성이 적습니다.

요청이 uGameDB클라이언트를 통해 보내진 후 응답이 올 때까지는 자연적으로 발생하는 시간차가 있습니다.  uGameDB는 유니티의 강력한 코루틴(coroutine) 기능함을 이용해 논리적 상호작용 순서를 유지함으로써 개발자가 원활한 흐름의 데이터베이스 호출을 할 수 있도록 해줍니다. 코루틴뿐 아니라 전통적인 콜백 패턴(callback pattern)또한 지원합니다.

유연성

모든 데이터 타입은 uGameDB에 직렬화 되어 저장됩니다. 추가적인 코딩 없이도 전체 클래스와 중첩 타입 또한 자동적으로 JSON 또는 고밀도 바이너리 데이터로 직렬화 되어 저장됩니다. 만약 개발자가 크고 복잡한 클래스들을 통채로 저장하고 싶지 않을 때, uGameDB는 각 타입별로 커스텀 직렬화를 쉽게 정의하여 멤버중 일부만을 저장할 수 있도록 해 줍니다.

Technologies.

Riak / C# / JavaScript

Product info

Manual

API

새로운 소식을 받아보세요

메일링 리스트를 구독하시면 채팅 기능, 문서 업데이트, 신규 예제, 흥미로운 비디오, 최신 툴등에 관련된 새로운 소식들을 받아보실 수 있습니다

Language support

C#

JavaScript (UnityScript)

Boo

Client platforms

Unity Web Player

PC & Mac Standalone

iPhone, iPod Touch & iPad

Android

Xbox 360

PS3

Nintendo Wii

Database platforms

Linux