하나의 콘텐트를 다양한 플랫폼에서 서비스하는 것은 모바일 게임 시장에서 매우 중요한 사항이다. 서로 다른 플랫폼에서 서비스하기 위해서는 기존의 콘텐츠를 특정한 플랫폼에 적합한 형태로 재개발해야하는 추가 비용이 발생한다. 더욱이, 새로운 플랫폼이 등장하는 경우에 다수의 콘텐츠를 단기간에 개발하는 것은 많은 노력과 비용을 요구한다. 따라서 기존의 콘텐츠를 새로운 플랫폼에서 실행될 수 있도록 변환하는 기법에 관한 연구가 필요하다. 본 논문에서는 모바일 콘텐츠를 새로운 플랫폼에서 실행 가능한 형태로 변환하는 모바일 게임을 위한 번역 기법을 제안하고 이를 적용하여 안드로이드 플랫폼에 대한 소스 레벨 콘텐츠 변환기를 설계하고 구현한다. 컴파일러 이론을 적용하여 개발하였으며, 서로 다른 프로그래밍 언어 간의 변환 문제를 부분적으로 해결하였다. 또한 언어 간의 번역뿐만 아니라 커널 이식, 라이브러리 매핑 등 체계적으로 소스 레벨 콘텐츠 변환도구를 구현하였다. 이러한 연구는 기존 모바일 게임에 대한 활용도를 증대시키고 모바일 콘텐츠 산업 활성화에 기여할 수 있을 것으로 기대된다.
하나의 콘텐트를 다양한 플랫폼에서 서비스하는 것은 모바일 게임 시장에서 매우 중요한 사항이다. 서로 다른 플랫폼에서 서비스하기 위해서는 기존의 콘텐츠를 특정한 플랫폼에 적합한 형태로 재개발해야하는 추가 비용이 발생한다. 더욱이, 새로운 플랫폼이 등장하는 경우에 다수의 콘텐츠를 단기간에 개발하는 것은 많은 노력과 비용을 요구한다. 따라서 기존의 콘텐츠를 새로운 플랫폼에서 실행될 수 있도록 변환하는 기법에 관한 연구가 필요하다. 본 논문에서는 모바일 콘텐츠를 새로운 플랫폼에서 실행 가능한 형태로 변환하는 모바일 게임을 위한 번역 기법을 제안하고 이를 적용하여 안드로이드 플랫폼에 대한 소스 레벨 콘텐츠 변환기를 설계하고 구현한다. 컴파일러 이론을 적용하여 개발하였으며, 서로 다른 프로그래밍 언어 간의 변환 문제를 부분적으로 해결하였다. 또한 언어 간의 번역뿐만 아니라 커널 이식, 라이브러리 매핑 등 체계적으로 소스 레벨 콘텐츠 변환도구를 구현하였다. 이러한 연구는 기존 모바일 게임에 대한 활용도를 증대시키고 모바일 콘텐츠 산업 활성화에 기여할 수 있을 것으로 기대된다.
In the mobile gaming market, it is desirable for a specific content to be served on various platforms. Recently, it is a very important issue in the market for mobile games. This problem incurs extra cost, because we need to redevelop existing contents to be executed on another platforms. Moreover, ...
In the mobile gaming market, it is desirable for a specific content to be served on various platforms. Recently, it is a very important issue in the market for mobile games. This problem incurs extra cost, because we need to redevelop existing contents to be executed on another platforms. Moreover, the release of a new platform has spent much more effort and cost developing many contents in short period of time. Therefore, we need to research about translation techniques that enable the existing contents to run on a different platform. In this paper, we propose translation techniques for mobile games. The techniques can be applied on converting mobile contents to runnable contents on a new platform. To realize it, we design and implement a source-level contents translator which is targeting Android platform using the suggested techniques. Our source-level contents translator is implemented systematically by applying compiler theory. Also, we solve partially translation problems between different programming languages. The translator has been implemented separately divided into three tasks such as kernel porting, library mapping as well as language translation. We expect these techniques to increase utilization of existing mobile games and contribute to vitalizations of mobile contents industry.
In the mobile gaming market, it is desirable for a specific content to be served on various platforms. Recently, it is a very important issue in the market for mobile games. This problem incurs extra cost, because we need to redevelop existing contents to be executed on another platforms. Moreover, the release of a new platform has spent much more effort and cost developing many contents in short period of time. Therefore, we need to research about translation techniques that enable the existing contents to run on a different platform. In this paper, we propose translation techniques for mobile games. The techniques can be applied on converting mobile contents to runnable contents on a new platform. To realize it, we design and implement a source-level contents translator which is targeting Android platform using the suggested techniques. Our source-level contents translator is implemented systematically by applying compiler theory. Also, we solve partially translation problems between different programming languages. The translator has been implemented separately divided into three tasks such as kernel porting, library mapping as well as language translation. We expect these techniques to increase utilization of existing mobile games and contribute to vitalizations of mobile contents industry.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
기존에 제시된 포인터 처리 방법론[5]은 많은객체와 메모리 공간을 사용하고, 변수 참조에 대한 접근횟수가 큰 폭으로 증가하기 때문에 제한된 리소스를 갖는 모바일 환경에 적용하기에 어려움이 있다. 따라서 본논문에서는 모바일 환경에 적합한 포인터 번역 방법을제안하고 이를 적용한다.
본 논문에서는 제시하는 번역 기법은 GNEX 플랫폼에서 동작하는 콘텐츠를 안드로이드 플랫폼에서 실행가능하도록 번역하는 것을 목표로 한다. 즉, GNEX 플랫폼의 개발 언어인 모바일 C 언어를 안드로이드 플랫폼의 개발 언어인 자바로 변역하는 것으로 정의할 수있다.
본 논문에서는 컴파일러 이론을 적용하여 모바일 게임을 소스 레벨에서 변환하는 기법을 제안한다. 또한, 제안된 기법을 바탕으로 이기종간의 모바일 게임 변환을 용이하게 하기 위한 도구인 소스 레벨 변환기를 설계하고 구현한다.
제안 방법
정의하는 것이다. GNEX 라이브러리를 안드로이드 소스 코드로 구성 시 GNEX 라이브러리 카테고리별로 별도의 클래스를 구성하고 각 클래스의 모든 필드와 메소드는 public static 속성을 갖도록 한다. 또한 클래스 간의 공유 데이터가 발생하면, 이를 처리하기 위한 공용클래스 작성하도록 설계한다.
즉, GNEX-안드로이드 번역 기법에서 커널 이식은 GNEX 콘텐츠의 제어 구조를 대응되는 안드로이드 콘텐츠의 제어 구조로 변환하는 것을 의미한다. GNEX 커널의 안드로이드 플랫폼 이식 과정을 본 논문에서는 이벤트 처리 방식 변환 방법, GNEX의 그래픽엔진 및 이미지 포맷 포팅, 터치 인터페이스 처리, 내장폰트 표현 방법으로 구분하여 설명한다. 그림 12는 GNEX 와 안드로이드 콘텐츠의 동작 방법을 비교한 것이다.
것을 의미한다. GNEX의 콘텐츠를 안드로이드 콘텐츠로 수동 변환하여 분석된 구조를 토대로 골격 프로그램을 구현하였으며, 골격 프로그램 구현에 적용된 GNEX의 이벤트 목록은 표 3과 같다.
콘텐츠 변환기를 개발하였다. 구현 방법은 서로 다른 언어 간 번역 방법론, GNEX 커널 포팅, GNEX와안드로이드 라이브러리 매핑의 3가지 영역으로 분리하여 진행되었다. 또한, 변환기는 기능별로 독립적인 모듈로 설계하였으며, 모듈간의 상호 호환성을 고려하여 개발하였다 N 현재 개발된 변환기는 커 널 포팅 및 라이브러리 매 핑의 제한성으로 인하여 특별히 모바일 게임 콘텐츠에 적합하다고 판단된다.
검증하였다. 기능별 테스트를 위해 GNEX의 주요 라이브러리를 전반적으로 테스트할 수 있도록 테스트 콘텐츠를 선별하였으며, 구현된 GNEX-안드로이드소스 레벨 콘텐츠 번역기를 통해 안드로이드 콘텐츠로자동 변환하고, 안드로이드 플랫폼에서 실행 결과를 확인하여 변환된 콘텐츠의 정상적인 동작을 검증한다.
기능별 테스트를 위해 수많은 콘텐츠를 변환하여 확인하였지만, 본 논문에서는 상용 콘텐츠와 밀접하게 관련이 있는 6개 콘텐츠의 변환 내용을 분석하였으며, 표 8 은 이와 같은 분석 결과를 요약한 것이다.
GNEX 라이브러리를 안드로이드 소스 코드로 구성 시 GNEX 라이브러리 카테고리별로 별도의 클래스를 구성하고 각 클래스의 모든 필드와 메소드는 public static 속성을 갖도록 한다. 또한 클래스 간의 공유 데이터가 발생하면, 이를 처리하기 위한 공용클래스 작성하도록 설계한다.
또한, 제안된 기법을 바탕으로 이기종간의 모바일 게임 변환을 용이하게 하기 위한 도구인 소스 레벨 변환기를 설계하고 구현한다. 원활한 연구 진행을 위해 다수의 콘텐츠를 보유하고 있는 GNEX 플랫폼용 콘텐츠를 안드로이드 플랫폼용 콘텐츠로 번역하는 것으로 연구 범위를 제한한다.
자적인 안드로이드 소스 파일 형태로 구성되기 때문에 안정성을 높일 수 있다. 또한, 최근 각광 받고 있는 터치스크린 인터페이스의 자동 생성 기법을 도입하였다. 터치스크린 인터페이스 자동 생성 기법은 터치스크린 인터페이스를 고려하지 않은 기존의 모바일 게임에 터치스크하나의 모바일 게임을 여러 플랫폼에서 서비스하는린 인터페이스의 적용을 자동화할 수 있는 방법론이다⑻.
커널 이식은 타겟 플랫폼에 적합하게 실행 모델을 변환하는 작업이며, 플랫폼의 이벤트 처리 방법과 함께 시스템 구조와. 밀접한 관련이 있는 그래픽 엔진의 이식 방법, 터치 인터페이스 처리, 내장 폰트 표현 방법 등을 제안한다. 라이브러리 매핑은 소스 언어에서 제공한 API를 대응되는 타겟 언어의 API로 변환하는 작업이며, 단순 매핑과 복합 매핑 등으로 구분하여 처리한다.
따라서 공용 데이터를 모아서 별도의 자바 파일로 관리하는 첫 번째 방법론이 프로그램의 가독성과 유지, 보수 측면에서 효과적이다. 본 논문에서는 첫 번째 방법론을 적용하여 소스 레벨 콘텐츠 변환기를 구현한다.
본 연구에서는 컴파일러 이론을 적용한 체계적인 모바일 게임 번역 기법을 제안하였으며, 이를 적용하여 GNEX 용으로 구현된 콘텐츠를 동등한 의미를 가지는 안드로이드 용 자바 소스 프로그램으로 변환하는 소스 레벨 콘텐츠 변환기를 개발하였다. 구현 방법은 서로 다른 언어 간 번역 방법론, GNEX 커널 포팅, GNEX와안드로이드 라이브러리 매핑의 3가지 영역으로 분리하여 진행되었다.
안드로이드 용 자바 프로그램을 생성하는 것이다. 본논문에서의 번역 기법은 제한된 리소스를 갖는 환경을 고려하며, C 언어와 자바 언어 번역에 대한 연구 범위를 자료형 번역' 클래스 분류 방법, 포인터 처리의 3가지로 부분으로 제한하여 해결한다. 자료형 번역은 기본형과 사용자 자료형으로 구분하여 해결하였으며, 클래스 분류 과정에서 분석 비용이 많이 소모되는 함수간의 결합도 는 연구 대상에서 제외한다.
소스 레벨 콘텐츠 번역기의 기능을 검증하기 위하여 먼저 기능별로 테스트하였고, 그 다음에 상용 콘텐츠를 변환하여 검증하였다. 기능별 테스트를 위해 GNEX의 주요 라이브러리를 전반적으로 테스트할 수 있도록 테스트 콘텐츠를 선별하였으며, 구현된 GNEX-안드로이드소스 레벨 콘텐츠 번역기를 통해 안드로이드 콘텐츠로자동 변환하고, 안드로이드 플랫폼에서 실행 결과를 확인하여 변환된 콘텐츠의 정상적인 동작을 검증한다.
소스 레벨 콘텐츠 변환기는 컴파일러 이론을 통한 체계적인 소스 레벨 언어 번역 방법론을 적용하여 모듈간의 상호 의존성을 배제시킬 수 있도록 설계하였으며, 기능별로 독립적인 모듈로 구현하였다. 그림 7은 번역기의 기능을 그림으로 도식화한 것이다.
제안된 방법론을 적용하여 GNEX(General & NEXt multimedia player)-안드로이드(Android) 변환기를 개발하였으며, 실제로 GNEX 용으로 개발된 많은 상용 게임 콘텐츠를 안드로이드 플랫폼에서 서비스할 수 있는콘텐츠로 자동 변환하였다.
주요 라이브러리에 대한 매핑을 통해 시스템 라이브러리, 파일 시스템 라이브러리, 핸드셋 콘트롤 라이브러리, 수학 라이브러리, 그래픽 라이브러리, 문자열 라이브러리, 네트워크 라이브러리 등의 매핑 관계를 구성하였다.
첫 번째 방법론은 C 언어의 소스 파일별로 자바 파일을 생성하고 전역 변수, 타입 정의에 대한 공용 자바 파일을 생성하는 것이다. 그림 10은 첫 번째 방법론에 의해 생성되는 클래스를 그림으로 표현한 것이다.
사항을 고려해야 한다. 첫 번째는 모바일 C의 자료형중 자바에서 제공하지 않는 자료형을 번역하는 것이고, 두 번째는 전역 변수 선언, 사용자 정의 자료형, 함수 정의로 구성된 모바일 C 프로그램을 클래스 기반 구조의자바 프로그램으로 번역하는 방법론을 제시하는 것이다.
대상 데이터
안드로이드 라이브러리는 총 122개의 패키지로 나누어져 있으며, 2, 254개의 클래스에서 총 17, 018개의 메소드를 제공한다.
예제 코드는 총 3개의 파일로 구성되어있다. def.
성능/효과
개발된 소스 레벨 변환기를 사용하여 기존의 상용 GNEX 콘텐츠인 아이올로스, 레이싱걸 포커, 신맞고 등의 모바일 게임을 자동적으로 변환하여 안드로이드 플랫폼이 탑재된 단말기인 HTC D宾am의 Gl, G2와 모토로라의 모토로이 등에서 정상적으로 실행됨을 확인하였다[9L
두 가지 방법론을 검토한 결과, 모바일 C 프로그램에서 전역 변수 선언과 사용자 정의 자료형의 선언 등의 데이터 부분은 다른 소스 파일에서 사용할 가능성이 높은 것으로 판단할 수 있다. 따라서 공용 데이터를 모아서 별도의 자바 파일로 관리하는 첫 번째 방법론이 프로그램의 가독성과 유지, 보수 측면에서 효과적이다.
모바일 게임과 같은 기존에 개발된 다양한 콘텐츠를 새로운 실행환경으로 쉽게 이식할 수 있다. 둘째로, 이식 과정의 자동화를 통해 콘텐츠의 다양화를 이룰 수 있으며, 이식 과정에서 발생하는 비용의 절감으로 국내 콘텐츠 산업의 경쟁력을 향상시킬 수 있다. 특히, 안드로이드는 구글에서 추진하는 모바일 플랫폼으로 본 논문에서 제안한 모바일 게임 변환기를 통해 국내 콘텐츠를 쉽게 세계 시장에 제공할 수 있다.
또한, 동일한 소스 코드를 안드로이드 플랫폼탑재 단말인 HTC Dream의 Gl, G2와 모토로라의 모 토로이(Motoroi)에 탑재하여 정상적으로 동작함을 검증 하였다
구현 방법은 서로 다른 언어 간 번역 방법론, GNEX 커널 포팅, GNEX와안드로이드 라이브러리 매핑의 3가지 영역으로 분리하여 진행되었다. 또한, 변환기는 기능별로 독립적인 모듈로 설계하였으며, 모듈간의 상호 호환성을 고려하여 개발하였다 N 현재 개발된 변환기는 커 널 포팅 및 라이브러리 매 핑의 제한성으로 인하여 특별히 모바일 게임 콘텐츠에 적합하다고 판단된다. 표 10은 본 논문에서 제안한 변환기와 기존 변환기를 비교한 것이다.
커널은 다양한 시스템 인터페이스를 제공하며 메모리 관리자 탑재로 시스템을 보호한다. 마지막으로 응용 프로그램 관리자는 다운로드 된 콘텐츠를 로딩하며, 단순하고 구조적인 설계로 최적화된 성능을 보장한다. 그림 1은 GNEX의 시스템과 위피 플랫폼 연동모델을 표현한 것이다.
특히, 안드로이드는 구글에서 추진하는 모바일 플랫폼으로 본 논문에서 제안한 모바일 게임 변환기를 통해 국내 콘텐츠를 쉽게 세계 시장에 제공할 수 있다. 마지막으로, 새로운 플랫폼이 등장하더라도 제안된 번역 기법을 적용하면 단시간 내예 적온 비용으로 다수의 콘텐츠를 서비스할 수 있게 된다.
본 논문에서 개발한 소스 레벨 콘텐츠 변환기는 언어번역만을 수행하며, 커널의 일부 내용이 포함된 골격 프로그램을 바탕으로 코드를 생성하기 때문에 번역에 소요탑재 단말인 HTC Dream의 Gl, G2와 모토로라의 모되는 시간을 절약할 수 있으며, 커널과 라이브러리는 독자적인 안드로이드 소스 파일 형태로 구성되기 때문에 안정성을 높일 수 있다. 또한, 최근 각광 받고 있는 터치스크린 인터페이스의 자동 생성 기법을 도입하였다.
본 논문에서 제안된 방법론과 변환기를 통해 다수의 콘텐츠를 가진 GNEX용 콘텐츠를 안드로이드 콘텐츠로 자동 번역함으로써, 짧은 시간에 다수의 안드로이드 콘텐츠를 확보할 수 있는 장점이 있다. 또한, GNEX-안드로이드 콘텐츠 변환기는 다음과 같은 기대효과를 창출할 수 있다.
실험 결과, 안드로이드 SDK의 모든 버전에서 정상적으로 동작하였으며, GNEX에서의 실행 모습과 비교한결과 안드로이드에서도 게임의 기능적 측면뿐만 아니라, 그래픽, 사운드 둥이 모두 동일하게 동작함을 확인할 수있었다. 또한, 동일한 소스 코드를 안드로이드 플랫폼탑재 단말인 HTC Dream의 Gl, G2와 모토로라의 모 토로이(Motoroi)에 탑재하여 정상적으로 동작함을 검증 하였다
안드로이드에서는 MMF 형식을 재생할 수 없기 때문에 각각 MIDI, WAV, MP3로음원을 변경하였다. 실험 자료를 분석한 결과 아이올로스는 콘텐츠의 용량이 감소한 것에 비해, 레이싱 걸 포커와 신맞고는 중가했다. 원인을 분석한 결과, 콘텐츠용량의 증가는 음원의 용량에 비례하는 것을 확인할 수있었다.
실험 자료를 분석한 결과 아이올로스는 콘텐츠의 용량이 감소한 것에 비해, 레이싱 걸 포커와 신맞고는 중가했다. 원인을 분석한 결과, 콘텐츠용량의 증가는 음원의 용량에 비례하는 것을 확인할 수있었다. 아이올로스는 저용량의 MIDI 음원을 사용하였으며, 레이싱 걸 포커는 비압축 음원인 WAV를 사용하여 콘텐츠 용량이 크게 증가함을 알 수 있었디.
둘째로, 이식 과정의 자동화를 통해 콘텐츠의 다양화를 이룰 수 있으며, 이식 과정에서 발생하는 비용의 절감으로 국내 콘텐츠 산업의 경쟁력을 향상시킬 수 있다. 특히, 안드로이드는 구글에서 추진하는 모바일 플랫폼으로 본 논문에서 제안한 모바일 게임 변환기를 통해 국내 콘텐츠를 쉽게 세계 시장에 제공할 수 있다. 마지막으로, 새로운 플랫폼이 등장하더라도 제안된 번역 기법을 적용하면 단시간 내예 적온 비용으로 다수의 콘텐츠를 서비스할 수 있게 된다.
후속연구
활용 폭을 확대할 수 있다. 더 나아가, 휴대폰콘텐츠 산업 활성화에 크게 기여할 수 있을 것으로 판단된다.
요구된다. 또한, 클래스 생성 시 함수 사이의 결합 도를 분석하여, 클래스를 분류할 수 있는 기법에 대한 연구도 필요하다.
또한, 제안된 기법을 바탕으로 이기종간의 모바일 게임 변환을 용이하게 하기 위한 도구인 소스 레벨 변환기를 설계하고 구현한다. 원활한 연구 진행을 위해 다수의 콘텐츠를 보유하고 있는 GNEX 플랫폼용 콘텐츠를 안드로이드 플랫폼용 콘텐츠로 번역하는 것으로 연구 범위를 제한한다. 변환기는 기능별로 독립적인 모듈로 설계하며, 모듈간의 상호 호환성을 고려한다.
향후에는 변환된 콘텐츠의 성능을 평가하고 성능을향상시키기 위한 연구가 펄요하고, 매핑 정보를 위한 매핑 테이블 생성기를 자동화 기법을 도입하여 설계함으로써 모바일 게임 변환의 전 과정을 자동화할 수 있는 연구가 요구된다. 또한, 클래스 생성 시 함수 사이의 결합 도를 분석하여, 클래스를 분류할 수 있는 기법에 대한 연구도 필요하다.
참고문헌 (9)
Korea Game Industry Agency, Ministry of Culture, Sports and Tourism, 2008 White Paper on Korean Games: Guide to Korean Game Industry and Culture, Korea Game Industry Agency, 2008.
Jinyoung Kang, Chansung Jeong, Mobile Programming using WIPI GNEX, Lift and Power Press, 2006.
Android - An Open Handset Alliance Project, Google, 2008.
Junho Jo, Chulwoon Hong, and Yangsun Lee, "Development of Automatic Tool for Converting GVM Contents to BREW Contents in Mobile Environment," Journal of KMMS, vol.9, No.2, pp.38-49, 2005.
Erik D. Demaine, "C to Java: converting pointers into references," Concurrency: Practice and Experience, vol.10, pp.851-861, 1998.
Flemming Nielson, Hanne Riis Nielson, and Chris Hankin, Principles of Program Analysis, Springer, 2005.
Mobile C Library Function Reference, SINJISOFT, 2008.
Seokhoon Ko, Yunsik Son, Jiwoo Park, and Seman Oh, "Automatic Generation Technique of Touch-Screen Interface for Mobile Game Contents," Journal of KIISE : Computing Practices and Letters, vol.15, no.9, pp.866-870, 2009.
Seman Oh, et al., Development of GNEX to Android Source Converter, Sinjisoft Corporation, Project Report, May, 2009.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.