* 대부분의 처리는 Scene_Map 에서 이루어지고 메뉴나 상점 등의 처리는 각각의 Scene 으로 넘어가 처리됩니다. 그동안 Game_Map 이 데이터를 가지고 있다가 해당 Scene 이 끝나고 Scene_Map 으로 돌아오면 가지고있는 데이터로 맵을 다시 구현하는 방식인데 이렇게 할경우 프로그래밍이나 최적화하기에는 좋겠지만 파티클이나 일부 스프라이트가 증발하는 현상이 발생합니다. 특히 파티클을 많이 사용한 게임의 경우 메뉴한번 여닫았을 뿐인데 화면에 있던것들이 모조리 사라져있는 어이없는 경우가 발생합니다.
* 그런데 Scene_Map 의 업데이트를 완전히 멈춰버리면 Scene_Map 을 떠나지 않고도 다른 처리만 할수있는 효과를 낼 수 있다는것을 알아냈습니다. 약간의 개조만 거치면 가능하고, 이를 이용하면 간단한 일시정지 스크립트(맵에서만 사용되는)를 만들수도 있죠.
* eval("") 커맨드는 가로안에 쓰인 문자열을 스크립트로 인식해 처리합니다. 우리가 이벤트 커맨드에서 볼수있는 "스크립트"도 이 eval 커맨드를 이용해 처리됩니다. 제가 일전에 올린 콘솔 커맨드 스크린샷은 이런 기능을 응용한 것으로 RMXP 에디터가 아니라 게임 플레이를 하면서 커맨드를 입력할수 있게끔 한것입니다. 이말인즉슨 게임을 하면서 치트를 치게 만들수도 있고 버그를 잡거나 하는것을 할수 있다는 말씀. 단 입력받는 동안은 위에있는것과 같은 방법으로 게임을 중지시켜야합니다.
* $game_variables 는 기본적으로 정수만 저장할수 있게 되있지만 조금 뜯어고치면 모든 데이터형식을 저장할수 있습니다. 그래서 일반적으로 스크립트를 추가하면 Game_System 에 없던 메소드가 생기는 바람에 기존의 세이브파일과 호환이 되지 않지만 Game_Variables 를 사용한후 몇가지 버그방지만 해주면 세이브파일 호환성도 높아집니다. 단 Game_Variables 는 Hash가 아니라 Array 이기때문에 불편하지만 $game_variables[421], $game_variables[125] 등 번호로 지정해야하고 Game_Variables 가 marshal_load 에 의해 로드되지 않았다면 에러가 나게되죠.