개념글 모음

개선 의지가 있을지 없을지 모르겠지만

개선 의지가 있다면 이 게임 시스템이 어떻게 굴러가는지를 알아야 개선을 할 거니까

이 겜 시스템이 어떻게 굴러가고, 어느 부분을 고쳐야 하는지에 대한 설명을 좀 하겠음


그리고 아직 이 게임을 게임으로 즐기고 싶은 유저들에게도

어느 정도 도움이 될 수 있을 거라고 봐서


뭐 두서 없이 써서 읽기 좀 불편할 수도 있는데

내가 요새 정말 여유가 없어서 따로 정리해서 쓸 엄두가 안 나기도 하고 그래서

이것도 무리해서 시간 내서 쓴 거임


1. 라스트오리진 전투 시스템 기초


자 우선 앞에 있을 5년치 스파게티 코드를 풀려면 각 코드가 뭘 하는 코드인지를 알아야겠지

그러기 위해서는 이 게임의 전투 시스템에 대한 이해가 필요함


우선 이 게임의 전투는 턴제로 이루어지며 3×3 그리드 위에 전투원들이 배치되고 어떤 규칙에 따라 행동 순서가 정해지며 그 행동 순서에 따라 스킬을 사용하건 이동을 하건 대기를 하건 각종 행동을 함으로써 전투가 진행됨


그렇기 때문에 라스트오리진의 전투 시스템에서 중요한 점은 크게 3가지임


1. 행동 순서와 행동 가능 여부를 결정하는 라운드와 AP 시스템

2. 전투원이 실제로 사용하는 스킬의 구조

3. 스킬을 사용한 결과 적용되며 전투의 각종 요소에 영향을 주는 효과(버프 및 디버프) 시스템


이 셋이 전부 독립적인 것은 아니라서 따로 구분해서 설명하거나 하지는 않을거야

그럼 조금씩 살펴보자고


2. 라운드와 AP에 대한 소개 및 19.99 버그


자 우선 이 게임의 행동 순서를 결정하는 가장 절대적인 요인은 행동점수(AP)가 되겠음

일반적으로 라운드 시작 시 AP의 최대치는 20으로 제한되어 있고, 정상적인 경우 최소치는 0임

일반적인 경우라고 언급한 이유는 행동 불가에 걸린 경우에는 라운드 시작 시점에서도 AP 최대치가 제한되지 않으며

라운드 시작 시를 따로 강조한 이유는 라운드 진행 중에는 AP가 20을 넘을 수 있기 때문이고

정상적인 경우를 따로 강조한 이유는 비정상적인 방법으로 음수 AP를 만들 수 있기 때문임 당연히 이건 고쳐야겠지


행동 불가에 걸린 상태가 아니고, AP가 10 이상이라면 스킬을 사용하거나, 이동하거나 대기할 수 있어

그리고 행동 순서는 AP가 높은 순서대로 결정되게 되어

만약 AP가 같다면 아군 전투원이 먼저 행동하게 되고 AP가 같은 아군 전투원이 있다면 행동력이 높은 전투원이, 행동력까지 같다면 더 앞의 열에 위치한 전투원이, 배치된 열까지 같다면 윗행에 위치한 전투원이 먼저 행동하게 되고 적 전투원끼리는 행동력이 아닌 배치 순서대로 영향을 받게 되지


이러한 AP에 영향을 주는 건 크게 2가지임

하나는 행동력에 의한 라운드 시작 시 자연 회복이고, 다른 하나는 효과에 의한 변동


행동력은 전투원의 기본 스탯 중 하나로, 라운드 시작 시점에서 행동 불가에 걸린 상황이 아니고 1라운드가 아니라면 직전 라운드 종료 시 행동력 만큼 AP가 회복돼

1라운드의 경우에는 직전 라운드라는 것이 없으므로 1라운드 시작 시점에서의 행동력을 가지고 계산하고 행동 불가에 걸린 상황이라면 AP가 회복되지 않아

그리고 행동력이 1 미만이더라도 AP 회복량이 1 미만으로 내려가지는 않아 정상적인 상황에서는 말이야


효과에 의한 변동은 말 그대로 버프 혹은 디버프에 의한 변동임 이건 라운드 진행 중에도 진행될 수 있고, 라운드 시작 시점에서도 진행될 수 있지

AP를 특정 수치만큼 더하고 빼는 AP 증감 효과도 있고

AP를 특정 수치로 바꾸어버리는 AP 변경 효과도 있음

그리고 직접적으로 영향은 주지 않지만 행동력을 바꾸어서 간접적인 영향을 주는 행동력 증감 효과도 생각할 수 있겠음

그런데 여기서 중요한 점이 효과에 의한 변동 역시 완전한 즉발은 아니라는 점이야


그런데 라운드 시작 시에는 효과에 의한 변동과 행동력에 의한 회복이 모두 진행될 수 있어

그러면 그 둘 중 무엇이 먼저 진행될까?

정답은 효과에 의한 변동이 먼저 진행되고 행동력에 의한 회복이 최후에 진행되게 돼

그런데 여기서 문제가 하나 있어


앞서 직전 라운드 종료 시점 시 행동력 만큼 AP 회복량이 결정된다고 했잖아?

그런데 사실 이건 반만 맞는 설명이야

만약 직전 라운드 종료 시 행동력과 직전 라운드 종료 시 AP의 합이 20보다 크다면 AP 회복량은 20에서 라운드 종료 시점에서의 AP를 뺀 값이 되어버려

뭐 라운드 시작 시점에서의 AP 최대치는 20이니까 딱히 문제되지 않는다고 생각할 수 있겠지만 그렇지 않아


첫째로 컴퓨터에서 정수가 아닌 실수 계산은 항상 부동 소수점 문제와 함께할 수밖에 없어

그래서 저 회복량을 라운드 종료 시점에서의 AP에 더했을 때 부동 소수점 오류에 의해 20보다 아주 미세하게 작은 값이 될 수 있어

이 때 그 유명한 19.99 버그가 발생하게 되는 것이야 물론 지금은 완화되었기 때문에 이 문제로 고통받는 경우는 이제는 잘 없지만 문제가 이것만 있는건 아니거든


둘째로 이 경우 AP 회복량이 음수가 될 수 있어

보통은 문제가 되지 않지만 라운드 시작 시 효과에 의한 AP 변동이 있는 경우에는 이야기가 달라지게 돼

라운드 종료 시점에서의 AP가 40이었다고 해보자. 이 게임에서 충분히 가능한 수치야

그러면 AP 회복량은 20-40 = -20이 되는데 만약 다른 요소가 없다면 행동력에 의한 회복이 진행되어도 40 + (-20) = 20이 되어서 겉으로 보기에는 문제가 없어 보여

그런데 만약 라운드 시작 시 AP를 17로 변경하는 효과가 걸려 있다면 어떻게 될까?

그러면 우선 효과에 의한 변동이 먼저 진행되어 17이 된 다음 -20만큼 회복되어서 AP는 -3이 되어버리고 실제로 그래


이건 좀 말이 안되는 것 같지? 해결법은 간단해


저기 회복량을 계산할 때 20에서 현재 AP를 뺀 값이 되는 저 과정을 없애야 해

저 과정이 없어도 라운드 시작 시점에서의 AP는 20으로 제한하는 과정이 추가로 있어서 라운드 시작 시 AP가 20을 넘을 걱정은 안해도 되는데 저 과정이 존재하기 때문에 라운드 시작 시 AP가 음수가 되거나 19.99 버그가 언제든지 재발할 수 있는 잠재적인 위협이 잔존하는 문제가 생기는 거라 무조건 없애야 하는 과정이라고 봐


3. 스킬의 구조와 효과 시스템


효과 시스템에 대해 이야기하기 전에 스킬의 구조에 대해 언급하고 넘어가자

이 게임에서 스킬의 역할은 2개라고 할 수 있어

1. 적에게 직접적인 피해를 주는 것

2. 대상에게 효과를 부여하는 것


1번은 비교적 단순한 내용이고, 2번이 이야기할 거리가 많은 부분이지

그래서 스킬의 구조는 효과 시스템과는 떼놓고 싶어도 떼놓을 수 없는 관계라고 봐

반대로 효과를 거는 방식은 스킬에 의한 것이므로 효과 시스템을 다루기 위해서 스킬의 구조를 언급할 가치가 있지


스킬의 구조에 대해 분석하기 좋은 방법은 멸망 전의 전술 교본에 들어가서 버프 보기 체크박스를 클릭하는 거야

교본이라고 오류가 없는 것은 아니지만 적어도 인게임 설명보다는 훨씬 가독성이 좋고 오류도 더 적을 거거든


교본에 보면 라운드 시작 시, 전투 시작 시, 공격 적중 시 등 녹색 박스 안에 적힌 조건문 비슷한게 있는데 난 이걸 이벤트라고 불러

그리고 스킬을 사용하는 것은 이 이벤트를 발생시키는 것이라고 보면 되고

이러한 이벤트가 발생하게 되면 그 이벤트에 할당된 효과들을 생성하기 위한 준비를 하는데 이것을 발동 이라고 해


이벤트가 발생했다고 해서 효과가 반드시 발동하는 것은 아니고 발동 확률 연산을 통과해야 하는데 효과 발동 확률은 스킬마다 분배되어 있으니 서로 다른 스킬에 분배되어 있다면 같은 이벤트에 대해서라도 발동 여부는 다를 수 있어


보통 대부분의 스킬은 발동 확률이 100%로 되어 있지만 그렇지 않은 예외적인 경우도 있고(아측에서는 레아의 3번 패시브가 유일한 사례) 적 중에서는 효과의 발동 확률을 낮추는 스킬을 가진 적도 있어


그러면 발동된 효과들은 이제 실제로 생성되는 적용 단계로 넘어가

발동되었다고 해서 전부 적용되는 것은 당연히 아니고 교본에서 이벤트가 적힌 줄에 붉은 색으로 적힌 또다른 조건문이 있는데 난 그걸 조건 이라고 부르고 다른 사람들이 오해할 여지를 줄이기 위해 적용 조건 이라고 따로 부르기도 해

그런데 이 적용 조건을 인식하는 것은 적용 과정의 마지막 쯤에 해당하게 되거든

그 이전에 개입하는 것이 적용 확률 연산, 그리고 강화 불가 효과면역 효과


적용 확률은 교본에서 녹색 확률로 표시되며 개별 효과마다 따로 분배되어 있어

즉 같은 스킬 같은 이벤트의 효과이며 적용 조건 역시 같더라 하더라도 적용 확률 연산 통과 여부는 제각각일 수 있어

이러한 적용 확률에 영향을 주는 효과가 바로 효과 저항, 효과 저항 감소, 강화 해제 저항이야

효과 저항은 독립 시행하고 나머지 둘은 다른 대부분의 효과처럼 합연산인데 뭐 여기서 그 내용까지 언급할 필요는 없을 것 같아


적용 확률 연산을 통과한 다음에는 강화 불가 효과와 면역 효과 여부를 체크해

강화 불가가 걸려 있는 경우에는 강화 효과 판정의 효과는 적용되지 않고, 면역 효과가 걸려 있는 경우에는 특정 유형의 해로운 효과가 적용되지 않지


그리고 나서 마지막으로 적용 조건 여부를 체크하게 되는 거야

그리고 뒤에서 다룰 효저칩 버그는 이 과정과 관련이 있어


4. 라운드 시작 시 효과의 발동과 적용, 재판정, 그리고 효저칩 버그


자 효과 중에는 적용 조건에 특정 효과가 적용되어 있을 것을 요구하는 효과가 있어

라운드 진행 중에는 스킬 사용 순서라는 명백히 눈에 보이는 순서가 있으니까 크게 문제가 안되는데 말이야


라운드 시작 시점에서는 어떨까?

뭐 배치 순서라는 순서가 있지만 패시브 범위 때문에 배치 순서를 마음대로 정할 수 없는 경우가 많단 말이야

그래서 배치에 따라 특정 효과가 적용되고 적용되지 않고 그러면 유저 입장에서는 불편하지


실제로 2.0 패치 이전에는 배치에 패시브 버프가 걸리고 안걸리고가 갈리는 것이 일상이었고, 장비 슬롯 순서에 따라 정찰 버프를 받을 수 있고 아니고가 달라졌어

그래서 백토가 처음 나왔을 때 주목받았던 것이 그것 때문이야 백토는 항상 중행에 보호와 버프를 걸기 때문에 순서 맞추기 좋았거든


그러한 점에 대한 불만을 해결하기 위해 진행된 것이 2.0 패치이고, 이 때 생긴 버그가 그 유명한 효저칩 버그

효저칩 버그는 이 라운드 시작 시 효과의 서순 문제를 고치기 위해 삽입한 코드 때문에 발생한 것으로 보면 돼


일단 효저칩 버그가 무엇인지부터 알아야겠지

효저칩 버그란 발동 이벤트전투 시작 시 또는 라운드 시작 시 인 효과들에 대해 동일 키값의 효과가 해당 처리 과정에서 적용 성공 판정이 났다면 최대 중첩 수에 관계 없이 더 이상 해당 효과는 적용되지 않는 현상을 말해


제일 대표적인 예시가 효저칩인데 효저칩은 수치가 동일한 것끼리는 효과의 키값이 같거든 그래서 동일한 수치의 효저칩을 2개 끼면 효저가 하나만 걸려 반대로 둘이 수치가 다르면 둘 다 적용되고 그래서 효저칩은 10/9로 사람들이 끼는 거야


그러면 왜 이런게 생겼을까?

앞서 2.0에서 서순 문제를 완화하기 위해 도입한 메커니즘 때문이고 그 메커니즘의 핵심은 내가 재판정최종 판정 이라고 부르는 과정에 있어 그리고 이게 효저칩 버그와 직결되어 있지


앞서 적용 조건은 마지막에 따진다고 했잖아?

라운드 진행 중에 걸리는 효과는 적용 조건을 미충족하면 그대로 미적용되지만 라운드 시작 시에 걸리는 효과는 그래버리면 서순 문제가 생기니까 일단은 적용을 보류하게 돼

그리고 나서 모든 효과들이 적용 판정을 거치고 나면 적용 조건을 미충족해서 보류된 효과들에 대해 다시 적용 판정을 거치는데 이게 내가 재판정 이라고 부르는 과정이야

이 때 재판정 과정에서 순서는 미적용 된 효과들 중 적용 판정 순서가 가장 빠른 효과의 시전자가 앞 순서를 가져가게 돼

보통은 일반적인 적용 순서를 따라가지만 1라운드의 경우에는 전투 시작 시 발동되는 효과가 라운드 시작 시 발동되는 효과보다 항상 적용 판정 순서가 빠르기 때문에 이 때문에 재판정 순서가 뒤집히는 경우가 종종 있어


그렇게 재판정 과정에서 다시 한번 훑어보고 나서 특정 조건을 충족하면 다시 루프를 돌리는 최종 판정 과정에 진입하게 돼

이 최종 판정 과정에 진입하는 조건이 무엇이냐면 그 효과와 동일한 효과가 조건 미충족으로 미적용 판정이 난 후에 적용 판정이 나지 않았을 것이야

이게 뭔 말이냐면 광역으로 뿌리는 버프가 있는데 이 버프가 어떤 전투원에 대해서는 조건 미충족으로 미적용 판정이 났는데 그 이후 순서를 가지는 전투원에게는 적용되었다면 재판정 과정 까지만 진행되고 최종 판정은 진행되지 않아

반대로 앞 순서 전투원에게는 적용되었지만 뒷 순서 전투원에게는 전부 조건 미충족으로 미적용이 떴다면 최종 판정으로 진입할 수 있는 거지


뭔가 효저칩 버그 발생 조건이랑 유사한게 느껴지지

그러니까 효저칩 버그의 발생 원인은 다음과 같다고 추론할 수 있어


2.0 패치에서 라운드 시작 시 서순 문제를 완화하기 위해 추가한 재판정 과정과 최종 판정 과정을 추가했는데

이 때 어떤 효과가 재판정 과정과 최종 판정 과정에 진입할 것인지를 선별하지 않으면 동일 효과가 여러번 걸리거나 하는 문제가 생길 수 있어서 이를 선별하는 메커니즘을 작성해야 했어

그런데 그걸 제대로 만들지 않아서 동일 키값 효과가 적용되면 원래 적용되어야 할 효과조차도 적용되지 않는 효저칩 버그가 발생하게 된 것이지


그래서 효저칩 버그를 수정하기 위해서 해야 할 중요한 과제는

재판정 및 최종 판정 과정에 진입할 효과를 선별하는 더 좋은 메커니즘을 고안하는 것

이 되겠어


효저칩 버그는 워낙 유명한 버그라서 이걸 고친다면 우리 제대로 일하고 있어요에 대한 신뢰를 어느 정도는 쌓을 수 있겠지


4. 획득 순과 1라운드에서의 해제 효과의 수명 그리고 서순 베로니카


그리고 2.0 패치에서 생긴 문제가 하나 더 있어

원래는 효과 적용 판정 순서는 1라운드부터 배치 순이었지만

2.0 패치 이후에는 해당 스쿼드가 전투에 돌입한 첫 라운드에는 획득 순으로 효과 적용 판정 순서가 결정된다는 문제가 생겼어


이 문제는 반드시 수정해야 할 문제지

뭐 손대기 힘들다 그러는데 이전 스마조 시절 테티스 3패시브의 공비례 공버프가 이슈가 되니까 1라운드에서는 적용 판정이 아군 중에서 최후순위가 되도록 고친 이력이 있는 거 보면 못 고치는 문제가 아닌 건 확실해 다만 얼마나 어려우냐는 별개의 문제라 그렇지


그래서 보면 총력전 공략에서 특정 획득 순서를 요구하는 케이스가 있고(레비저의 면역 효과에 디버프가 씹히는걸 방지하기 위해)

제일 극단적인 케이스는 케미컬 칙 Type-X의 클렌징을 씹어버리기 위해 획득 순을 요구하는 서순 베로니카가 있지


사실 서순 베로니카의 핵심은 획득 순이 아니야

오히려 획득 순이 없으면 배치 순만 따지면 되니까 훨씬 제어하기 쉽지

서순 베로니카를 언급한 건 또 다른 문제와 맞닿아 있어서 그래


이 게임에는 이미 걸려 있는 특정 효과를 지우는 해제 효과 역시 존재해

그런데 이 해제 효과가 이전에 걸린 효과만 지우고 끝! 은 아니야

특히 라운드 시작할 때 그러면 서순 문제가 정말 빈번하겠지(그런데 뒤에서 언급하겠지만 여기에도 이슈가 있음)

그래서 해제 효과는 저마다의 수명을 가지고, 수명을 가지고 있는 동안 추가로 적용된 효과도 지우고 가게 돼


케미컬 칙 Type-X의 라운드 시작 시 해로운 효과 해제는 실제로 우리가 행동 지정 단계에 진입하기 직전까지가 수명이야 보통은

그런데 그게 항상 그렇다면 서순 베로니카는 성립할 수 없는 덱인데 실제로는 서순 베로니카 덱이라는게 존재하잖아?

그 이유가 1라운드에는 해제 효과의 수명이 평소보다 짧아져서 재판정 과정에 진입하기 전에 케미컬 칙 Type-X의 해제 효과가 수명을 다하기 때문이야

그래서 1라운드에 한해 재판정 및 최종 판정 과정에서 적용된 디버프는 케미컬 칙 Type-X의 해로운 효과 해제로 제거되지 않는 것이고


그래서 여기서 고쳐야 할 점은 해제 효과의 수명 통일이야

우선 1라운드에만 유독 해제 효과의 수명이 짧은 문제를 해결할 필요가 있고

둘째로 효과마다 수명이 전부 다른 걸 통일해서 일관성을 챙길 필요가 있어


뭔 말이냐면 특정 해제 효과는 케미컬 칙 Type-X의 클렌징처럼 긴 수명을 갖는데(1라운드에는 마찬가지로 짧아짐) 특정 해제 효과는 수명이라고 할 만한 것 없이 이미 걸려 있던 것만 지우고 사라져 버리는 문제가 있어


예를 들면 칼리스타의 지정 보호 해제나 블라인드 프린세스의 행/열 보호 해제가 이미 걸려 있던 것만 지우는 해제 효과가 되겠네

심지어 얘네는 기믹성이라 이래버리면 안되는 애들인데 그래 특히 블프는 보호가 남아 있으면 안되는 경우가 많아서


그냥 해제 효과의 수명을 통일해서 사람들이 덜 헷갈리도록 하는 것이 최선이라고 봐


추가로 원래는 수명이 긴 해제 효과라도 재판정 과정에서 걸리면 수명이 짧아지는 이슈도 있는데 이걸 구현할 수 있는 사람이 얼마나 될지 생각해보면 이건 크게 신경 안 써도 되긴 할 거라고 봐


5. 그 외에 고쳐야 할 것들


뭐 위에 언급한 것들 말고도 고쳐야 할 건 차고 넘치지

예를 들자면 LRL 스킬을 겜안분이 만져서 스킬 설명과 따로 놀고 전장 옵션 하나가 아무짝에도 쓸모가 없다던가

유저 좆같으라고 패치한게 아닌가 싶은 밸패들 엎을 필요도 있고

과도하게 많은 효과와 그에 따른 난잡한 스킬들 역시 대수술을 할 필요는 있어


그런데 이것들은 인력을 확실히 많이 먹고 제대로 된 기획자를 구해야 가능한 거라고 봐서

그래서 뭐 내가 따로 할 말이 많으면서 고치는데 기획이 따로 필요하지 않은 이슈들 부터 언급했어


아무리 유사겜 음악 어플, 일러 감상 앱이라고 하지만

일단 게임인 만큼 게임 자체가 재미를 갖추지 못한다면 한계가 명백하고 사실 이미 한계가 왔지


뭐 아무튼 이걸 써 봐야 얼마나 도움이 될 지 모르겠다만

아무튼 개선 의지가 있다면 어느 정도의 길잡이는 될 수 있겠지


아무튼 손 가는 대로 써서 이해 안 가는 부분이 꽤 있을 수도 있는데

구체적으로 설명이 필요하다 싶은 부분은 따로 질문하면 거기에 대해서는 좀 더 구체적인 답을 해줄 수도 있겠고


암튼

읽어 줘서 고마워