어제 있었던 인챈트 100% 실패 사건에 관련하여 게임 소스까지 오픈하여 해명하였습니다.
인챈트 100% 실패 사건: http://bbs.ruliweb.com/pc/board/300007/read/2163185
공식 해명 및 보상: http://maplestory2.nexon.com/News/NoticeView?sn=779&b.pn=1&b.ct=0b.odtp=all&b.stp=&b.stxt=
===================================
안녕하세요. 메이플스토리2 디렉터 신민석입니다.
이미 공지드린 바와 같이
8월 16(목) 점검 중 내부 로직을 개선하는 과정,
즉, 쌍수 무기를 인챈트할 때는 토드의 연마석을 장비 2개로 취급하도록 개선하는 과정에서 오류가 발생했습니다.
그 결과 12단계 이상 인챈트 시도 시, 보너스 성공 확률의 일부가 적용되지 않는 현상이 발생했습니다.
게임에 큰 영향을 미치는 영역이자, 가장 주의 깊게 관리되어야 하는 영역에서 버그가 발생함으로써
모험가 여러분께 걱정과 실망을 안겨드리게 되었습니다.
저희를 믿고 게임을 즐겨주시는 모든 모험가 여러분께
메이플스토리2 담당자 전원을 대표해 머리 숙여 사과드립니다.
어제 안내해 드린 공지 후,
보너스 확률뿐만 아니라 그 외 다른 확률형 콘텐츠에도 문제가 있었던 것은 아닌지 등
적잖은 분들께서 여러 궁금증을 갖고 계신 같아 본 공지를 통해 좀 더 자세히 설명드리고자 합니다.
첫째
장비 재료 초과 사용 시, 보너스 성공 확률이 적용되지 않은 원인
8/22(수) 공지로 안내드린 것처럼 쌍수 무기 인챈트 시도 시,
토드의 연마석을 2개로 취급하기 위한 수정 작업이 필요했습니다.
(8/10 해당 내용이 담당부서에 전달되며 작업자의 개발이 시작되었습니다)
아래 그림은 장비 인챈트 시, 추가 장비의 확률을 가져오는 함수입니다.
(클라이언트에 확률 정보를 전송해주거나 장비를 선택했을 때, 기본 확률 + 장비 추가 재료 확률이 30%를 넘지 않는지 확인할 때 쓰는 함수)
이 작업을 하는 과정에서 초과 장비 분에 대한 추가 확률이 아예 반영되지 않는 버그가 발생하였고
아래는 수정된 GetUsingEquipIngredientCount() 함수 내용입니다.
쌍수 무기 인챈트 시, 토드의 연마석 재료갯수를 2개로 처리해주기 위해서
기록된 아이템 정보를 기반으로 인벤토리 아이템 정보를 불러와서 추가 재료 장비의 개수를 구하게 되며
만약 인벤토리에 해당 아이템이 없으면 0이 리턴 처리 됩니다.
일련의 과정을 다시 정리하면
인챈트 버튼을 누를 시,
1. 인챈트 재료들인 오닉스 결정, 카오닉스 결정, 크리스탈 파편, 장비재료, 성공 확률 증가 포인트를 실제로 가지고 있는지 확인
2. 인챈트 재료들이 모두 있으면 재료 소모
3. 강화 성공인지 실패인지 결정
기존 인챈트 로직에서 강화가 성공인지 실패인지 결정해주는 함수는 재료를 소모한 뒤에 호출이 되는데
수정점이 생긴 함수가 기존에 사용되고 있으면서 문제가 발생한 것이었습니다.
기존의 선택한 장비재료 정보는 인챈트가 끝났을 때 초기화 되는 정보기 때문에 (m_equipIngredient)
장비 소모가 되더라도 정상적인 값을 가지고 오지만
수정점이 생긴 부분은 장비가 소모된 후에 호출이 되면 재료가 없다고 판단하여 0을 리턴해서 추가 장비 확률값이 0이 되어서 버그 발생했습니다.
인챈트 버튼을 누르기 전에는 소모가 되지 않은 상태에서 확률을 계산해서 UI에서는 정상적이 값이 표시되고 있었지만
실제 인챈트는 소모 후에 이루어 지기 때문에 결과적으로 UI와는 다른 확률로 계산이 이루어진 것이었습니다.
둘째
장비 인챈트 시, 기본 성공 확률에는 문제가 없는지 검증
calcEnchantSuccessProp 함수로 강화 단계에 따른 확률 선택하며
이벤트가 있으면 이벤트 확률을 적용하는 방식으로 되어 있으며 관련하여 문제점이 없는 것을 검증하였습니다.
마지막으로
젬스톤, 루미스톤 강화 시에는 문제가 없는지 검증
젬스톤, 루미스톤 강화 시에는 calc_gemStoneUpgradeSuccessProb 루아 함수로 확률을 계산하며
강화 대상이 아닌 1레벨, 11레벨 이상은 제외고 테이블에 있는 각 단계별 확률에 따라 적용되고 있는 것을 확인하였습니다.
이번 문제를 계기로 앞으로 인챈트와 관련된 모든 수정 사항은
만에 하나 발생할 수 있는 모든 가능성을 염두에 놓고
절대적인 시간을 늘려 검수하고자 하며, 나아가 관련 검수 프로세스도 철저히 정비하겠습니다.
모험가 여러분께 안내 없이 임의로 인챈트 확률을 조정하는 것이
메이플스토리2 서비스에 어떤 악영향을 미칠지는 자명다고 생각합니다.
이러한 방향성 하에서
지난 7/5(목) 인챈트 개편 당시, 일부 상위 구간에서 인챈트 성공 확률을 하향 조정했을 때도,
가감 없이 패치노트로 안내드린 것이며 앞으로도 이러한 공지 방향성은 계속 유지해 나갈 계획입니다.
마찬가지 맥락에서
메이플스토리2의 인챈트 확률을 공지 없이 임의로 조정한 적은 절대로 없었음을,
그리고 앞으로도 결단코 없을 것임을 이 자리를 빌려 약속드립니다.
이번 문제로 인해 실망과 걱정하셨을 모든 모험가 여러분께
다시 한 번 진심으로 사과드립니다.
신민석 드림.
(IP보기클릭)39.122.***.***
와 세상에나 소스를 공개했어? 이건 정말 아주 많이 대단하다...
(IP보기클릭)221.140.***.***
흠자연계열이지만 매우 훌륭한 해명으로 보이는군요 ㅎㅎ 이정도로 확실하게 해명하는건 다른회사들도 본받을만하네요 어디는 99.99999%도 실패할 확률이 있다는 드립하던대 ㅎㅎ
(IP보기클릭)119.199.***.***
저 사건있고 자유게시판보니깐 100%동영상에서 20%확률인가..그렇게 실패하는게 안나왔으면 계속 모르고 있었을거란거 보고 동영상 증거가 나와서 그나마 자기들 소스 찾아서 문제를 해결한거지 동영상없었으면 몇일이고 몇달이고 방치했을거란 얘긴데...
(IP보기클릭)211.51.***.***
소스코드 해명은 진짜 처음 보네ㅋㅋㅋㅋ 어지간히 억울했던 모양
(IP보기클릭)125.135.***.***
세상에! 라기보단 확률게임 전부 엿이나 먹어라
(IP보기클릭)119.64.***.***
(IP보기클릭)119.64.***.***
...일단 젬스톤 확률업이고 뭐고 좀 '확정업' 좀 되게 해줘라 좀 | 18.08.23 22:26 | | |
(IP보기클릭)125.191.***.***
(IP보기클릭)39.122.***.***
와 세상에나 소스를 공개했어? 이건 정말 아주 많이 대단하다...
(IP보기클릭)118.40.***.***
그래봤자 넥슨이에요 ㅋㅋ | 18.08.24 00:56 | | |
(IP보기클릭)221.140.***.***
흠자연계열이지만 매우 훌륭한 해명으로 보이는군요 ㅎㅎ 이정도로 확실하게 해명하는건 다른회사들도 본받을만하네요 어디는 99.99999%도 실패할 확률이 있다는 드립하던대 ㅎㅎ
(IP보기클릭)125.135.***.***
세상에! 라기보단 확률게임 전부 엿이나 먹어라
(IP보기클릭)211.195.***.***
요즘 확률 컨텐츠 없는 게임이 있나 | 18.08.23 22:44 | | |
(IP보기클릭)121.159.***.***
(IP보기클릭)125.128.***.***
(IP보기클릭)211.198.***.***
(IP보기클릭)1.245.***.***
(IP보기클릭)119.199.***.***
저 사건있고 자유게시판보니깐 100%동영상에서 20%확률인가..그렇게 실패하는게 안나왔으면 계속 모르고 있었을거란거 보고 동영상 증거가 나와서 그나마 자기들 소스 찾아서 문제를 해결한거지 동영상없었으면 몇일이고 몇달이고 방치했을거란 얘긴데...
(IP보기클릭)121.171.***.***
문제가 발생하기 전까지 모르니 못고치는게 맞지않음? 문제 발생하고 고친거보니 대처 빠른거같은데 | 18.08.23 22:54 | | |
(IP보기클릭)119.64.***.***
솔까 저런식으로 '뭔가가 잘못됬는데 멀쩡히 돌아가는데다가 몇번 테스트해봐도 멀쩡히 작동될 수 있는' 건 증거 나오는거 외엔 찾을길이 없으니... | 18.08.23 23:01 | | |
(IP보기클릭)121.158.***.***
(IP보기클릭)175.199.***.***
(IP보기클릭)39.118.***.***
(IP보기클릭)220.74.***.***
(IP보기클릭)118.223.***.***
(IP보기클릭)112.184.***.***
(IP보기클릭)218.209.***.***
파워도적
이거 조작해서 한탕먹고 접을게임도아닌데 미쳣다고 확률조작하겟습니까 그리고 넥슨정도회사면 저런걸로 버는 푼돈에 비해 잃는게 더크죠 | 18.08.23 23:56 | | |
(IP보기클릭)222.232.***.***
파워도적
요즘 이런거 보면 너무 분노성향이라고 하나? 조금만 실수하거나 미숙해도 죽이자고 달려드는 느낌;; 사과하고 해명하고 앞으로 더 주의하겠습니다. 라고해도 그냥깜 물론 유저를 개돼지로 보고 상술해쳐먹은 것들 때문에 이지경까지 온 거지만 마치 공산당 빨갱이 잡듣이 너나할것없이 그냥 다깜;; 실제로 저거 소스스샷 왼쪽에 줄수 잘라서 올려서 그렇지 그 몇만줄이나 되는 소스에서 뒤져가면서 검수하고 수정하는게 쉬운일이 아니라는건 조금만 생각해보면 다 알텐데 말이죠;; (물론 이미 문제가 뭔지 명확히 안 상태에서는 수정은 좀 쉽지만) 대한민국에서 사업하기 힘듦... | 18.08.24 02:02 | | |
(IP보기클릭)211.46.***.***
닉네임은30자
하청 : 아, 저는 아님 ㅎ | 18.08.24 08:12 | | |
(IP보기클릭)211.184.***.***
(IP보기클릭)112.170.***.***
(IP보기클릭)175.199.***.***
(IP보기클릭)121.148.***.***
이 부분에 관해서는 해명을 믿어야할 것 같아요. 해명 내용을 보면 연마석을 추가하는 작업(쌍수에선 2개로 인정시키는 작업)에서 생긴 것이라고 하기 때문에 적극적인 해명이라고 보고 믿는게 답 아닐까 싶어요 | 18.08.23 23:27 | | |
(IP보기클릭)175.199.***.***
다시 생각해보니 8/10 일자로 수정 요청이 들어갔고... 그 이후로 수정점이 생기지 않으면 위의 문제가 발생할 수가 없는거였네요. 코코블루.님이 말한 것 처럼 수정 작업에서 생긴 문제점이라고 봐야할 듯 싶습니다. | 18.08.23 23:34 | | |
(IP보기클릭)180.182.***.***
(IP보기클릭)110.10.***.***
(IP보기클릭)211.51.***.***
소스코드 해명은 진짜 처음 보네ㅋㅋㅋㅋ 어지간히 억울했던 모양
(IP보기클릭)118.38.***.***
억울하면 안되죠.. 실수라도 자기들이 한건데.. | 18.08.24 01:34 | | |
(IP보기클릭)45.64.***.***
(IP보기클릭)211.51.***.***
뭐 대단한 로직을 공개한 건 아니라서 자산 어쩌고 할 건 없어보이기는 한데 그래도 신선하고, 결백함을 주장한다는 근거는 되어보이네요 | 18.08.23 23:35 | | |
(IP보기클릭)180.182.***.***
ㅇㅇ 지금까지 소스 깐 해명글은 첨봄 전 ㅋㅋ | 18.08.23 23:37 | | |
(IP보기클릭)222.101.***.***
그리 대단한거 아님 그냥 신선한것 | 18.08.24 00:08 | | |
(IP보기클릭)121.163.***.***
(IP보기클릭)59.27.***.***
(IP보기클릭)222.101.***.***
(IP보기클릭)180.224.***.***
(IP보기클릭)106.245.***.***
근데 다른 회사들은 왜 코드공개하면서 해명하지 않을까요? 일부분이라도 코드를 공개한다는건 회사의 민낯을 공개하는거와 같아서 그래요. 비유하자면 회사 내부회의의 녹음버전을 올리는거와 같죠. 그리고 해명하는데 오바한다는 표현은 적정선이 있단 뜻인데 어떻게 해명해야 적정선인가요? | 18.08.24 01:15 | | |
(IP보기클릭)180.224.***.***
이번일로 유저들이 피해를 입거나 신뢰가 떨어졌으니 피해의 정도에 따라 담당자나 책임자가 징계를 절차에 의해 받아야된다고 봅니다. 실수한 코드 쪼가리 원인해명이 무슨 소용이 있을지 의문이네요. 그리고 저런 코드는 민낯까지 갈 가치도 없어요. 확률 계산 로직 전체를 오픈하는것도 아니고, 프로세스 잘 모르는 유저들은 우와 소스 공개를 하다니 정말 큰 결단과 진솔한 해명과사과라고 생각하겠지만요; 댓글 다시는거 보니 내부 관계자나 넥슨 재직중이신거 같은데(?) 솔직히 까놓고 일커지기 전에 호들갑 떨면서 보여주기 식 아닌가요? ㅉㅉ | 18.08.24 01:28 | | |
(IP보기클릭)175.196.***.***
ㅋㅋㅋ 아니 그럼 사과는 뭐하러함? 속으로는 거짓말일 수도 있는데? 인사는 뭐하러 함? 속으로는 욕하고 있을 수도 있는데? 그럼 코딩하다 실수해서 버그 생기면 담당자들은 다 징계받아? 겁나서 게임 만들겠나? | 18.08.24 08:23 | | |
(IP보기클릭)211.106.***.***
걍 죄수번호는 끼지 마세요...답변할 가치도 없는 말 하지말고... | 18.08.24 17:35 | | |
(IP보기클릭)175.196.***.***
아니 끼던 말던 ㅋㅋ 지나가다가 님이 너무 개초딩스런 소릴 싸질르길래요 ㅋ | 18.08.24 18:54 | | |
(IP보기클릭)180.224.***.***
걍 모르면 지나가시던길 쳐 가세요...아니면 어느부분이 개초딩스런 소리인지 제대로 반박을 하시던가...라이브 서비스 중 이런 민감한 문제는 내부경고나 징계 절차가 기본적으로 존재해요...그래서 철저히 QA를 하는거고. 이런 확률조작 의심되는 문제는 이전 사례들의 안좋은 이미지가 쌓여있어서 유저들이 더 불신하고 의심하는 겁니다. 지금 사과의 진정성을 문제삼는게 아니라 잘 모르는 일반유저에게 저런 소스쪼가리 보여주면서 넘어가려고 하는걸 문제삼는겁니다. 아시겠어요? | 18.08.24 22:31 | | |
(IP보기클릭)175.196.***.***
웃기는 소리 하고 있네요. 님 손으로 돈 한푼이라도 벌어는 보셨음? 그럼 저렇게까지 했는데 뭘 더 어떻게 하라고? 버그 낸 개발자 참수라도 하면 아... 진정성있구나 하겠네? 님 메이플2는 해봄? 걍 혼자 남까기 좋아서 입터시는 거 같은데? 그리고 어느 회사가 개발자가 버그 냈다고 징계절차를 함? 한국 온라인게임 수시로 버그 터지는데 다 짤리고 귀신이 만들고 있나? | 18.08.25 00:12 | | |
(IP보기클릭)180.224.***.***
하...논리적으로 얘기도 못하면서 극단적인 예를 앞뒤없이 말하는거 보면 더이상 대꾸할 가치도 없어보입니다... 자잘한 버그는 언제든 일어날 수 있지만, 이런 확률 영역의 버그는 이게 조작인지 실수인지부터 유저들이 의심하기 때문에 굉장히 민감하게 대응하는겁니다...게임의 지속여부가 달려있으며, 이런 문제로 추락한 게임 사례도 많구요... 어린애같은 소리 계속 할꺼면 계속 해보세요; | 18.08.25 00:26 | | |
(IP보기클릭)175.196.***.***
ㅋㅋㅋ 자가당착에 빠지셨나? 왜요? 할말 없음? 당연히 논리적으로 차이가 없으니 대꾸를 못하지, 대꿀멍? 극단적인 예? 뭐가 극단적임? 당신이 요구하는게 극단적거지 ㅋㅋㅋㅋ 이제 스스로 요구하는 것이 극단적인 거라는걸 셀프인정? 당신이 요구하는게 그거 아님? 그래서 만약에 앞으로 이런 사고 발생하면 어쩌라거? ㅂㅓ그 낸 개발자 공개하고 징계 날리고 그러라는거? 딱 말하는거 보니까 어디 중딩정도 되는거 같은데, 나중에 편의점 알바해서 정ㅅㅏㄴ 빠지면 경찰조사받고 그러셔야 겠네? 그리고 버그 냈다고 징계받고 그런 사례가 한건이라도 있는지 한번 팩트 대보시던가 | 18.08.25 10:41 | | |
(IP보기클릭)180.224.***.***
음 제대로 사회생활도 안해본 사람하고 이런 논쟁하는거 자체가 낭비라 생각되네요. 나중에 회사에서 실수하고 지금처럼 징징대보세요. 회사에서 어떻게 처리하나; 딱 예를드는거 보아하니 편의점 알바인생 전전하면서 푼돈 챙기시는거 같은데, 왜 찔리세요?ㅋㅋ | 18.08.25 15:25 | | |
(IP보기클릭)180.224.***.***
그리고 극단적인 예를 자꾸 드는건 당신인거 같은데, 윗글부터 찬찬히 읽어봐요. 내가 담당자 징계정도 얘기한걸 당신은 계속 참수니, 경찰조사니 개소리를 하고있잖아요? 사회생활을 안해봐서 어린 소리 지껄이고 있는거 같은데, 징계의 수준이 경고나 시말서 수준도 있는데 극단적으로 거품물고 있는건 당신인걸 찬찬히 읽어봐요. 그리고 사회생활이나 회사업무 당신처럼 인간적으로 실수해도 웃으면서 봐주겠지 하는 어린생각 가지고 계속 살아봐요 평생 지금 살고있는 수준으로 밑바닥 못 벗어날테니... | 18.08.25 15:34 | | |
(IP보기클릭)175.196.***.***
아이쿠~ 이젠 직업 비하까지?? 내가 편의점 알바하면 눈깔고 만약 대기업 임원이면 님이 눈까시게요? ㅋ 그럼 만약 저 공지를 저렇게 안하고 그거 코딩한 개발자 징계했다 그럼 님은 오~~ 역시 진정성 있군 하는거? 님 같은 사람들이 있으니 어린 꼰대라는 얘기가 나오는 거임. | 18.08.25 17:33 | | |
(IP보기클릭)180.224.***.***
자기 맡은 일이 문제생기면 책임지는게 기본인데, 그게 꼰대 마인드인가요? 뉴스 안봐요? 회사원이든 공무원이든 한사람으로 인해 문제가 생기고 그로인해 다수의 피해자가 생기면 관련자와 책임자 징계하는건 기본이잖아요? 이게 꼰대인가요? 그리고 순진한건지 바보같은건지 모르겠는데, 이번일 실수한 담당자에게 윗선이 '실수할수도 있지 뭐' 하면서 어깨 두드려줬을꺼같아요? 이정도 버그수준이면 기본 시말서 감이에요. 기본적인거 경험 못해봤고 잘 모르겠으면 그냥 눈팅만 하세요. 어린생각으로 말도안되는 논리 씨부리지마시고. | 18.08.25 17:57 | | |
(IP보기클릭)106.102.***.***
(IP보기클릭)121.180.***.***
(IP보기클릭)180.230.***.***
(IP보기클릭)117.111.***.***
(IP보기클릭)221.140.***.***
(IP보기클릭)220.119.***.***
(IP보기클릭)175.212.***.***
(IP보기클릭)112.148.***.***
(IP보기클릭)121.140.***.***
(IP보기클릭)211.49.***.***
(IP보기클릭)39.7.***.***
(IP보기클릭)220.67.***.***