비바 뉴 베가스 팩 원본인 Viva New Vegas 모딩 가이드의 디스코드 서버에서는NVAC를 설치하지 말라고 안내하고 있다. NVAC를 설치하는 사람을 빡빡이(Baldness)라고 부르면서까지 NVAC를 제거하도록 설명한다.




정확한 이유가 궁금해서 직접 디스코드를 통해 Viva New Vegas 모딩 가이드를 작성한 사람중 한명이자 Performance and Stability Guide라는 뉴 베가스 관련 성능 향상과 안정성 향상 가이드를 만든 관리자에게 질문을 해봤다.






프로그래밍에 대해 아는 것도없고, 영어도 못해서 이해하기 힘들었지만, 대충 내용을 들어보니 NVAC가 게임에 지랄염병을 한다는 것만은 알아들었다.






관리자가 말한 예시상황과 비유를 최대한 옮겨 적었다.






퀘스트 하나가 있다고 치자.



이 퀘스트는 특정 NPC에게 말을 걸어야 한다.



그리고 NPC에게 말을 걸 때 뜨는 대화문에서 수많은 스크립트가 설정 되어있다.






이제 다른 모드에 의해 이 퀘스트와 모드가 충돌하여 NPC가 존재하지 않게 되었다 치자. 그리고 게임이 이 문제를 마주하고나서 해결방안을 못 찾아서 크래시가 떴다.






여기서 게임이 크래시가 나는 이유는 사용자 혹은 프로그래머에게


“뭔가가 일어났는데 저는 이 문제를 어떻게 해결 해야할지 모르겠어요. 제가 더 큰 피해를 일으키기 전에 종료 될게요.”


라고 말하는 것과 같다.


게임자체에 문제가 생길 뿐만 아니라 잠재적으로 컴퓨터 자체에 영향을 끼칠 수도 있으니까.


이때 게임은 자폭하면서 어떤 오류가 생긴 것인지 로그 혹은 파일의 형태로 기록을 남긴다.






이때, 게임이 터지기 직전 NVAC가 게임에 개입한다.


NVAC는 게임의 엔진을 고치는 모드가 아니다. NVAC는 게임에 Null Check 기능을 수행할 수 있게 만든다.







Null Check는 누락된 값을 확인하는 작업인데, 이를 통해서 누락된 값에 의한 크래시를 막을 수 있게 해준다.


예시 상황에선 NPC가 누락된 것이 Null 발생 한 것이다. (질문을 해봐도 내가 이해를 못해서 매우 뭉그뜨려서 설명한 것이다. 옳은 설명이 절대로 아니니 주의해라.)






다시, 게임이 NPC가 누락된 것에 의한 오류를 맞딱뜨려 크래시를 일으키려고 한다.



NVAC는 NPC가 누락된 것을 확인하고, 게임이 기록과 자폭을 동시에 하기 직전에 “여기가 망가진 걸 확인했다. 걱정마라. 신경쓰지 말고 계속 동작해라.” 라고 게임에게 말한다.






게임은 NVAC의 말을 듣고 크래시를 일으키지 않고 계속 동작한다.






여기까지만 들어보면 NVAC가 게임의 크래시를 막고, 오류를 수정한 것처럼 들린다.






예시 상황으로 다시 돌아가자.


플레이어는 NVAC가 크래시를 막았기 때문에 아무 일도 모르고 계속 게임을 하고 있다. 그러다 플레이어는 퀘스트를 더이상 진행하지 못하고 막혀버렸다는걸 깨닫는다. 게임 진행에 필요한 NPC가 없다.






NVAC는 Null Check를 해서 게임에게 특정 부분이 망가졌다고 알렸다.


그리고 게임에게 신경쓰지 말라고 했다.


그 결과 게임은 크래시가 일어나지 않았다.


하지만 누락된 NPC, 혹은 NPC의 값을 알맞게 수정한 것이 아니다. 그저 게임이 더이상 꺼지지 않도록 막은 것뿐이다. NPC는 아직도 누락되어있다.






게임은 크래시를 일으켜서 오류의 기록을 남기고 싶은데, NVAC는 게임이 그러지 못하도록 막는다.






이 상황에서 계속 게임을 진행한다면 위에서 들었던 예시처럼 게임의 진행이 막힐수도 있고


어떤 경우에는 NVAC에 의해서 가려진 오류가 너무나 작아서 눈치채지 못하다가 세이브 파일을 불러왔더니 세이브 파일이 완전히 망가져 불러오기조차 안되는 경우도 있다.






관리자에 의하면



어떤 때는 저장을 불러오는데 성공했지만, 플레이어가 인벤토리에서 아이템을 떨어뜨렸을 때, 게임을 초당 2프레임으로 출력하는 경우도 있단다.






그리고 NVAC는 뉴 베가스 본편, 그리고 DLC 뿐만 아니라 영향을 끼치는 범위가 넓단다. NVAC에 의한 메모리 오염으로 크래시가 뜰 수 도있다.






크래시 로거 모드까지 영향을 끼쳐서 NVAC가 크래시 로그에 기록을 출력하는 걸 아예 막기도 하며, 별 의미없는 크래시 로그를 출력하도록 게임을 오염시키기도 한다. 이 때문에 모더들이나 관리자들도 NVAC가 깔려있는 사람의 크래시 로거는 해독이 불가능하다 한다.



게다가 NVAC의 소스코드가 비공개이기 때문에 어느 부분이 문제가 된 것인지 기초적인 파악도 할 수 없단다.






뉴 베가스의 모딩 커뮤니티가 아직 엔진픽스 부분에서 기술이 모자랐던 시절 NVAC의 방식이 그 당시에 할 수 있었던 최선의 방식이었단다. 그러나 요즘엔 JIP NVSE, JohnnyGuitar, Stewie Tweaks 등 엔진을 고치는 모드가 대다수 나왔기 때문에 NVAC를 지금 쓰는 것은 그저 오류 가리기 외엔 아무런 의미가 없다고 한다.






그리고 관리자가 강조한 내용. 오해하지 말 것이 위에서 Null Check를 마치 오류를 천따위로 덮어서 가리는 정도의 작업으로 설명했는데, NVAC의 Null Check 방식이 그런 것이지, 일반적으론 이런 방향으로 사용되는 작업이 아니란다.






결론은 만약 NVAC가 깔려있다면 NVAC를 당장 지우고 이미 세이브가 있다면 눈물을 머금고 말끔히 새 세이브 파일로 플레이 해야한다.









요약)


1.NVAC는 게임이 오류를 무시하게끔 만드는 눈 가리개 역할을 할 뿐이며 오히려 안정성을 떨어뜨린다. 요즘 나온 엔진픽스 모드들보다 못하다.





2.영향을 끼치는 범위가 매우 넓어서 모드끼리 충돌을 일으키게 만든다. 심지어 메모리 오염에 의한 크래시 위험도 있다. 크래시 로그에 장난질까지 친다.





3.이미 NVAC를 사용한 세이브가 있다면 포기하고 새 게임을 시작하는게 좋다. 지금 당장은 괜찮아 보여도 나중가면 반드시 터지게 되어있다.













Q: 신뢰문제 때문에 당신과 제 채팅을 스크린샷해야 할지도 모릅니다. 해도 괜찮을까요?



A: 당연하지.


Q: 감사.






4. 질문에 답해준 Viva New Vegas 모딩 가이드의 관리자에게 감사를 표합니다.



https://gall.dcinside.com/mgallery/board/view/?id=fallout&no=209161



출처



시발 만간에 통팩 뜯어 고쳐야겠노