멀티프로그래밍 위키로 바로가기 → http://www.devnote.net/wiki
드디어 그동안 작업하던 TSF(Text Service Framework) 지원이 거의 끝나 곧 게임에 업데이트 될 예정입니다. 비스타(Vista)에서는 기존 IME가 사라지고 TSF가 기본으로 작동하는 바람에 시작한 일이지만, TSF라면 제가 오래전부터 관여했던 것이라 제대로 구현하려고 노력했습니다.

만약 실제 사용되는 모든 윈도우즈 OS가 TSF기반의 IME 만을 지원한다면 오히려 문제는 간단해 질 수 있습니다. 왜냐면, 표준을 따르지 않는 중국어 IME들을 지원하기 위해 많은 해킹 코드가 사용되고 있기 때문입니다. 하지만, 불행히도 이제 비스타에서만 기본으로 TSF가 설정되어 있기 때문에, 어플리케이션을 개발하는 입장에서는, 오히려 실행 시간에 윈도우즈 버전을 확인하여 IME 혹은 TSF 중 하나를 선택하여 지원해야 하는 부담이 생겼습니다.

그러니까, 게임과 같이 DirectX를 사용하는 어플리케이션은 IME, TSF 둘 다 지원하는 코드를 작성하고 테스트해야만 한다는 것입니다. 저 같은 경우는 매우 오래전부터 이 일에 직접 관여해왔기 때문에 그나마 쉽게 구현하였으나, 처음 IME와 TSF를 접하는 개발자라면 이해하는 데에만 상당한 시간이 걸릴것으로 예상됩니다.

길드워에 TSF 지원기능을 구현하던 중 DirectX 8월 버전에 TSF 지원 기능이 추가된 CustomUI 예제가 발표되었습니다. 그러나, 이것은 TSF를 완전히 지원하는 것은 아니고 기존의 IME지원 코드 중에 비스타에서 동작하지 않는 부분만을 TSF를 직접 사용하여 해결하는 것 입니다. 게다가 그렇지 않아도 지저분한 기존의 코드에 TSF 코드까지 더해져 DirectX의 CustomUI IME 샘플 코드는 정말로 보기 싫을 정도로 복잡해져 있습니다. 다만, 이 코드를 작성한 사람을 만난 적이 있기 때문에, 더 이상의 코멘트는  하지 않겠다.^^

그런데, 여기서 길드워가 TSF를 완전히 지원 (fully enable) 했다는 것이 무슨 의미인지, 그리고 사용자들에게 어떠한 이득이 있는지 간단히 설명해 보겠습니다. (먼저 말하지만 게임에서는 그다지 유용하지 않은 것 같습니다. 더군다나 한자 변환을 많이 사용하지 않는 한국어 사용자들에게는 TSF가 당장 어떠한 편리함도 제공해주지는 않을 것 같습니다.)

우선, 비스타의 TSF에는 게임과 같이 전체화면을 사용하는 DirectX프로그램을 위해 UI Less mode가 추가 되었습니다. 그러나 UI Less mode 인터페이스로는 원래 추천 리스트 (candidate list) UI에 표시되는 모든 정보를 얻을 수 없는 단점이 있습니다.

길드워는 창모드 (windowed mode)를 지원하고 많은 플레이들이 이를 애용한다는 점을 고려해서, 창모드에서는 원래 위도우즈의 Candidate UI를 보여주고, 전체 화면모드에서만 UI Less mode를 사용한 커스텀 UI를 사용하였습니다.

아래 그림은 창모드에서 한자변환을 하는 예입니다. 보시다시피 원래 TSF Candidate UI를 보여주며 한자의 음과 훈이 표시되고 있습니다.



아래 그림은 전체화면 모드에서 한자변환을 하는 예입니다. 커스텀 UI를 사용합니다. 그리고 TSF를 지원함으로써 단어 단위의 한자변환이 가능함을 알 수 있습니다. (이러한 단어단위 한자 변환은 DirectX의 CustomUI 샘플코드로는 불가능한 것입니다.)



아래 그림은 일본어 입력기를 창모드에서 사용하는 예입니다. 일본어 입력기의 Candidate UI는 추천단어에 관한 보다 자세한 정보를 따로 보여 주고 있습니다.




아래그림은 또 다른 한글의 단어단위 변환예입니다.



TSF는 키보드 입력 뿐만아니라 다양한 종류의 입력 (음성인식, 필기인식 등)을 지원합니다. 또 완성된 글자의 재변환 (reconversion) 혹은 수정 (correction) 기능을 지원하여 추천 단어를 잘못 선택한 경우 아래와 같이 한자키나 수정 버튼을 이용하면 원래 변환한 단어를 자동선택하며 최초 입력했던 한글도 추천단어로 보여줍니다.

또 다른 예를 들어보면, 음성인식이나 필기 인식을 사용하여 글자를 입력한 경우, 재변환 기능을 이용하면, 원래 입력한 음성을 다시 들어 보거나 필기 인식한 글자의 모양을 볼 수도 있습니다.




한국어 사용자들은 게임상에서 실제 이용할지는 의문이나 필기 인식을 통해 한자를 입력하는 화면입니다. (일본인이나 중국사람들은 가끔 이 기능을 이용한다고 합니다.)




어쨋거나, 길드워는 비스타에서 TSF를 제대로 지원하게 되어 한자변환 추천리스트를 표시하는데 아무런 문제가 없어졌습니다.


크리에이티브 커먼즈 라이센스
Creative Commons License

모르고 있었는데 현재 2007 게임 개발자 컨퍼런스(GDC)가 진행 중이더군요. 아래 인텔사의 발표자료가 올라와 있습니다. 멀티코어 CPU에서 게임 클라이언트의 성능향상과 노트북에서의 게임 플레이에 대한 내용이 주를 이루고 있습니다.

http://softwarecommunity.intel.com/articles/eng/1127.htm

그리고 우연히 아래 관련기사를 보니 또 Vista에 관한 안좋은 내용이 나와 있군요. XP보다 전력소모가 오히려 많다는 내용입니다. 안정된 Vista용 그래픽 드라이버가 나오면 좀 나아지길 기대합니다.

http://www.notebookreview.com/default.asp?newsID=3556

An amusing aside to the presentation was Windows Vista's presence. In their three game tests checking CPU load and battery life, one of the games refused to run in Vista. More than that, Vista's power draw in games was consistently higher than XP's. Where XP gave a lot of latitude for improving battery life, Vista gave substantially less.
크리에이티브 커먼즈 라이센스
Creative Commons License