게임클라이언트 UI

얼마전에 QT 라이브러리가 새로 릴리즈 됐다는 이야기를 듣고 생각.
음… 윈도우 게임을 만들때 API나 MFC로 UI를 만드는 경우가 별로 없는데, DirectX가 내부에 윈도우 생성하기도 빡시고, 색상 깨지는 문제도 있고, 이벤트 처리하기도 이상하고, DirectX에서 서피스 생성하면 막 깨지기고 하고…

내 경험으로는 그랬던것 같다.
대학때 어떻게어떻게 돌아가게는 했었는데, 상용게임에 쓰기에는 조잡하달까
뭐 해결 방법이 있다면 MFC나 C#으로 게임내 UI를 만드는것도 방법일것 같지만 아무래도 내부 소스를 알수가 없어서 거시기.

그런데 QT라이브러리 같은 경우 내부적으로 어떻게 구현됐는지 모르겠지만, 윈도창 내부의 컨트롤 들이 윈도우객체가 아니라면 DirectX내부에서도 컨트롤들 출력하고 하는걸 무리없이 만들수 있지 않을까 하는 생각이 들었다. (그래봐야 DirectX에서 서피스는 생성해야 하는구나)

뭐 그러다가 오늘 회사 게시판에서 IE8 세미나 어쩌구 하는 게시물을 보다가
음… 웹브라우져 렌더링 엔진을 게임에서 사용할수 있다면 어떨까?
하는 생각이 들었다.

UI 폼을 구성하는것은 html로, 컨트롤 및 이벤트는 javascript로 처리하면… 꽤나 범용적인 UI엔진이 될듯?
요즘 javascript 떡칠된 사이트보면 굉장히 동적이니, 동적인 UI도 문제 없을것 같고…
성능이 문제가 되려나. 요즘 웹브라우져 엔진이라는게 꽤나 복잡할테니.

흠…

변수모니터링툴

디버깅중에 단순히 int형이나 double 등의 값을 체크하는 정도라면 비주얼스튜디오 디버거에서 충분히 볼수 있지만 문제는 자체적인 클래스나 데이타스트럭쳐의 값을 확인할때는 좀 어렵다.(STL 컨테이너의 값을 확인하는 경우도 마찬가지고)

나같은 경우에는 Matrix 타입의 데이타형을 많이 사용하게 되는데 현재는 예전에 만들어 두었는 콘솔디버거에 매트릭스 값을 출력하는 루틴을 만들어서 디버거의 커맨드 윈도우 에서 호출하는 방법으로 디버깅중 원하는 매트릭스 데이타를 확인해 볼수 있게 해두었다.

_Test_Print( ) 라는 함수가 매트릭스를 콘솔디버그에 출력하는 함수

쓰다가 보니 만드는 노력에 비해서 정말 디버깅 효율을 아주아주 높아진것이 느껴져서 참 좋다.
지금 생각으로는 변수모니터링 이라는 자식윈도우를 따로 띄우고 거기다가 저런것도 출력할수 있게 하고 그리드 컨트롤을 붙여서 매트릭스의 경우에는 아예 그리드 컨트롤에서 값을 볼수 있게 하고 또 컬럼을 설정해서(아니면 인덱스*데이타 한 컬럼) 간단한 XY차트를 그리는 정도만 되면 디버깅에 더욱 날개를 달아주지 않을까 하는 생각이 든다.

1. 디버깅중에 커맨드 윈도우에서 사용가능한 함수스타일로 만든다.
2. 함수는 오버로딩을 해서 각각의 데이타타입 별로 구현한다.
3. 함수를 사용하면 모달리스 대화상자가 뜨고 타입에 맞는 방식으로 출력해 준다.
4. 함수 한번에 대화상자 하나를 띄우지만 전부다 없앤다거나 하는 기능도 추가

이미지 CRC 검색

이미지를 CRC값으로 데이타 베이스화 해놓고 검색이 가능하다면?

음… 특정 그림이 어떤 사이트 에서 많이 활용되는가, 해당 그림의 출처 등등을 알수 있지않을까