버프·디버프 중복 그룹 로직 개선

강한 효과와 긴 지속시간이 충돌할 때의 우선순위·승계 규칙 설계
실무 프로젝트 · 모바일 RTS MMORPG


담당 범위

담당기획 전담 — 우선순위 규칙 설계 · Standby 상태 정의 · 재평가 시점 명세 · 예외처리 정리
협업담당 프로그래머 (성능 제약 협의 · 실제 동작 확인)
상태개선안 확정 · 구현 반영

30초 요약

동일 중복 그룹 내 버프·디버프가 동시에 존재할 때, 단순 덮어쓰기나 제거가 아니라 최종 수치 절대값과 남은 지속시간을 기준으로 적용/대기/승계 규칙을 나누는 개선안을 설계했다. Battle Start Status 기준 계산과 실시간 스탯 계산을 구분하고, Apply / Expire / Dispel 시점의 재평가 흐름을 정의했다.

핵심 축: 절대값 우선순위 · Standby 승계 · 재평가 시점 명세


문제 상황

수치가 높지만 지속 시간이 짧은 버프와, 수치는 낮지만 지속 시간이 긴 버프가 같은 중복 그룹에 있을 때 유저는 강한 버프가 끝난 뒤 남은 버프 효과를 기대한다. 기존 구조가 이를 자연스럽게 처리하지 못하면 버프 사용 경험이 끊기거나 손해처럼 느껴질 수 있다.


진행 내용


주요 설계 포인트

① 지속시간 아닌 절대값 기준 우선순위

② Standby 상태 신설

“대기 중이지만 시간은 소모”라는 상태를 명시적으로 정의. 유저 기대(강한 버프 끝난 뒤 남은 효과)를 시스템 규칙으로 옮긴 핵심 결정

③ Apply / Expire / Dispel 재평가 시점

④ Battle Start Status vs 실시간 Stat 계산 분리

스탯 컬럼을 두 계열로 구분해 어느 시점 기준으로 계산된 값인지가 표에서 바로 드러나게 했다. 계산 시점 혼동으로 인한 확인 비용을 줄이는 것이 목적이었다

⑤ 1:n 비교 대신 1:1 승계 — 비교 구조로 비용을 낮춘 결정

중복 그룹 안의 버프를 전부 맞비교하면 버프가 하나 들어올 때마다 1:n 비교가 일어난다. 버프가 붙는 빈도를 생각하면 확인해야 할 경우의 수가 계속 불어난다.

그래서 1순위와 2순위만 잇는 1:1 승계 구조로 짰다. 재평가가 일어나도 비교 대상은 한 쌍이라 동작을 예측하기도, 검증하기도 쉽다.

계산 기준 자체는 줄이지 않았다 — 줄이면 “강한 버프가 끝나면 남은 버프가 이어진다”는 기획 목적이 깨지기 때문이다. 기획을 덜어내 성능을 버는 대신, 비교 구조를 바꿔 비용을 낮춘 결정이다.


구현 고려사항


참고 이미지

중복 그룹 우선순위 / Standby 승계 흐름

공개용으로 재구성한 설명 도식 — 실제 인게임 화면이 아니다.


결과 · 진행 과정

결과
유저 기대와 시스템 동작이 어긋나는 지점을 절대값 우선순위 + Standby 승계로 해결. 실시간 전투 환경에서 재평가 범위를 통제하면서도 유저 기대를 유지

무엇을 하려 했는가
”버프 로직 개선”이 아니라 “강한 버프가 끝난 뒤 남은 버프가 자연스럽게 이어질 거라는 유저 기대를, 시스템 규칙으로 옮기는 것”. 실시간 전투에서 버프가 들어올 때마다 1:n으로 맞비교하면 확인 비용이 계속 불어나기 때문에, Apply/Expire/Dispel 3시점 재평가와 1:1 승계로 비교 대상을 한 쌍으로 묶었다.

어떻게 일했는가


참고 자료

※ 원본 문서는 내부 정보 보호를 위해 공개하지 않습니다.

김한얼

게임 기획자

원본 PDF ↗ 새 창