안녕하세요 게임내에 컨텐츠를 만들려고 하는데, 구현이 가능할지 기능 문의 드립니다

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

안녕하세요 게임내에 컨텐츠를 만들려고 하는데, 구현이 가능할지 기능 문의 드립니다

땅을 점령하는 시스템을 만들려고 합니다.

땅이 10개가 있고, 각 땅에는 보스가 있습니다.
유저들이 각각 개인적으로 해당 보스에 도전해서 가장 높은 점수가 나온 유저가 해당 땅을 점령하게 되는
시스템 입니다.

기본 규칙 입니다.

1.각 유저는 1개의 땅만 점령할수 있습니다. (1번땅 점령중, 2번땅을 점령하게 되면 1번땅 점령이 해제됨)

2.점령 후에는 1시간동안 방어 상태가 됩니다(다른 유저가 도전하지 못함)

3.점령한지 최대 12시간이 지나면, 12시간 동안의 보상을 획득하고, 땅은 다시 빈땅이 됩니다)

4.다른 유저가 점령하고 있는 땅을 뺏은 경우, 뺏은 사람이 누적된 보상의 50%를 획득하고,
뺏긴 사람은 점령했던 시간의 50%만큼의 보상을 획득 합니다.
(A유저가 6시간 점령하고 있던 땅을 B유저가 뺏은 경우, 땅이 뺏긴 순간 A유저가 3시간의 보상획득, B유저가 3시간의 보상을 획득 합니다)

public 테이블을 통해 구현을 해볼까 하는데
혹시 구현이 가능할까요.?

안녕하세요 개발자님,
말씀해주신 컨텐츠를 구현하기 위해서는,
‘점령으로부터 12시간 후 초기화’ 라는 조건과, ‘자동 보상 지급’ 이라는 두 조건이 필요합니다.

자동 보상 지급은 뒤끝의 기능상 리더보드를 통해서만 가능하나,
앞선 조건인 점령으로부터 12시간 후 초기화라는 조건으로 인해 이를 활용할 수도 없습니다.

리더보드를 사용하지 않는다 하여도, 종료에 따른 보상지급 문제를 비롯해,
public 테이블이 유저별로 데이터를 가지고, 공용 데이터가 제공되지 않는 특성 상 말씀해주신 컨텐츠의 구현은 어려운 것으로 확인됩니다.

도움드리지 못해 죄송합니다.

네 답변 감사드립니다 혹시
점령 이후 12시간 초기화, 자동보상 지급 조건 제외한
순수 점령 기능만 구현하는것도, public 공용테이블이 제공되지 않아서
구현이 힘들까요??

네, 맞습니다.
구현이 아주 불가한 것은 아니나, 현재 해당 땅을 점렴한 유저를 검색하는 과정을 비롯하여,
여러 유저가 동시에 요청하며 발생하는 동시성, 그리고 검색 조건상 DB 요금이 과다 발생할 수 있는 등의 여러 문제가 예상되기에 권장하지 않습니다.

네 알겠습니다 답변 감사드립니다!

혹시 데이터 저장용 계정을 하나 만들어서, 그 테이블을 공용으로 쓰고,
다른 유저들이 해당 계정의 테이블만 접근,수정하는 방식으로 해도 점령 시스템을 만들기가 어려울까요?

예를들면 데이터 저장용 계정 A 유저정보 테이블 만들고
다른 유저들은 계정 A의 각 칼럼(각땅들)만 접근해서 수정하는 방식 입니다
A계정의 칼럼에는 점수와, 현재 누가 점령하고 있는지 정보를 저장하고 있을것 같습니다

말씀해주신 방법도 구현은 가능한 부분이기는 하나, 동시성 문제로 인해 권장드리지 않습니다.

여러 유저가 동시에 시도하여 요청하는 경우,
요청에 실패하거나, 조건에 맞지 않는 데이터로 변경 저장(이미 다른 점령자로 교체된 상황에서, 다시 교체되어버리는 등의 경우)되는 상황들이 발생할 수 있습니다.

네 동시성 문제는 최대한 데이터 수정 전에, 수정된 데이터가 있는지 먼저 받아 보고
처리 하는 방식으로 해볼까 하는데, 이렇게 해도 처리 시간도 있고 하니 어느정도 우려되는 부분은 있는거죠

저희가 점령지에 도전하려면 하루 1회 , 특정 조건 달성등 조건을 여러개 걸긴 할거라, 동시다발적으로
엄청난 수정이 있을것 같지는 않습니다

네, 맞습니다.
앞서 말씀드린것과 같이 구현이 아주 불가능한 것은 아니며,
유저가 많으면 많을수록 이러한 문제는 더 크게 발생할 수 있기에
보다 긍정적인 답변을 드리지 못하는 점 양해 부탁드립니다.

네 알겠습니다 확인 감사드립니다!

안녕하세요 추가 질문 사항이 있습니다

플레이어블 계정이 이닌, 데이터용 계정을 만들어서, 해당 계정 유저정보에 모든 땅들의

점령 정보(점령한사람,점령된시각,보스점수) 를 저장 하려고 합니

다. public 테이블로 만들어서 다른유저들이 점령후 다같이

점령 정보를 수정하도록 구현할 예정입니다

보상 시스템 구현을 구상하고 있는데, 점령 후 점령했던 시간만큼

오래 점령한 유저에게 보상을 지급 하려고 합니다.

보상이 쌓여있는 땅을 다른 유저가 점령하면, 쌓여있는 보상중

50%를 약탈해 점령한 유저가 갖게 하려고 합니다.

예를들면 a유저가 땅을 10시간동안 점령해 보상이 10시간

만큼 쌓여있습니다. 이때 b유저가 점령하면 a,b 유저는 각각

해당 땅에 쌓인 재화를 50%씩 나눠갖게 됩니다.

b 유저가 점령한 시점에, 우편으로 기존 점령한 a유저에게

쌓인 보상의 50%를 우편으로 보내면서 점령하게 하려는데,

혹시 이렇게 구현이 가능할까요?!
(a가 점령중이던 땅을 새로 b가 점령 했을때의 행동 : 공용 데이터 저장용 계정의 public 유저정보 수정+기존 점령한 a유저에게 누적된 보상 50% 우편 발송 or a 유저의 재화 테이블(public) 수정, 후자의 경우 트랜젝션으로 처리가 가능할지도 문의드립니다)

안녕하세요, 개발자님.
문의하신 내용은 확인 후 안내드리겠습니다.
시간 양해 부탁드립니다.

좋아요 1

확인 시 말씀해주신 방법으로 구현은 가능합니다.
하지만 계속해서 안내드리는 것과 마찬가지로 여러 유저들의 처리 과정에서 동시성 문제는 계속 남아있게 됩니다.

더불어 보상 지급을 우편을 통해 구현하고자 한다면 클라이언트를 통해서만 유저 우편만을 발송할 수 있기에 유저 우편으로만 처리가 가능합니다.
하지만 보상의 총량을 최초로 저장 후 점령정보가 변경되는 상황에 따라 우편을 통해 처리해야할 것으로 보이는데, 총량의 경우도 고정값이 아닌 유저들의 점령 상황에 따라 달라질 수 있어 어려움이 있을 것으로 보이며,
유저의 재화 테이블을 수정하는 방식으로 보상이 지급되어야 할것으로 보입니다.

네 답변 감사드립니다!

안녕하세요

아래 테이블은 다른 유저들이 접근해서 수정 가능한 퍼블릭 테이블 입니다.

혹시
A가 ConqA칼럼을 수정하고,
수정된 ConqA 값을 갱신 받지 않은 상태로 B가 ConqB 칼럼을 수정한 경우

ConqA , ConqB 값이 정상적으로 변경이 되나요?
아니면 B가 갱신받지 않은 상태라, ConqB만 바뀌고,
ConqA칼럼은 이전값으로 롤백되어 있을까요?

해당 게시물 내에서도 여러번 안내드린것과 같이 동시성 문제로 다른 유저의 저장 내역이 올바르게 반영되지 못해 말씀하신것과 같은 롤백 상황이 발생할 수 있습니다.

네네 각각 다른 칼럼을 동시에 수정해도 롤백이 발생할수 있다는거죠,.?!

네, 맞습니다.
뒤끝에서는 특정 컬럼만을 수정 요청하더라도, 해당 row 전체의 쓰기가 진행되기에 이점 참고하여 주시면 감사하겠습니다.

좋아요 1