naverz / zepeto-script-sample

38 stars 7 forks source link

서버에서 불러올 랭킹과 빌드잇 관련하여 질문 드립니다. #109

Closed JungYerim closed 2 years ago

JungYerim commented 2 years ago

랭킹 기능을 쓰기 위해서 다양한 방법을 고민 중에 있습니다. 아무래도 전체 서버에서 같은 맵에 대한 점수 랭킹을 여러개에 생성된 방에 실시간으로 반영하기 어려울 것 같다는 판단을 하였습니다.

랭킹은 생성된 방(동일한 방) 내에서 달성된 점수만을 기록하고 불러올 수 있는 걸까요? 또한 서버에서 유저가 팔로우 하고있는 친구의 점수만을 불러올 수 있는지 궁금합니다.

빌드잇 부분에서도 저희가 빌드잇에 있는 요소 (타 크리에이터가 만들 요소 제외)들을 저희가 사용할 수 있는지 궁금합니다.

NoahHahm commented 2 years ago

빌드잇의 오브젝트 요소는 사용가능하지만, 아직 기능적인 부분은 제공하고 있지는 않습니다. 또한 게임에 대한 리더보드는 현 내부에서 정리중 이라고 합니다. (https://github.com/naverz/zepeto-script-sample/issues/103)

우선 급하게 만든다고 생각해보면 서버의 사용자 스토리지를 이용하는 방법이 될것 같은데요.

방 자체는 사실 일회성에 불가 합니다. 사용자가 전부 나가거나 하는 경우 방은 Destory 됩니다. 따라서, 해당 룸에서만 (일회성) 으로 사용하는 경우 아래 (instance variable)로 고려해볼 수 있습니다. (데이터 유실 주의;)

단, 내 게임에서 전체에 대한 랭킹은 리더보드를 이용해야 합니다. (영구 저장) 반대로 간단하게 점수만 기록된 경우라면.. 서버 DataStorage 를 사용해볼만 합니다. (영구 저장)

export default class extends Sandbox {

    // instance variable 로 사용시, 룸 Destory 전까지는 살아있음.
    let dic = {
        userId: 1000
    }

    onCreate(options: SandboxOptions) {

    }
}
JungYerim commented 2 years ago

@NoahHahm 답장 주셔서 감사합니다. 추가적으로 더 궁금한 사항이 있어 질문드립니다.

전체에 대한 랭킹은 리더보드 사용을 해야한다고 말씀해주셨는데, 리더보드 기능이 곧 업데이트 된다고 들었습니다. 혹시 업데이트 시점을 대강 알 수 있을까요?

빌드잇 오브젝트 요소는 사용이 가능하다고 하셨는데, 기능적으로 제공이 되지 않는다면 저희가 유니티 내에서 원하는 오브젝트를 따로 불러오기는 어려울까요? 혹시 불러올 수 있는 방법이 있다면 답변 남겨 주시면 감사하겠습니다!

NoahHahm commented 2 years ago

아직 정확하게는 말씀드리기 어렵지만 12월 첫째주 ~ 둘째주 정도로 예상하고 있습니다. (변동 있을수도 있어요) 패키지 매니져에서 빌드잇 요소를 사용할수 있지만 현 제페토 월드에 있는 모든 오브젝트를 100% 개방한건 아닙니다. 시점은 말씀드리기 어렵지만 이부분도 향후 오픈계획에 있으니 참고 부탁드립니다.