Documentation index for AI agents

구현

GS2를 활용한 게임 개발에 대하여

GS2-SDK는 게임 엔진에 특화된 SDK가 제공됩니다. Unity, Unreal Engine 5, Godot을 이용하는 개발자는 이 SDK를 통해 다양한 기능을 이용할 수 있습니다.

Unity

Unity에서 이용할 수 있는 SDK로 “GS2-SDK for Unity"를 제공하고 있습니다. Unity Package Manager(UPM)와 완전히 통합되어 있어, SDK 갱신도 UPM에서 수행할 수 있습니다.

의존하고 있는 라이브러리는 LitJSON(Public Domain) / websocket-sharp(MIT) / Protocol Buffers(BSD)뿐입니다. GS2-SDK for Unity는 Apache License 2.0으로 제공되며, 다음 GitHub 저장소에서 모든 소스 코드가 공개되어 있습니다.

GS2-SDK for Unity는 서버에서 취득한 데이터의 상태 관리 기능을 갖고 있습니다. API를 통해 취득한 데이터는 SDK 레이어에서 캐시되며, 서버의 값이 갱신되면 캐시도 자동으로 갱신됩니다.

따라서 개발자는 데이터 로딩에 관해서는 특별히 신경 쓰지 않고 Update 함수에서 GS2-SDK의 API를 호출하여 최신 값에 접근할 수 있습니다.

구현 예제

    var result = await gs2.Account.Namespace(
        namespaceName: "namespace-0001"
    ).CreateAsync();

    var item = await result.ModelAsync();
    var userId = item.UserId;
    var password = item.Password;

GS2-UIKit for Unity

uikit.png

보다 Unity에 특화된 SDK입니다.

Unity Editor에서 GameObject에 컴포넌트를 부여하는 것만으로, 텍스트에 아이템 소지 수량을 반영하거나 횟수 제한 상한에 도달했는지 여부에 따라 GameObject를 활성화·비활성화하는 설정을 할 수 있습니다.

서버에서 데이터를 취득하여 UI에 반영하는 단순한 구현이라면 UI Kit을 사용함으로써 노코드로 실현할 수 있습니다.

Unreal Engine 5

Unreal Engine 5에서 이용할 수 있는 SDK로 “GS2-SDK for Unreal Engine"을 제공하고 있습니다. Unreal Engine의 플러그인으로 제공되며, 코드를 배치하는 것만으로 프로젝트에 포함시킬 수 있습니다.

의존하는 외부 라이브러리는 없으며, 모두 Unreal Engine 5의 표준 기능으로 구현되어 있습니다. GS2-SDK for Unreal Engine은 Apache License 2.0으로 제공되며, 다음 GitHub 저장소에서 모든 소스 코드가 공개되어 있습니다.

구현 예제

    const auto Domain = Gs2->Account->Namespace(
        "namespace-0001" // namespaceName
    );
    const auto Future = Domain->Create(
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError()) return false;

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError()) return false;
    const auto Result = Future2->GetTask().Result();

Blueprint SDK

blueprint.png

보다 Unreal Engine 5에 특화된 SDK입니다.

Unreal Editor에서 개발할 수 있는 노드 기반 프로그래밍 환경인 Blueprint에 대응하는 SDK입니다. Blueprint SDK를 사용하면 C++을 사용하지 않고도 GS2의 기능에 접근할 수 있습니다.

Godot

Godot 4(GDScript)에서 이용할 수 있는 SDK로 “GS2 SDK for Godot"을 제공하고 있습니다. SDK는 addons/gs2 폴더로 제공되며, Godot 프로젝트에 복사하여 이용할 수 있습니다.

GS2 SDK for Godot은 게임 내에서 사용하기 쉬운 Ez 레이어와 저수준 API 클라이언트를 함께 제공합니다. Gs2EzDomain을 생성하면 Unity의 gs2.Account 등과 마찬가지로 ez.account, ez.inventory 같은 서비스 프로퍼티를 통해 각 기능에 접근할 수 있습니다. Apache License 2.0으로 제공되며, 다음 GitHub 저장소에서 모든 소스 코드가 공개되어 있습니다.

구현 예제

var credential = Gs2BasicCredential.new("client-id", "client-secret")
var connection = Gs2Connection.new(credential, Gs2Region.AP_NORTHEAST_1)
var ez = Gs2EzDomain.new(connection)

var create_result = await ez.account.namespace_(
    "namespace-0001"
).create()
if create_result.error != null:
    push_error(str(create_result.error))
    return

var model_result = await create_result.result.model()
if model_result.error != null:
    push_error(str(model_result.error))
    return

var account = model_result.result
print("UserId: ", account.user_id)
print("Password: ", account.password)

GS2의 기능 확장

GS2 마이크로서비스의 기능 확장 방법