본문 바로가기

Laboratory3

RPG Maker MV에서 Cordova를 이용하여 안드로이드 실시간 업데이트 구현하기 보통 안드로이드 게임들은 초기에 웹에서 추가 리소스를 받는 경우가 상당히 많다. 앱 용량이 많이 나가면 받지 않는 경우가 있기 때문이다. 추가 리소스를 다운로드 받게 하려면 PHP 기반 웹 서버와 간단한 HTTP 프로토콜을 이용하면 된다. 이를 통해 데이터를 송수신을 할 수 있게 된다. 모바일에서는 다소 느릴 수 있지만 구체적으로 예를 들면 안드로이드에서는 보통 java.net의 HttpURLConnection 객체로 직접 데이터를 웹에 요청하여 수신하는 방법이 있다. 데이터 요청 시 서버가 반환하는 데이터를 한 줄씩 받아오면서 진행률을 표시하고 실제 파일로 저장하는 것은 어려운 일이 아니다. 또한 이러한 리소스를 웹에서 내려 받게 되면, 앱을 4MB 미만의 초 저용량으로 배포할 수 있다는 굉장한 장점이.. 2020. 2. 3.
RPG Maker MV 도움말에 있는 Enigma Virtual Box를 분석해보자 RPG Maker MV로 게임을 만들 때, 도움말에서 가이드 한대로 Enigma Virtual Box를 사용하는 사람들이 있을 것이다. 마녀의 집의 경우, Enigma Virtual Box를 이용하지 않았다. 그 이유는 무엇일까? 사실 Enigma Virtual Box는 암호화 툴이 아니다. 단일 실행 파일을 만들어서 파일을 하나로 통합하여 깔끔하게 만들어주는 툴일 뿐이다. 엄밀히 말하면 단일 실행이 아니라 실행하는 데에는 모든 파일이 필요하며 이를 위해 파일을 어딘가에 슬쩍 풀어놓게 된다. Enigma Virtual Box로 만들어진 게임의 실행 파일을 헥스 에디터로 열어본 적이 있는가? 자세히 살펴보면 .enigma1이라는 이름을 가진 섹션이 존재한다. 해당 섹션에 접근하면 파일의 대한 정보가 쭉 나.. 2020. 2. 3.
RPG Maker MV에서 루비의 alias 모방 방식을 대체할 방법이 있을까? - 자바스크립트는 프로토타입 기반의 언어로 프로토타입 체인을 기반으로 상속을 흉내낸다. 핵심은 어떤 객체에서 특정 속성이나 함수를 찾을 때 상위 객체로 거슬러 올라가면서 탐색을 한다는 것이다. MV에서는 프로토타입에 연결된 함수의 링크를 바꾸는 방식으로 스크립트를 작성하게 된다. var alias_Window_Command_lineHeight = Window_Command.prototype.lineHeight; Window_Command.prototype.lineHeight = function() { return alias_Window_Command_lineHeight.call(this) - 18; }; ES6의 클래스는 루비나 C#처럼 분할 정의가 되지 않기 때문에 재정의가 불가능하고, 따라서 프로토타입에.. 2020. 2. 3.