본문 바로가기
공부/python

[Pytesseract를 사용한 메이플스토리 길드 스코어 분석] 프로그램 소개

by 고기 2022. 3. 24.

나는 어릴 때부터 메이플스토리라는 게임을 즐겼다. 과거형인 이유는, 최근 1~2년간은 취업준비다 뭐다 때문에 접속만 해놓는 편이어서 지금도 즐기고 있다고 하기가 조금 그러네...

 

아무튼 좀 오래돼서 몇 년 전이었는지 기억은 안 나는데, 길드 콘텐츠인 주간 미션과 지하 수로, 플래그 레이스를 참여해야만 길드 스킬을 찍을 수 있는 포인트를 얻을 수 있도록 패치를 한 적이 있었다. 사실 이 패치는 길드 사람들과 협동을 통해 다른 길드와 경쟁을 해서 더욱 즐거운 메이플스토리가 되었으면 하는 취지였겠지만, 정작 패치가 적용되고 길드 경쟁에 따라 길드 포인트가 차등 지급이 되기 때문에 주간 미션 n점, 지하수로 n점, 플래그 레이스 n점 이런 식으로 길드원에게 길드 콘텐츠를 강요하게 되는, 그런 상황이 되었다.

 

우리 길드는 길드 스킬 포인트가 정산이 되는 날을 기준으로, 일정 점수가 넘지 않으면 길드 스킬 사용을 제한하고 오랜 기간 참여하지 않으면 길드원을 정리하는 등 그런 문제가 조금 있었다. 다른 길드는 어땠는지 잘 모르겠지만 우리 길드보다 더 심한 길드도 있었고 아닌 길드도 있었겠지.

 

물론 이런 방식이 맞다 틀리다를 말하려는 건 아니다. 애초에 나랑 상관없는 이야기였고 이미 지난 일이니까. 중요한 건 이렇게 길드원의 길드 스킬 사용을 제한할 때, 길드원 한 사람씩 점수를 확인해서 약 100명~ 200명을 확인해서 직위를 설정해야 하는데 이것은 굉장히 비효율적인 작업이라는 생각이 들었다. 

 

여기서 생각해낸것이 길드 참여 현황 분석 시스템이다. 아래 사진에서 캐릭터 별 콘텐츠 점수를 자동으로 읽어와서 길드 스킬을 사용할 수 없는 길드원을 한 번에 찾아준다거나, 길드원 전체가 얻은 점수에서 얼마만큼 기여하고 있는지 등을 알아볼 수 있도록 구현했다.

사진1

 

아래 사진은 주간미션1점 & 플래그100점 이상인 사람만 길드 스킬을 사용할 수 있도록 제한을 두고 분석한 것이다. F라인 기준 왼쪽에서는 본인이 길드에 얼마나 기여하고 있는지 확인할 수 있고, 오른쪽에서는 본인의 캐릭터들이 몇 점을 받았는지를 확인할 수 있다.

사진2

 

아쉬운 점은 메이플스토리에서 데이터를 공개하지 않고 있기 때문에, 길드원 참여 현황 이미지에서 점수를 읽어오는 방식으로 데이터를 수집했다는 점이다. 이런 방식으로 데이터를 수집할 때 전처리 작업(scale변경 등)을 통해 이미지 분석 정확도를 최대한 높여줘야 한다. 하지만 전처리 작업을 거쳐서 분석한다고 할지라도 데이터가 100% 정확하게 들어온 것을 신뢰할 수 없기 때문에, 정확한 결과 도출을 필요로 하는 분야라면 사용에 주의해야한다.

 

이후 작성할 글에서 사용된 라이브러리 설치과정과 알고리즘 및 중요하다고 생각되는 코드 라인들에 대한 설명을 다뤄보겠다.

댓글