개발공부

재우스 AI 후속 패치 - AI 메이커 추가 02

카로루딘 2024. 6. 5. 21:00

한 달 정도 지나서야 글을 쓴다. 어떤 일이 있었는지는 따로 적지 않겠다. 다만 좀 많이.......바빴다.

 

 

 

구조를 짜고 견적을 짜고보니 사실상의 AI 편집기의 클론 코딩이 되어 있는 상태이다. 일단 하나의 큰 문제가 있어서 늦어졌고, 하나의 적당한 문제가 있어서 기로에 서있는 상황이다. 

 

하나의 큰 문제에 대해

 변명부터 하자면 내 문제가 아니다. 문제가 있다면 내가 대기업의 코드를 너무 대책없이 신뢰한 것이겠다. 무엇인고하니, 마비노기 전투 시스템 상 적과의 대치 상태는 2가지가 있다. 하나는 근처를 맴돌면서 나를 지켜보는 "경계"와 직접적으로 멱살잡이하는 "인식" 상태가 있다. 그런데 단순 코드줄을 짜서 다운 시킬 때에는 이 인식과 경계에 대한 상황을 전부 짜다보니 신경을 쓰지 않아도 되었는데 하나하나 직접 코드를 짜는 편집기를 클론코딩하면서 문제가 발생했다.

 

둘이 변수명이 바뀌어 있다!!!!!!!!

 

 마비노기 클라이언트에서 적이 플레이어(펫)을 경계하는 상황은 "attack"으로, 인식하는 상황은 "alert"으로 되어 있었다! 짜고나서 실제 코드에 복붙해본 결과 이게 왜 서로 반대로 출력되는 것이 아닌가?! 변수명을 잘 붙였는데 왜 안되는 것인가 고민을 했는데 결과는 "대기업 넥슨 개발자가 변수명을 반대로 썼다"였다. 이 과정을 게임을 열고, 인게임 편집기로 인식, 경계 상황에 대한 코드를 짜고, VScode로 해당 AI 파일명을 뜯어 대조하고나서야 알아챌 수 있었다. 

 그래....그럴 수 있다. 20년 전 당시 마비노기를 작업하던 개발자 아저씨가 코드를 짤 때 20년 후에 취준생이 자기 변수 실수를 끄집어내 타박할거라 생각했을까? 누가 10년 단위로 간단한 배열값이나 추가하는 편집기를 클론코딩하려고 했을까? 그럴 수 있다. 비록 변수명이 반대로 되어 있지만, 적의 인식 로직은 20년 동안 변한 게 없으니 작동도 제대로 되고 있으니깐.....문제는 없으니.......그럴 수 있다........

 

그런데 아무리 그래도 영어로 "Ice Spear"인 스킬 "아이스 스피어"를 "icespace"로 적어놓은 건 좀 너무했잖아!!!!!!! 이 스킬이 18년 전 업데이트 된 걸로 알고 있는데 변수명이 뒤바뀐 것도 아니고 아예 제대로 아웃이잖아!!!!!

 

 변수명이 뒤바뀐 것은 용서가 되는데 아예 오탈자를 떡하니 적어놓은 것은 진짜 선 넘었다고 생각한다. 저것 때문에 모든 변수를 손으로 하나하나 인게임 편집기로 작성하고, VScode로 파일을 열어서 눈으로 대조하는 아주 멋지고 행복한 시간을 보내야 했다. 그렇게 변수 확인을 다 거치고서야 밝혀진 또 다른 사실은 이 망할 편집기 코드는 리팩토링을 염두에 두고 만들어진 것이 아니라 그냥 위에 쓰레기처럼 툭툭 얹어둔 코드 글줄 뭉치였다는 것이다.

 

하나의 프로그램, 하나의 기능에 네이밍 컨벤션 여럿이 혼재하는 건 또 뭐냐고!!!!!

 

컨벤션이 아예 없는 소문자뭉치(데브켓 컨벤션?)에서부터 시작해서 스네이크 케이스, 헝가리안 컨벤션에 스네이크+헝가리안 컨벤션까지 그냥 세상 모든 컨벤션을 다 얹어둘 것 같이 섞여있는 상태였다. 내가 비록 불교 신자지만 이 편집기에 사탄마귀가 들렸다고 누가 주장하면 무조건 긍정하며 십자가를 머리 위로 치켜들 생각이다. 퇴마사도 포기할 이 글줄 뭉치에 안식이 있기를.....!