1인 개발 가디언 슬래시 출시 후기3
이번 포스트에서는 아이템에 관련된 내용을 기술해보겠습니다.
아이템은 첫 포스트에서 확인했듯이 무기, 목걸이, 반지 3 종류가 있습니다.
아이템은 공통적으로 장착할 수 있는 기능이 포함됩니다. 인터페이스로 나눠놨다면 좀 더 확장성 있는 코드를 작성할 수 있었을텐데하는 아쉬움도 있지만 이 프로젝트에서는 객체지향설계가 목적이 아닌 개발 프로세스를 체득하는 것에 의의를 두고 진행했기 때문에 넘어간 부분들이 꽤 많습니다.
무기 강화
무기의 경우 공격력과 수량이 표시됩니다.(현재는 강화레벨도 표시됩니다.)
강화를 위한 수량과 재화를 클래스 내에서 포함하고 있고, 강화를 진행하기 위해서는 3단계의 과정을 거칩니다.
먼저 서버에게 부담을 주지 않기 위해 (서버에서 진행해도 큰 부담은 없지만..) 클라이언트에서 1차적으로 확인합니다.
최대 강화 레벨을 30으로 설정했으므로 강화 레벨을 간단히 체크할 수 있고 보유한 아이템의 수량과 재화를 확인합니다. 클라이언트측에서 강화가 가능하다면 서버측으로 데이터를 보내 한 번 더 체크합니다. (클라이언트와 서버의 일관성을 위해 더블체크하는 수준. ) 서버에서는 받은 데이터를 기반으로 MySQL 데이터 베이스에 데이터를 요청합니다 저장된 프로시저를 호출하여 일관된 처리를 기대할 수 있습니다. 다만 처리에 실패할 경우를 대비해서 롤백기능을 사용할 수 있도록 트랜잭션을 관리해줘야 합니다. 데이터 처리의 시작과 끝에 트랜잭션을 설정하고 실패할 경우 롤백하는 기능을 구현해놔야지만 데이터 베이스의 원칙을 지킬 수 있습니다.
아이템 장착
아이템을 장착하는 것도 서버에서 관리되고 있습니다. 사실상 클라이언트측에서 관리해도 괜찮은 정보지만 사용자가 어떻게 플레이하고 있는지 관찰하기 위해 서버에 저장할 필요가 있었습니다. 아이템 장착 또한 그 아이템을 보유하고 있는지 확인하는 과정이 필요합니다. 무기는 게임 시작시 기본 아이템을 장착하고 있지만 목걸이와 반지는 착용하지 않은 채 사용자 데이터가 초기화됩니다.
목걸이와 반지의 능력
목걸이와 반지는 각각 3가지의 고유 능력을 가지고 있습니다. 목걸이의 경우 기사회생, 막기 넉백 파워, 블록 감속 효과를 가지고 있고, 반지는 추가 데미지, 추가 코인, 점프력을 높여주는 효과를 가지고 있습니다.
각 효과는 위에 적힌 것처럼 게임 내에서 적용될 수 있도록 만들었습니다. 효과에 따라 파티클을 사용자에게 노출시켜서 시각적인 재미를 더했습니다. 감속의 경우 눈꽃이 화면을 가득 채우고 기사회생의 경우 캐릭터가 있는 위치에 방패모양 아이콘이 생성됩니다.
아이템 구매
아이템을 구매하는 것은 인앱결제 시스템을 이용해 구매하는 것보다 간단합니다. 인앱결제를 이용할 경우 Unity IAP와 앱 스토어의 검증 과정을 거쳐야하고 해당 영수증을 저장해야합니다. 영수증 저장이 필수는 아니지만 구매 내역을 관리해야 사용자를 관리하는 효율성이 증가합니다. 아래 인앱 결제 프로세스에서 IAP와 AppStore의 처리 과정이 제거되고 App과 Server의 통신과정만 남게됩니다. 서버에서는 아이템 구매 명령을 받은 후 재화를 소비하고 아이템을 지급합니다. 아이템 구매 내역은 물론 서버에 저장하여 사용자 로그를 확인할 수 있도록 해야합니다.
아이템을 구매하는 것에 있어서 대부분의 게임들이 확률형 아이템을 제공합니다. 이번 프로젝트에서도 확률형 아이템을 만들고 사용자에게 제공하는 것을 목표로 했으며, 로그 스케일을 기반으로 확률을 분포했습니다. 나무상자, 은상자, 금상자 3가지로 나눠 사용자에게 제공하며, 금 상자는 유료 재화인 다이아를 사용하여 아이템을 지급받을 수 있습니다.
처음 확률을 설정할 때에는 어떻게 만드는 것이 분포도가 좋을까에 대한 고민을 많이 했습니다. 아이템별로 가중치를 두고 확률을 설정하기도 하고 직접 확률을 하나하나 설정해보기도 했지만 사용자가 느끼는 확률에 대한 거부감이 커서 설정하는데 어려움을 느꼈습니다. 또한 게임의 진행 속도와 더불어서 아이템 획득은 스테이지의 난이도에 크게 영향을 미치기 때문에 결정하는데 더욱 어려움을 느꼈던 것 같습니다.
아이템에 대한 내용은 여기까지 작성하고 다음 포스트에서 다른 내용을 가지고 돌아오겠습니다.
'Unity > Records' 카테고리의 다른 글
1인 개발 가디언 슬래시 출시 후기 5 (1) | 2025.01.01 |
---|---|
1인 개발 가디언 슬래시 출시 후기4 (3) | 2025.01.01 |
1인 개발 가디언 슬래시 출시 후기2 (0) | 2025.01.01 |
1인 개발 가디언 슬래시 출시 후기 (2) | 2025.01.01 |