버그픽스와 밸런싱 #2

11.4

도레미의 초필에 관한 가장 많은 요청은 KO시엔 납작한 상태를 유지해달라는 것이었다. 이걸 구현하려면 코드는 어려운 게 없는데 데이터를 수정해야 했다. 지금은 종이가 완전히 아래로 깔리기 전에 회복하는 걸 전제로 애니메이션을 제작했는데, 이를 완전히 바닥에 깔리도록 수정해야한다. 그런데 이 작업을 하던 도중, 그림자가 90도 돌아가 출력되고 있는 현상을 발견했다. 수정하지 않았다면 큰 버그를 놓칠 뻔 했다.

납작이 잘 안보이기 때문에 눈속임이 조금 필요하다. 때문에 세로스케일을 3배로 늘려찍는다. 위에서 보면 아래와 같은 그림이 된다.

그 외의 문제들을 해결

  • 스트레스 수치가 스턴을 거칠 때마다 10씩 상승하도록 수정했다. TOD를 막기 위한 조치
  • 잡기 후 좌우가 반대로 입력되는 현상을 수정
  • 달래의 설풍 후 달려가기를 막음. 무한 [달려가기-약손-설풍] 방지용
  • 그레텔의 벽점프가 정방향일 때 반대쪽으로 점프하지 않는 문제를 수정

…를 하다보니 새로운 문제들이 속속 추가되어서 다시 수정 중. 대부분 입력시스템 변경에 따른 사이드 이펙트이다.

  • 잡기 시에 입력키에 따른 방향전환 삭제
    • 이는 0.26버전에선 작동하다가 0.45에서 버그가 있어 작동이 되지 않고 있었는데, 고치고 나니 캐릭터의 위치가 바뀌는 것이 별로 마음에 들지 않아서 삭제

11.6

이제 도레미의 휠윈드는 사소한 장풍을 피할 수 있다. 어쩐지 그래야 할 것 같았다.

프리오리의 초필은 점프과정이 불필요한 것 같아서 삭제. 점프가 없으므로 커맨드도 ↓(모아서)↑B에서 ←(모아서)→B로 변경

그레텔은 또 너프. 워프공격의 딜레이를 5프레임(0.167초 정도) 늘렸다.

그레텔의 강발을 무한히 쓸 수 있다는 제보가 있었는데, 맙소사! 방어 코드에 심각한 결함이 있음을 발견했다. 처음 동작을 디자인할 때, 큰 데미지의 전체 모션길이는 20frm으로 설정했지만, 무방비로 맞을 수 있는 시간(safeTime)은 10frm으로 설정했다. 때문에 딜을 넣으려면 10frm내에 해결해야 한다. 이 시간을 넘기면 데미지 모션 중일지라도 방어를 할 수 있는데, 리팩토링을 하며 부호가 잘못 들어가 있었다. 때문에 실제로 데미지 액션 중엔 계속 처맞는 버그가 있었고, 이것이 대부분의 공격이 20frm이하인 그레텔을 탑티어로 만드는데 기여했을 것이다.

그래서 이를 수정. 이제 무한히 딜을 넣는 건 불가능하다.

그 외 오늘의 사소한 해결사항들

  • SlamDamage를 공중에서 맞을 경우, 바로 회복되는 문제를 해결
  • 모든 초필 도입부는 무적시간 적용. 약손에 초필이 씹히는 경우가 없도록.
  • 앉아있을 땐 가까워도 잡기가 적용되지 않도록 수정.
  • 프리오리의 장풍은 맞으면 넘어지도록 수정

11.7

넘어졌을 때 빠르게 일어날 수 있도록 방향성을 추가. 위아래키로는 예전처럼 제자리에서, 좌우키는 각 방향으로 구른다. 무적판정시간은 기존의 구르기와 같으나 여기엔 원론적인 문제가 있었다.

기존의 구르기는 판정에 버그가 있었다. 이것은 디스코드의 리포트로부터 알게 된 것으로 오래도록 묵혀둔 문제였다. 그런데 오늘 코드를 살펴보니 그냥 충돌판정이 잘못되어 있었다.

캐릭터가 이동할 땐 이동과 공격, 2가지를 위한 충돌검사를 한다. 2가지의 충돌검사는 병렬로 이루어져야 한다. 구르기의 경우 이동판정은 무시하지만, 공격판정은 적용되어야 하기 때문. 그런데 이 공격판정 코드가 이동판정안에 있어 이동이 무시되면 공격도 무시되게 처리되어 있었다.

해결책은 쉽다. 그냥 이동판정의 블럭에서 공격판정코드를 빼어 밖으로 배치하면 된다.

구르기의 무적판정은 8프레임이다. 8/30 = 0.267초 정도 된다.

11.8

배경 선택 기능을 위해 페이즈를 나눠 입력기능을 분리하다가 주먹구구식으로 처리하던 입력 지연 코드를 리팩토링. 짧아지는 코드를 보는 것은 언제나 기분좋은 일이다.

배경 수동 선택 구현. 필수적인 단계는 아니다. 그냥 기존처럼 랜덤으로 선택이 되지만, 원하면 바꿀 수 있다.

그 외 사소한 수정 사항들

  • 스킬바 위치를 약간 낮춤. 캐릭터의 발 끝을 조금 덜 가리도록.

11.9

‘앉아 막기’에는 빈틈이 있었다. 캐릭터가 서 있을 땐 앉는다는 동작을 거친 후에야 막기가 가능했는데, 이것이 1프레임이 걸린다. 1/60초. 이 시간동안 타격이 있을 경우 막기가 안된다. 굉장히 짧은 시간이지만, 어쨌거나 일어난다.

때문에 방어를 할 경우 앉기를 동시에 판단하도록 설계를 변경. 일단 테스트는 잘된다. 실제 테스트때할 때도 좋은 결과가 있기를.


아래는 소소한 수정사항들

  • 히트 후 연계기 유효 시간을 줄였다. 이게 길다보니 이상하게 공격이 연결되는 경우가 종종 있어 그림이 좋지 않았다. 벨의 달리기처럼 의도적인 딜레이를 주는 경우는 예외.
  • 프리오리의 곤충눈 수정
  • 눈썹 셰이더가 얼굴이 어두워질 때 같이 어두워지지 않는 현상을 수정
  • HP가 빨간색으로 깜빡일 때는 SP가 2배로 참
  • 앨리스의 찌르기 후 쳐올리기가 약공격으로도 연계되도록 수정
  • 앨리스의 대공기 후 발차기 히트 박스 크기를 좀 더 넓게.

이제 큰 것들만 남았다.

버그픽스와 밸런싱 #2”의 6개의 생각

  1. 하루에 몇시간 주무시나요 ㄷㄷ 근황이나 개발일지 보면서 존경하게 됩니다.
    저도 한 가정의 가장인데.. 반성해야겠네요.

    1. 감사합니다. 한창 작업할 땐 6시간 정도 잤었는데, 몸이 망가진 이후로 8시간씩은 잡니다. 잠은 무엇보다 중요해요!

akuwoo님에게 덧글 달기 응답 취소