[뒤끝팁] 내 게임에도 ‘길드 상점’을 운영하고 싶어요

안녕하세요! 개발이 필요 없는 게임 서버, 뒤끝입니다?

오늘 함께 알아볼 내용은 바로 ‘길드 상점’ 구현 방법입니다. 뒤끝의 ①차트 관리 기능과 ②길드 기능을 활용하면, 길드 내 공용 재화 상점(이하 ‘길드 상점’)을 운영할 수 있습니다.

   
? [길드 상점]의 정의

이 글에서 [길드 상점]이란 길드 포인트 등의 형태로 기획된 '길드 재화'를 통해 운영되는
길드 내 상점을 의미하며, 길드 공용 아이템을 구매하는 용도입니다. 
따라서 길드 재화는 유저 개개인의 소유가 아닌 길드의 공용 재화로, 길드 구성원 전체에게 
적용되는 '길드 스킬'등을 구매하는 데 사용됩니다. 또한 길드 공용 아이템 구매 권한은 
일반적으로 길드장에게 위임됩니다.

*유저 개인별 아이템을 구매할 수 있는 길드 상점에 대한 설명을 포함하지 않습니다.
 

[목차]

1. 상점에서 판매할 아이템 기획하기
2. 아이템 차트 생성 및 업로드
3. 길드 상점 제작하기

목차는 다음과 같습니다.
그럼 지금부터 뒤끝 개발자가 알려주는 길드 상점 구현 방법! 함께 알아보러 가실까요?


1. 상점에서 판매할 아이템 기획하기

길드 상점에서 판매할 아이템을 기획합니다. 보다 정확한 이해를 돕기 위해, 이 글에서는 ‘기간제 길드 버프 아이템’을 예시로 설정하였습니다.

길드 버프 아이템을 기획하기 위해, 우선 아래와 같이 DB를 설계합니다.

예시) 길드 버프 아이템

컬럼 명설명디테일한 설명
gItem_id아이템 ID게임에서 아이템을 식별하기 위한 ID
gItem_name아이템 이름유저에게 보여지는 이름
gItem_duration기간아이템이 활성화될 기간
gItem_class아이템 종류어떤 종류의 아이템인지
gItem_effect아이템 효과아이템의 디테일한 효과
gItem_cost아이템 가격아이템 가격

2. 차트 생성 및 업로드

위 1번에서 설계한 아이템 DB를 바탕으로 차트를 생성하고, 이를 뒤끝 콘솔에 업로드합니다.

2-1 아이템 차트 생성하기

아래 예시 아이템 GITEM_0은, 구매 시 하루 동안 모든 길드원의 스테이지 클리어 경험치를 10%씩 증가시키는 버프 아이템입니다.

예시) 길드 버프 아이템 차트

gItem_idgItem_namegItem_durationgItem_classgItem_effectgItem_cost
GITEM_0길드원 경험치 증가 1단계86400exp1.1100

2-2 뒤끝 콘솔에 차트 업로드하기

2-1에서 생성한 차트를 뒤끝 콘솔에 업로드합니다.

차트는 모든 유저가 공통적으로 조회할 수 있는 데이터입니다. 뒤끝 콘솔에 아이템 차트 파일을 만들어 업로드하면 게임 내 상점에서 아이템 리스트를 불러와 이를 출력할 수 있습니다.

뒤끝 콘솔 차트 관리 예시 페이지
뒤끝 콘솔 실제 화면

? 예시 파일까지 제공하는 [차트 업로드 가이드]

3. 길드 기능을 활용하여 ‘길드 상점’ 제작하기

뒤끝의 [길드] 시스템은 아래 두 가지 기능을 제공합니다.

① 길드 재화
② 길드 메타데이터

‘길드 재화’는 모든 길드원들이 기부(생성) 할 수 있는 재화입니다. 스테이지를 클리어할 때마다 재화를 추가하거나 유저가 자신의 재화를 길드 재화로 변환하는 방식으로 기부할 수 있습니다. 또한 길드 재화는 해당 길드의 길드 마스터(길드장)만 사용할 수 있습니다.

‘길드 메타데이터’는 모든 길드원이 조회/생성/수정할 수 있는 길드 공용 테이블입니다.


? 위 두 가지 기능을 활용하여,
아래와 같은 로직으로, 게임 내 길드 상점을 운용할 수 있습니다.

Step.1 길드원들이 길드 재화를 기부합니다.

길드 재화를 기부하는 방법은 여러 방향으로 기획할 수 있습니다. 길드원이 스테이지를 클리어할 때마다 길드 재화를 보상으로 지급하고, 길드 UI에서 기부 버튼을 누르는 행동을 통해 길드에 재화를 기부하도록 설계할 수도 있습니다.

Step.2 게임 내에서 길드 버프 아이템 차트를 조회합니다.

아이템 차트는 게임을 최초 초기화할 때, 혹은 길드 상점 UI에 접속할 때마다 조회합니다.

Step.3 길드 마스터가 길드 버프 아이템을 구매합니다.

구매하고자 하는 아이템 이상의 재화를 보유하고 있을 때, 길드 마스터가 길드 공용 재화를 사용합니다. 그리고 재화 사용에 성공하였을 경우, 구매한 아이템의 정보를 바탕으로 길드 메타데이터를 수정합니다.


메타데이터는 위 1번에서 설계한 아이템 DB를 바탕으로 수정해야 합니다.

자세한 과정은 코드를 참고해 주세요.

아래 과정을 통해 길드의 메타데이터를 성공적으로 수정할 수 있으며, 생성/수정한 메타데이터는 길드 정보를 조회할 때 함께 조회할 수 있습니다.

// GITEM_0를 구매 성공 (굿즈 사용 성공) 한 경우

// 미리 메모리에 저장된 차트에서 GITEM_0 정보를 조회
var itemInfo = guildItemChart["GITEM_0"];

// 길드 버프 정보 생성
var startDate = DateTime.Now;
var endDate = startDate.AddSeconds(itemInfo.gItem_duration);

Param gitem = new Param();
gitem.Add("startDate", startDate.ToString());
gitem.Add("endDate", endDate.ToString());
gItem.Add("class", itemInfo.gItem_class);
gItem.Add("effect", itemInfo.gItem_effect);

Param param = new Param();
param.Add("buf", gItem);

// 길드 메타 데이터 수정
Backend.Social.Guild.ModifyGuildV3(param);

참고) 뒤끝의 예시처럼, 길드 공용 재화를 이용해 ‘길드 버프’를 구매하는 시스템을 구현하고자 하신다면?

위 3번까지의 과정은, 게임 내에서 길드 상점을 구현하는 방법만을 설명한 것입니다.
따라서 뒤끝의 예시처럼, 길드 공용 재화를 이용해 ‘길드 버프’를 구매하는 시스템을 구현하고자 하는 개발자님은 아래의 작업이 수반되어야 합니다.

✔ 길드장이 버프를 구매한 후 길드원이 게임에 접속했을 때, 게임을 진행하면서 버프가 적용되어야 하는 단계에서 ‘버프 조회 및 적용’을 위한 별도의 로직을 작성할 것!

이 점을 참고하시어, 게임 내 버프 내역 표기 및 버프 적용을 구현해보세요.


여기까지 뒤끝으로 ‘길드 상점’ 구현하는 방법에 대하여 알아보았습니다. 소개해드린 과정을 응용하면 길드 버프 아이템뿐만 아니라 다른 형태의 시스템도 얼마든지 구현하실 수 있답니다.

뒤끝의 기능에 대하여 궁금한 점이 있으시다면 언제든 댓글로 알려주세요. 개발자님께 더 나은 서비스를 제공하기 위해, 노력하는 뒤끝이 되겠습니다?‍♀️

0

댓글