Choose your operating system:
Windows
macOS
Linux
Leaderboard (리더보드)는 플레이어가 친구나 전세계 플레이어들과 게임의 최고 점수를 경쟁하도록 하는 수단을 제공합니다. 게임에는 점수가 있는 모드가 다수 있을 수 있으며, 각 모드는 저마다의 리더보드가 있을 수 있습니다. 점수 기록 모드에서는 전통적인 점수 기반 게임의 경우 내림차순으로, 시간을 재는 레이싱 게임의 경우 오름차순으로 순위를 매길 수도 있습니다. 리더보드 인터페이스는 게임 안에서 리더보드를 표시하고 업데이트하는 데 필요한 툴을 제공합니다.
점수 획득 방법
리더보드에서 점수를 매기는 방법은 세 가지가 있으며, 각각 열거형으로 정의됩니다.
-
ELeaderboardSort
는 점수를 정렬할지 나타내며, 정렬한다면 오름차순 또는 내림차순이 됩니다. -
ELeaderboardFormat
은 형식을 제어합니다. 점수는 일반 원시 숫자일 수도, 초다 밀리초 단위 시간일 수도 있습니다. -
ELeaderboardUpdateMethod
는 리더보드에 플레이어의 현재 점수를 표시할지, 아니면 (정렬 방식에 따른) 최고 점수를 유지할지 나타냅니다.
리더보드 데이터 검색
리더보드 데이터는 상당히 클 수 있는데, 게임을 한 번이라도 플레이한 적이 있는 사용자 계정 각각에 대해 게임이 지원하는 각 리더보드마다 항목이 있을 수 있기 때문입니다.
그래서 검색은 청크 단위로 이루어지며, 게임에서는 몇 가지 방식으로 리더보드 일정 부분을 요청할 수 있습니다.
리더보드 데이터를 검색하는 모든 방식은
FOnlineLeaderboardRead
유형 파라미터를 받고 (연관 데이터 유형은
FOnlineLeaderboardRead
참고), 여기에는 온라인 서비스에서 전송받으려는 테이블 정의가 저장되며,
FOnLeaderboardReadComplete
유형 델리게이트에 완료 시 성공 또는 실패 여부를 나타내는
bool
값을 포함하여 호출합니다.
지원되는 쿼리 옵션은 다음과 같습니다.
함수 |
쿼리 설명 |
---|---|
|
사용자 명시 목록을 (
|
|
로컬 유저 인덱스가 지정된 경우, 해당 유저의 친구 각각에 대한 리더보드 점수를 찾습니다. |
|
순위와 범위를 받으며, 전세계 최상위 플레이어를 검색할 때 좋습니다. 이 요청은 범위로 지정된 순위 이상 또는 이하 리더보드 점수를 검색합니다. 예를 들어 순위 100 에 범위 50 은 순위가 50 위에서 150 위 사이인 플레이어의 기록을 요청합니다. |
|
|
리더보드 데이터 업로드
개별 플레이어의 점수를 작성하려면
WriteLeaderboards
를 사용하여 (
FOnlineLeaderboardWrite
유형) 업데이트를 캐시에 저장한 뒤 나중에 온라인 서비스에 전송합니다.
각
FOnlineLeaderboardWrite
오브젝트에는 세션 이름과 (
FUniqueNetId
로 식별되는) 플레이어가 연결됩니다.
게임이 온라인 서비스의 기록에 세션 데이터를 커밋할 준비가 되면,
FlushLeaderboards
는 캐시에 저장된 데이터를 전송한 뒤 로컬 시스템에서 지우고, 완료되면 온라인 서브시스템의
OnLeaderboardFlushComplete
델리게이트를 호출합니다.
한 번에
WriteLeaderboards
로 캐시에 저장할 수 있는 업데이트는 최대 5 개입니다.
초과 업데이트는 버리므로 그 전에
FlushLeaderboards
를 호출해야 합니다.