yuchi's Development Home
글 수 201
1. 2D지원이 매우 빈약하다. Direct2D도 DirectWrite도 없다. PC에선 상관없었다. 어차피 GDI와 DirectDraw를 쓰면 그만이었으니까. 하지만 GDI도 DDraw도 없는 WinRT환경에선 D2D와 DWrite가 없으면 다이나믹하게 텍스트를 렌더링할 방법이 없다.
오픈소스 DirectXTK 라이브러리에서 스프라이트 폰트를 지원하지만 영어권 로마자 문자만 가능하다. 게임에서 사용할 한글이나 일본어를 싹 모아서 텍스쳐로 만들고 그걸 인덱싱해서 쓸 수도 있겠지만 이게 작업량이 만만치 않을뿐더러 PC와 WinRT까지 맞춰놨던 엔진 인터페이스가 와장창 깨지는 결과를 불러온다.
2. c++로 XAML UI 사용 불가. 이건 정확히는 과거에는 c#으로만 개발할 수 있었던 것을 윈폰8에 와서 XAML UI제외하고 c++을 사용하게 해준 것이다. 따라서 업그레이드 된건 맞는데 문제는 이걸로는 부족하다. 에디트박스같은거 만들려면 결국 XAML UI를 사용해야되는데 게임 코드와 DirectX관련 코드는 c++로 되어있다.
c++코드에서 c#코드를 부르는 방법도 생각해봤는데 결론적으로 윈폰에선 불가능하다.이미 해외커뮤니티에선 다 한번씩 이슈가 되었던 내용.
3. 이 모든 문제를 해결한다해도 결과적으로 PC,태블릿에서 돌아가는 WinRT기반의 엔진/게임코드와 윈폰의 WinPRT 기반의 엔진/게임 코드가 너무 많이 달라진다.
이건 매우 크다. win32에서 WinRT로 넘어올때도 장벽을 넘느라 충분히 지쳤는데 여기서 다시 코드 브랜치가 갈린다. 이래가지곤 개발하기 어렵다.
일반어플을 개발할땐 1,2번이 크게 문제가 되지 않을 수 있지만 게임 개발에선 꽤 타격이 크다. 게임에서 얻을 수 있는 (MS)의 기대수익이 작다고 판단한걸까?
요 근래 들어 게임을 개발하기 위한 환경에 너무 부실하게 대응한단 느낌이 든다. 아직도 콘솔게임이나 MMORPG에선 네이티브코드가 절대적인데 네이티브 코드 지원 부실하고. WinRT처음 봤을때도 '얘네들 게임개발은 너무 고려 안한것 같은데?' 라고 생각했다.
사실 게임 개발하는데는 XAML UI도 c++ 11도 필요없고 win32 일부 GDI기능과 DirectX면 충분한데.
그게 충족이 안되네.
메인 프로젝트를 c#으로 만들고 네이티브 모듈을 불러오는 방식은 xaml 사용 가능할 것 같아요.