구글 태그

2007년 1월 26일 금요일

일리히트 1.2에서 한글 입출력

이전에 일리히트 1.1에서의 한글 입출력에 대한 게시물을 쓴 적이 있는데, 그 후에 일리히트가 1.2로 업데이트가 되었습니다. 굳이 업그레이드할 필요는 없었지만, 몇가지 사소한 버그를 해결해볼까 해서 업그레이드를 했더니 한글 입출력 부분을 다시 해결해야 하더군요.

(링크) MultiByte Language support pack for Irrlicht 0.9

위의 링크를 타고 가보면 일리히트 1.2를 위해 업데이트된 TrueType 글꼴 지원 패치가 나오는데, 적용해보니 동작은 되지만 메모리 누수가 있네요. 일단 포럼에 메모리 누수가 있다는 글을 올려놨는데 해결이 될지는 잘 모르겠습니다.

지난번에는 IME를 통한 입력 부분은 테스트를 안 해봤는데, 이번에 테스트해보니 IME composition window가 안 나타나기는 하지만 그다지 예쁘게 해결된 모양새는 아니더군요. 뭔가 더 MS 스타일에 걸맞는 해결책이 있을법도 한데.. 일리히트 내부를 뒤져보는 일은 안 하려고 했건만, 이런저런 이유로 자꾸 뒤져보고 싶게 만드는군요. 공개 엔진을 쓸때는 그냥 버그가 있으면 있는채로 사용하고 결과물에 집중하자는게 제 생각이라, 일단 메모리 누수가 나고 모양이 안 예뻐도 결과물을 향해서만 달려갈까 합니다. 버그야 나중에 누가 해결하든 해결하겠죠.. (먼산)

그런고로, 일리히트에서 한글 입출력은 아직 문제가 많다는게 결론입니다. 휴..

(업데이트) 포럼에 올린 버그에 대하여 수정이 되었습니다.

2007년 1월 18일 목요일

황우석의 진실?

왜 이제서야 다시 들고 일어나는건지는 모르겠지만, 요즘 포털이나 게시판마다 황우석에 대한 글들이 집요하게 올라오더군요. 시간이 좀 지났으니까 다시 여론을 반전시킬 수 있다고 생각하는건지, 아니면 정말 너무나 억울해서 이대로 잊혀지는걸 참을 수 없는건지는 모르겠지만요.

특허가 어쩌느니 국익이 어쩌느니 하면서 이런저런 이야기들을 늘어놓던데, 그런거 다 떠나서 그 연구가 가져다 준다는 국익이라는게 실체가 없다는게 제 생각입니다. 문제가 됐던 논문의 요지는 성공률에 있으므로, NT-1이 성공이든 아니든 실제로 사용한 것으로 밝혀진 난자의 개수로 보아 이미 상업적인 가치가 없는 기술이거든요. 하나라도 성공했으니 원천기술이 있고 성공률은 높이면 된다는건 궤변입니다. 어찌됐든 성공률을 엄청나게 조작한 논문을 발표한 사실은 변함이 없죠. 저는 근본적으로 30조원이라는 수치 자체에도 의구심이 있지만, 그 수치를 그냥 받아들인다고 치더라도 이 연구는 현시점에서 상업적으로 가치가 없습니다. (예, 저는 돈 문제에 관심이 많은 지극히 현실적인 사람이라, 다른건 다 넘어가도 상업적인 가치를 속였다는 점에 대해서는 재고의 여지가 없다고 봅니다)

한번 더 연구할 기회를 주자는게 말이 안되는게, 지난번에는 초법적으로 밀어줘서 그렇게 난자를 많이 모았던 거지만, 합법적으로는 그렇게 모을래야 모을수가 없거든요. 게다가 연구에 드는 막대한 연구비는 누가 대줄지도 문제구요. 이미 한번 연구 결과를 대대적으로 조작한게 확인된 랩에 누가 그런 연구비를 대줍니까. 국가가 그 돈을 댄다는건 형평성 문제까지 갈것도 없이 상식이하죠.

개인적으로는 황우석이 이대로 묻히는게 맞다고 보지만, 지지자들의 너무나 끈질긴 모습을 보다보니 그렇게 믿고 있는 자기들이 스스로 재원을 마련해서 직접 도와주는것까지 말릴수는 없지 않을까 하고 생각하게 됐습니다. 그렇게 믿는 황우석에게 한번 더 기회를 마련해주고 싶다면 스스로 재단이라도 만들어서 모금운동이라도 벌이는게 맞지 않을런지요. 지지자들이 기부를 하던가 아니면 수익이 나면 보전하는 식으로 주식을 판다던가 하는거죠. 정말 30조원의 가치가 있다면, 투자액에 따라 수익을 배분하는 식으로 하면 되지 않을까요? 물론 저야 믿지 않으니 투자할 생각이 없지만요. :)

2007년 1월 5일 금요일

게임 프로그래밍이 어려운 이유..

프로그래머의 입장에서 게임 개발이 어려운 이유는 게임이 갖는 다음 2가지 요소가 서로 상충하기 때문입니다.

1. 게임은 소프트웨어 제품(software product)이다.
2. 게임은 엔터테인먼트 제품(entertainment product)이다.

이 2가지 요소는 서로에게 모순을 가져다 줍니다.

컴퓨터 개론 책을 펼쳐보면 입력된 데이터를 처리하여 어떤 결과물로 출력하는 것을 프로그램이라고 정의합니다. 게임이든 개인사용자용 응용프로그램이든 은행전산망이든 입력이 있으면 이를 처리하는 논리(프로그램)를 거쳐 어떤 형태로든 출력이 이루어지게 됩니다. 이것은 모든 소프트웨어 제품이 가진 특징입니다. 특정한 입력에 대하여 출력이 있는거죠. 은행전산망 같은 경우에는 워낙 방대한 입력이 일어나고 다양한 출력을 필요로 하다보니 개발이 복잡해지죠. 게임은 앞에서 예로든 은행전산망만큼 복잡도가 높지는 않지만 입력과 출력이 계속 변한다는게 문제가 됩니다. 왜냐하면 엔터테인먼트 제품이기 때문이죠. 애초에 기획한 게임이 얼마나 재미있을지 정확히 가늠할수가 없기 때문에 만들면서 테스트가 이루어지고, 또 중간에 기획이 변경됩니다. 그러면 프로그램이 처리해야 할 입력과 출력도 같이 변경됩니다.

일부 게임프로그래머들이 자신들이 하는 작업이 SI에서 하는 작업보다 훨씬 어려운 작업이라고 생각하는걸 보아왔는데, 제 생각은 좀 다릅니다. 다른 특징을 가졌을뿐 뭐가 더 어렵고 뭐가 더 쉽다고 할 수 있는건 아닌것 같습니다. SI쪽에서는 복잡도가 높은 작업을 하고, 게임쪽에서는 비정형적인 작업을 하기 때문에 작업의 속성 자체가 다릅니다. 그러므로 SI에서는 man/month라는 단위로 업무의 양을 측정할 수 있지만 게임에서는 이게 잘 안됩니다. 일반적인 소프트웨어 공학 이론이나 관리 방법론이 게임쪽에서 잘 안 먹히는 것도 이런 이유에서죠. 입출력이 계속 바뀌는 비정형적인 프로그램을 만드는데 정형적인 프로그램을 잘 만드는 방법을 적용한들 그게 먹히겠습니까.