구글이 자바를 선택한 순간 게임 개발쪽에서는 패널티를 안고 가는것임.
하나의 게임을 안드로이드/아이폰 양쪽 개발중인데 거의 동일한 코드와 데이터를 i5 750에서 돌리는 안드로이드 에뮬이 맥미니(cpu 펜린)에서 돌리는 아이폰에뮬 속도의 절반인 30프레임 나옴...자바쪽 코딩이 허접해서 그럴수도 있지만, 하드웨어 성능을 봤을땐 안드로이드 에뮬을 발로 만들었다고 쳐도 확실히 게임 만들기엔 암울함...-_-;;;
우선 에뮬레이터에 대해서 잘못 생각하시는 점...
안드로이드는 ARM code를 생성해서, 그걸 에뮬레이팅하는 구조입니다만, 맥상에서 구동되는 에뮬레이터는 x86 code를 생성해서 돌리는 구조로 되어 있다죠. 당연히, 에뮬상에서 속도는 iOS 에뮬레이터가 빠를수밖에 없습니다.
하지만, 속도나 여러가지 면에서 iOS가 안드로이드보다는 게임개발에 적합한 상황인건 사실입니다. C/C++ code로 만드는 iOS 앱과 JAVA기반으로 앱을 만들고 그걸 VM상에서 돌리는 안드로이드의 속도차이는 구조적인 차이가 발생할 수 밖에 없죠. NDK를 언급들 하시는데...능력되는 개발사는 원래부터 플랫폼을 가리지 않습니다. 아무거나 다 잘 만들죠. 하지만, 아이디어는 좋은데 기술력이 부족한 회사라면 어떻게 해야할까요?
보통 멀티플랫폼 지원 게임들은 OpenES 등으로 최대한 C/C++를 통해 개발한 뒤에, 각각의 플랫폼에 어느정도만 포팅하는 수준으로 작업하겠죠... 플랫폼이 다르다고 처음부터 다시 코딩하지는 않습니다... 보통은...
그래서 EA에서 유독 WP7용 게임 만드는 것에 난색을 표하는 것이고요. (WP7은 C/C++을 사용 못하므로 다시 만들어야 함)
그리고 아이폰은 시뮬레이터, 안드로이드는 에뮬레이터입니다. 안드로이드 에뮬레이터의 경우 실제 폰에서 동작하는 바이너리(C/C++ Native code의 경우)를 에뮬레이션 해 줍니다. 그만큼 느리긴 하지만, 그건 발로 만들어서도, Java 때문도 아닙니다. 게임 개발에는 적합하지 않긴 하겠네요... 속도에 민감할 경우엔 실제 폰에서 개발하는 게 나을 겁니다.
게임 좋아하시는 분들에겐 희소식 이려나요..
그치만 국내에서는 아직 이런 저런 제약이..아직 있지요?