« Previous : 1 : ... 181 : 182 : 183 : 184 : 185 : 186 : 187 : 188 : 189 : ... 215 : Next »

가정의 영성 등급

A.
부모가 모두 한 교회를 안정되게 오래 다닌 타입. 아버지가 아예 목사이거나 어느 직분 하나는 맡고 있다. (단, 교회 일에 몰두하느라 가정 내팽개치는 타입이 절대 아님) 부모가 가정 예배를 꼬박꼬박 챙기고 자녀에게 기도하고 성경 읽는 모습을 늘 보여 준다. 요컨대 가정 전체가 한 교회에 안정되게 출석하고 있고, 가장이 식사 기도 같은 사소한 것까지 포함해서 가정의 영적 건강을 잘 책임지는 중이라면, 그 가정의 영성 등급은 A이다. 집에서도 출석 교회에서와 동일한 분위기로 가족과 함께 거리낌없이 찬송, 기도, 성경 읽기가 가능하고 부모에게서 신앙 상담을 받을 수 있다! 당연한 말이지만 우리나라에 A등급 가정은 정말 드물다.

그런데 이런 가정에서는 부모보다도, 저런 걸 당연하게 보면서 커 온 자녀들이 이 신앙이 값지고 귀한 줄 모르고 오히려 별 관심이 없는 경우가 있다. 혹은 교회와 가정에서 부모가 보이는 모순-_-된 모습이라든가 교회 사람들의 위선 때문에 상처를 받고 자녀가 믿음을 잃기도 한다. A라는 환경 여건이 무조건적으로 자녀에게 좋게 작용만 하는 건 아니므로 주의해야 한다.

B.
개인적인 교회 생활에는 지장이 없지만
- 가족 중 일부가 불신자이거나 혹은 교회 출석을 중단할 정도로 신앙이 식음. 어쨌든 가정에서 뭔가 영적인 결정을 내리려 할 때 딴지를 걸 사람이 가족 중에 존재
- 교리 차이 내지 어른들의 사정으로 인해 부모가 서로 다른 교회에 다님
- 혹은, 부모가 한 교회에는 다니고 있지만 구원 받았는지도 모르는 단순 church goer이고, 평상시의 언행도 불신자와 별 차이가 없기 때문에 자녀에게 영적 영향력을 행사하지 못함

이런 정도라면 B등급이다. 이렇게만 돼도 부모의 믿음이 자녀에게로 그대로 전수되기는 굉장히 어려워진다. 자녀가 알아서 자기 신앙에 대해서 공부하고 각성하지 않는다면 말이다.

C.
가족 중에 구원받은 사람이 자녀 한둘밖에 없는 한편으로 나머지 가족 구성원은,
- 그런 것에 별 관심이 없는 방관자이거나,
- "그래, 심성 수련을 위해 종교 하나 갖는 거 나쁘지는 않지. 다만, 너무 중독되고 빠지지는 마라."
- "예수쟁이 돼서 뭐 하냐?" (살짝 시니컬)
중의 한 반응이지만...
최소한 적극적으로 교회 가는 걸 막고 박해하지는 않는 경우이다.

아래의 D보다는 여건이 낫지만, 그래도 교회만 빠져나오면 맨날 집에서 불신자와(영적으로 아무 도움을 주지 않는) 부대껴야 하기 때문에 영적으로 지치기 쉽다. 가족 구원을 위한 기도가 절실해진다.

D.
가족 중에 구원받은 사람이 자녀 하나밖에 없고 그 자녀가 그것 때문에 가족으로부터 적극적으로 조롱과 박해를 받으며, 교회 출석 중단을 요구받고 있는 상태. 부모 몰래 교회를 가거나, 교회에서의 내 행적을 부모에게 떳떳하게 말도 꺼낼 수 없다. 이런 D급 가정에 소속된 구원받은 사람은 가정 여건 때문에 안정된 교회 출석이나 장시간 교제, 교회 직분 수행이 곤란하다.

나머지 가족은 무신론자 기독 안티일 수도 있고, 천주교나 불교나 심지어 이슬람 같은 타 종교 골수일 수도 있으며 심지어 KJV를 싫어하는 기성교회 소속일 수도 있다. 어쩌면 그게 차라리 깔끔한 무교보다 더 무서운 경우도 있다.
A가 드문 것만큼이나 D만치 독한 가정도 흔하지는 않다. 그런데 이런 D급 가정에서 정말 독실하게 신앙 생활을 처절하게 열심히 하는 형제 자매도 있다. D급 가정을 혼자 힘으로 선한 간증을 남겨서 C를 거쳐 B나 A로 바꿔 놓은 사람이 있다면, 그건 영적 전투에서 가히 최고의 승리를 거둔 사례라 하겠다.

참고로, 본인은 B급 가정 출신이다.

Posted by 사무엘

2010/08/28 13:44 2010/08/28 13:44
,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/359

- 정치적으로 진보 성향이 존나아주 짙다: 이런 케이스는 워낙 많으니..;; (김 대중· 노 무현 영정 사진, 촛불소녀, MB 퇴진 xx일 등등..)
- 위와는 반대로, 보수 성향이 짙다: 진보 성향보다는 적지만, 본인을 포함해 몇 명 있긴 하다.
- 리눅스, 웹 표준 쪽에 관심 많고 ActiveX 개혐오: 글자판도 모자라서 OS까지 마이너한 놈으로. 하지만 본인은 이런 쪽은 크게 관심은 없음.
- 아이폰 매니아: 상위 몇 %에 드는 얼리 어답터 기질. 그런데 이런 사람이 꼭 진보 성향인 경우도 많다.
- 드보락 또는 콜맥 같은 영문 자판을 같이 쓴다: 이것도 한두 명이 아님. 본인은 세벌식과 비교 목적으로 드보락 자판을 익히기는 했지만, 코딩은 여전히 쿼티로 한다. 그래도 드보락은 영어 관점에서 정말 잘 만든 글자판 맞다.
- 혹은 에스페란토를 쓰기도 한다: 마이너한 언어. 몇 명 이름을 아는 분이 있음

- 킹 제임스 성경: 헐..;; 세벌식 만만찮은 듣보잡(국내에서) 마이너 성경
- 철도 덕후: 엥?? 그런데 세벌식+철도+리눅스 이런 친구도 있다! ㄲㄲㄲㄲ
- 일본 애니 덕후: 서얼마....;;;;

결론:
세벌식이 국가가 인정하는 표준이 되고 누구나 자연스럽게 두벌이나 세벌을 선택해서 쓸 수 있는 여건이 마련된다면, 세벌식 사용자의 평균적인 오덕· 괴짜 기질 수치도 좀 내려갈 것이다. ㅋㅋㅋㅋㅋㅋ

Posted by 사무엘

2010/08/27 08:32 2010/08/27 08:32
,
Response
No Trackback , 19 Comments
RSS :
http://moogi.new21.org/tc/rss/response/358

순수한 소리를 찾아서

오늘날 개인용 컴퓨터를 포함해 소리를 낼 수 있는 소형 개인용 전자 기기에서 두루 통용되는 사운드 단자는 ‘TRS 커넥터’라고 불린다. 제정된 지 꽤 오래 된(누가 처음 고안했는지?) 아날로그 오디오 커넥터 규격이지만, 지금까지도 아주 대중적으로 쓰이고 있다.
TRS는 tip, ring, sleeve의 이니셜을 딴 것인데, 마치 끝이 펜촉처럼 생긴 독특한 커넥터의 생김새를 표현한 단어이다.

사용자 삽입 이미지

사실 TRS 커넥터도 크기별로 몇 가지 종류가 존재하며, 우리가 사용하는 건 3.5mm (1/8인치) 규격이다. 하지만 TRS 커넥터가 최초로 개발된 건 1/4인치짜리 크기였다고 한다. 본인이 어렸을 때 집에 있던 전축의 헤드폰 단자도 1/4인치 TRS 커넥터였던 것 같다.

PC99 규격에서는 컴퓨터에 꽂는 사운드의 단자의 용도가 색깔로 바로 분간이 되게 정해져서 한결 편리하다. 과거 카세트 테입 플레이어에서도 녹음 버튼은 언제나 빨간색이었기 때문에 빨간 단자가 마이크 입력 단자이다. 그 반면 이어폰을 꽂고 듣는 단자는 초록색이다.

입력 단자와 출력 단자를 양방향 잭으로 연결하면 한쪽에서 나는 소리를 컴퓨터로 녹음할 수 있고, 심지어 컴퓨터 자신에게서 나는 소리를 그대로 녹음할 수도 있다. 하지만 TRS 커넥터는 아날로그 방식인 관계로, 출력되는 파형을 순수한 원형 그대로 추출할 수는 없으며 컴퓨터 내부의 잡음이 섞이는 것까지도 감안해야 한다.
컴퓨터 자신에게서 나는 소리를 녹음하는 방법이 윈도우 XP 시절에는 무척 간단했는데, 비스타 이후부터는 그 분야의 드라이버 계층이 크게 바뀌면서 절차가 다소 번거로워진 걸로 기억한다.

음반 매체는 카세트 테입, LP, CD 등 다양하게 바뀌어 왔지만 그 소리를 전달하는 단자에 대해서는 지금까지 어떤 발전이 있어 왔으며 TRS보다 더 나은 표준이 존재하는지 궁금하다. 모니터가 영상 신호를 받는 방식도 과거의 아날로그 D-sub 방식에서 디지털인 DVI 방식으로 바뀌고 있는 것처럼 말이다.

소리 쪽도 정말 극악에 가까운 결벽증 매니아인 사람이 있다. 고음역과 저음역까지 귀가 굉장히 예민하기 때문에, 겨우 128Kbps짜리 mp3는 너무 저질이어서 못 듣는다. 대역폭이 최소한 300Kbps가 넘어야 하거나, 아예 무손실 압축으로 듣는다.

좋은 소리가 나려면 좋은 음원과 좋은 단자, 그리고 마지막으로 좋은 출력기가 한데 어우러져야 할 것이다. 스피커/이어폰은 흔한 필수품인 만큼 조악한 싸구려는 정말 싸지만, 품질 좋은 명품은 무슨 악기 이상으로 가히 살인적으로 ‘억 소리’ 나게 비싸다. 이런 걸 기를 쓰고 구하려고 하는 매니아가 있다. 영화 <파괴된 사나이>에 나오는 싸이코패스 악당처럼 말이다.

그래서 궁극적으로는 품질이 열악한 테입도 거부하고, 비록 깨끗하지만 양자화와 디지털화를 거쳐 버린 CD도 거부하며, 진짜 아날로그 소리가 원형 그대로 담겨 있는 레코드나 축음기를 구하려 애쓰는 사람도 있다. 귀가 얼마나 예민해야 그런 소리의 차이까지 분별할지는 모르겠지만, 그 정도면 초음파까지 들리고 들어 봤자 인생만 피곤해지는 소리까지 다 들려서 고민인 경지가 아닐까 생각된다. 소리의 세계는 참으로 심오하다.

Posted by 사무엘

2010/08/25 09:13 2010/08/25 09:13
, , ,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/356

삭제되었수다!
Old timer PC 유저라면 지금도 기억에 남아 있을 만한 전설의 게임이다.
이 게임의 내력에 대해서 전부 떠벌리자면 좀 복잡하다.
그러나, “모든 일을 맨 처음부터 완전히 이해한 본인이, 이 블로그의 구독자인 여러분에게 그 내막에 대해 차례대로 글로 써서 알리는 것이 좋을 것 같아서”(눅 1:3) 몇 자 좀 끄적이도록 하겠다.

사용자 삽입 이미지

이 게임은 본디 1994~95년경, 당시 카이스트 학생이던 김 동건, 이 은석 님의 작품이다. 물론 이분들은, 지금으로부터 10년 가까이 전에 이미 넥슨에 입사하여 지금은 데브캣 스튜디오를 지휘하는 베테랑급 게임 개발자가 되어 있다. 모교로부터 초청을 받아 강연도 한 유명인사이다.
매우 황공스럽게도, 본인 역시 대학 시절에 이분과 메신저로 얘기를 나눈 적이 있고 이분들 초청으로 넥슨에 견학 간 적도 있다! 그게 2002년 가을의 일이다.

이 게임의 컨셉의 제일 원조는 1980년대에 일본 KONAMI에서 개발한 <그라디우스>라는 횡형 스크롤 슈팅 게임이다. 인삼을 여러 개 먹은 후 다양한 파워업을 고르는 시스템의 원조가 저것이라고 한다.
그런데 KONAMI는 훗날 그 게임의 시스템을 익살스럽게 바꿔 놓은 <패러디우스>(패러디-_-)를 내놓았고, 카이스트의 저 두 분은 그걸 또 패러디해서 ‘패러디우스’에서 착안, <85되었수다>라는 패러디 슈팅 게임을 만들었다. ‘패러디’가 ‘파로되’로 바뀌다니, 환상적인 작명 센스. ㅠ.ㅠ

게임에 등장하는 두 주인공 중 하나인 ‘할 박사’가 설정상 85세 노인이다. 그래서 85되었수다. ㄲㄲㄲ 그리고 또 하나는 ‘산소’라는 할 박사의 손녀딸이며, 18세 미소녀이다. 원래 게임은 어땠는지 모르겠지만, 저 게임에서는 세계 정복을 꿈꾸는 살모사라는 미친 과학자(mad scientist) 악당이 반란을 일으키고 자기 직장이던 카이스트부터 쑥대밭을 만들어 놓는다. 그래서 게임 주인공이 나서서 학교를 구하고 세계-_-를 구하는 것이 이 게임의 목표이다.

사용자 삽입 이미지

게임 개발은 순조롭게 진행되었고, 아마 스테이지 1이 끝나고 2를 만들던 중이었는데...
<85되었수다!>의 개발팀에게 악재가 닥친다. 사고로 컴퓨터를 망가뜨리는 바람에, 개발 중이던 소스를 날렸다고 한다. 흠좀무;; 결국 <85되었수다!>는 미완성인 채로 당시 주요 PC 통신에 공개되었고 개발은 중단되고 말았다. 스테이지 2 중반부터 더 진행이 안 되는 작품임에도 불구하고 PC 통신 자료실이나 심지어 게임 불법복제 CD 등으로도 퍼져 나갔다.

본인도 중학생이던 그 시절, 이 게임을 해 봤다. 오프닝 음악과 게임 줄거리 정도는 지금도 생생히 기억한다. 살모사 박사가 수감됐다가 탈옥한 것, 출동하는 주인공을 향해 “그나저나 할 박사, 올해 연세가 몇이지요?” 질문이 뜨고, 이때 “85되었수다” 로고가 딱 뜨는 것까지도 기억한다. 게임이 끝까지 제대로 완성됐다면 정말, “이거 내가 혼자(많아야 둘이서) 만든 게임이에요!” 한 마디면 어느 게임 회사에서도 스카웃 제의 받고 바로 입사할 작품이 되지 않았을까 싶다. 뭐 어차피 개발자 분들은 자기 적성에 맞는 좋은 직장에 이미 잘 들어갔지만 말이다.

그렇게 <85되었수다!>는 마무리가 되었는데,
그로부터 몇 년 정도 시간이 지난 1997년, PC 통신 하이텔의 게임 제작 동호회(go GMA)에서 제 1회 아마추어 게임 공모전을 개최했다.
그런데 여기에는, 출품한 작품의 총용량이 압축했을 때 100KB 이내에 들어야 한다는 조건이 붙었다. 지금 생각하면 정말 상상도 할 수 없는 작은 공간이지만, 그때는 그것 갖고도 별 걸 다 만들었다.

이때 <85되었수다!>의 제작진이 옛날 레퍼토리를 리메이크했다. 소스를 날렸다고 했으니, 기존 게임의 리소스만 가져다가 코딩을 다시 한 모양이다. 그런데, 용량 100KB를 맞추느라 게임 데이터를 곳곳에서 가위질을 해야 했다. 그래서 게임의 제목이 또 패러디되어 바뀌었다. <삭제되었수다!>라고 말이다. ㅋㅋㅋㅋㅋ

그래서 옛날 게임 시스템과 리소스를 기반으로, ‘패러디에 패러디’를 거듭한 끝에 <삭제되었수다!>라고 나름 스테이지도 5개까지 있는 완성된 게임이 만들어졌다.
그 시절, 본인은 비록 완전 허접 눈팅 유령 회원이긴 했지만, 나름 하이텔 게제동의 회원이었고 그 공모전이 진행되던 과정을 모두 지켜볼 수 있었다.

이 게임은 의심의 여지 없이 다른 출품작들을 제치고 대상을 받았다.
기술적인 면이나 그래픽, 게임성이나 모든 것이 아마추어를 넘는 프로급으로 손색이 없었다.
공모전은 이듬해에 2회까지 한 후 그 후로 더 진행되었다는 소식을 못 들었다. 그 무렵부터 PC 통신 자체가 인터넷에 밀려 슬슬 빛을 잃기 시작하기도 했고 말이다. 그랬으니 1회의 당당한 대상 수상작인 <삭제되었수다!>가 더욱 부각되어 보일 수밖에 없었다.

다음으로, 조금 기술적으로 디테일한 부분을 얘기하고자 한다.
이 게임은 볼랜드 C++ 3.x로 빌드된 16비트 도스용 프로그램이다. 그런데 메모리, 그래픽, 사운드 등 모든 하드웨어 제어 루틴을 어셈블리로 다 자체 제작했다. 대체 하드웨어를 어떻게 제어하기에, 윈도우 95의 도스창에서는 실행할 수 없고 무조건 순수 도스로 빠져나가야 했다.

더욱 놀라운 것은 게임이 실행되는 모드이다. 본인은 1990년대의 도스용 게임들이 다 채택하던 VGA mode 13h 320*200 256색이라고 당연히 생각했는데, 그게 아니었다. 더 작은 256*200이었다. 가로· 세로의 aspect ratio가 좀더 균형 잡힌 모드를 의도적으로 선택한 건지는 모르겠는데, 문제는 저런 해상도는 쉽게 진입할 수 있는 모드가 아니라는 것. VGA mode X라고 해서 90년대 중반에 ID 소프트웨어의 마이클 압래쉬 같은 프로그래머나 특수한 용도로 사용했던 기법이 동원된 것이다.
그런 게임을 만든 사람이 나온 대학을 약 3년 남짓 뒤에 본인도 가게 되었으니 이 또한 감개무량했다.

참고로, 그 1997년도 대회에서 <삭제되었수다!>에 이어 금상을 받은 작품은 안 영기(SMgal) 님의 <대변 파이터>이다. 이것도 각종 PC 통신 자료실에 많이 퍼졌다. 이분은 파스칼/델파이 프로그래머로 날리던 분이어서 그 게임 역시 C/C++이 아닌 파스칼로 개발되었다. 하드웨어 제어라든가 게임 개발 쪽의 달인인 것도 매한가지인지라 이분도 지금까지 게임 개발 업종에 종사하고 있다. 나이나 경력이나 인상이 여러 모로 박 정만(옛날에 하이텔 세벌식 사랑 모임 동호회 대표) 님과 비슷한 분 같다.

<대변 파이터>도 주인공이 비행기가 아니라 사람인 것만 빼면, 일종의 횡형 스크롤 슈팅 게임.
그러고 보니 1990년대 전설의 명작 국산 게임인 <그 날이 오면 3>도 횡형 스크롤 슈팅이고, <삭제되었수다!>나 <대변 파이터> 같은 명작 게임이 다 이 장르라는 게 무척 흥미롭다.

그러나 본인은 총알 피하는 건 영 소질이 없다. 특히 체력(hit point)이라는 게 없이 부딪치기만 해도 즉사하는 게임은 겁이 나서 원...
슈팅이라는 장르는 내 타입이 아닌 것 같다. 지인 중에는 반대로 총알 피하는 게임만 즐기는 친구도 있지만... ㅋㅋ <그날이 오면>, <-되었수다!> 모두 너무 어려워서 혼자서는 스테이지 2도 못 깬다.

본인은 게임은 하지도 않고 개발에도 그렇게 별 관심이 없다. 그냥 타자 게임 정도가 고작..;; 하지만 거기에 들어가는 배경지식과 스킬은 기회가 되면 익히고 싶다. 지금은 이제 운영체제가 기본으로 제공하는 카드놀이, 지뢰찾기 같은 게임마저도 3D로 만들고, 아예 GDI조차 Direct3D 계층 위에서 돌아가는 세상이 됐으니 말이다.

Posted by 사무엘

2010/08/24 08:44 2010/08/24 08:44
, , , , ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/355

서울 지하철 UI 변화 추이 복습

2010년 여름 현재,

- 2009년 말~2010년 초: SMRT와 서울 메트로 공히, 서울 지하철 모든 역들의 스크린도어 설치를 완료함
- 2010년 봄~여름: SMRT가 갑자기 승강장의 열차 진입 안내 방송을 전격 교체. 때르르릉~ 땡땡땡 소리까지 없앤 것이 놀랍다. "항상 5678 서울 도시 철도를 이용해 주셔서 고맙습니다"
- 2010년 봄~여름: 서울 메트로가 천연색 전광판 안내 시스템을 다시 교체하기 시작함. 문자의 글씨체가 바뀌고 특히 다음에 오는 열차가 지금 몇 단계의 전역에 있는지까지 숫자로 표시해 준다.

- 2010년 여름: 코레일이 열차 안내 방송을 서울 메트로 스타일로 전격 교체. 환승역 안내 음향까지 '얼씨구나'로 변경했으며, 시종착 때 클래식 음악이 아닌 회사 CM송 교체 트렌드에 동참을 시작했다. "달려라 코레일, 에코(eco-)레일 푸른 내일" 나름 롸임 맞춘 건가? ㅋㅋㅋㅋㅋ
- 2010년 여름~: 스크린도어의 불모지이던 코레일도 각종 역들에 스크린도어 설치 공사를 동시다발적으로 시작.

- 앞으로.. SMRT도 승강장과 열차 내부의 전광판에, 청색을 표현할 수 없는 LED가 아닌 올컬러 스크린 기반 안내 시스템이 도입될 예정이다. 8호선에서 이 서비스가 시범 도입된 차를 가끔 탄 적이 있다.
또한 2호선의 트레이드마크이던 아날로그 시계+플랩식 전광판이 역사 속으로 사라진다. 일반 철도역에서 플랩식 전광판의 최후 보루이던 청량리 역의 전광판도 역사가 리모델링되면서 이미 사라진 지 오래이다.

코레일, 서울 메트로, 도철(SMRT) 중에서
- 코레일만이 아직 스크린도어 설치가 가장 미비하다. 사실 스크린도어 시범 설치는 1호선 신길 역에다 국내에서 제일 먼저 했으면서 말이다. (무려 2003년에!)
- 서울 메트로만이 The doors on your left/right 대신, You may exit ... 를 쓰고 있다.
- SMRT만이 '얼씨구나'가 아닌 클래식을 환승역 도착 음향으로 쓰고 있다. 환승역 도착 음향은 서울 2기 지하철에서 녹음된 성우 목소리가 방송으로 등장한 이래로 지금까지 단 한 번도 안 바뀐 걸로 알고 있다.

서울 지하철 상식 페이지를 좀 업데이트해 줘야 하는데.. 할 엄두가 안 나서 일단 블로그에다가 기록으로만 남겨 둔다.
이 세 회사들의 전철 사용자 인터페이스 개선 경쟁은 앞으로도 '현재 진행형'일 것으로 보이며, 다들 상향 평준화할 것이다.

21세기에 코레일이야 광역 전철이 워낙 많이 개통했으니 생긴 역이 많았지만 거의가 지상이다. 지하에 새로운 코레일 역 개통은 분당선이 전부이다.
서울 메트로는 5년쯤 전에 용두(2)와 동묘앞(1) 역이 개통한 적이 있고, 9호선의 개통 후에 3호선 수서-오금 연장 구간이 개통했다.
그 반면 SMRT(도철)는 21세기에 딱히 새로 문을 연 역이 아직 없다. 그 대신 동대문역사문화공원 역이 마치 새 역처럼 완전히 리모델링되었고, 앞으로 5호선 강일, 8호선 우남(복정-산성 사이의 신역), 그리고 더 먼 미래에 7호선 온수-부평구청 연장 구간 떡밥이 남아 있을 뿐이다.

Posted by 사무엘

2010/08/23 09:08 2010/08/23 09:08
, , , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/354

한글 낱자 입력 컨트롤

<날개셋> 한글 입력기는 한글 입력 설정을 전문적으로 다루는 프로그램이다 보니, 여타 프로그램에서는 찾을 수 없는 독특한 UI를 갖추고 있다.

그 중 대표적인 예는 한글 낱자만 하나 입력 받는 컨트롤 윈도우이다.
제어판에서 입력 항목 설정으로 들어간 후, "낱자 처리"에서 어렵지 않게 구경할 수 있다. 바로 이렇게 생긴 놈이다.

사용자 삽입 이미지

<날개셋> 1.x 시절에는 그런 게 없었고, 그냥 글자 입력+콤보가 결합된 일반 표준 컨트롤을 썼다.
어차피 옛한글도 지원 안 되고 고를 수 있는 게 초성 ㄱ부터 ㅎ까지 19개, 중성 21개, 종성 27개가 전부였으므로 이렇게만 UI를 만들어도 아무 문제될 게 없었다.

사용자 삽입 이미지

그러던 게 <날개셋> 2.x 시절에는 상황이 약간 달라졌다.
옛한글이 지원되기 시작했기 때문에, 운영체제가 시스템 차원에서 표시할 수 없는 한글 낱자도 그려야 할 필요가 생겼다. 그래서 owner-draw(항목 내용을 응용 프로그램이 직접 그리는) 콤보박스로 UI가 바뀌었다.

사용자 삽입 이미지

그러나 그 대신 원하는 낱자를 한글 글자판으로 바로 입력하는 기능은 사라졌기 때문에, 설정을 바꾸기 위해 매번 콤보박스를 열고 스크롤을 해서 낱자를 클릭해야 하게 되어 번거로워졌다.
자음이 2~30개가 채 안 넘던 게 옛한글 포함 134개로 폭증했으니 스크롤 양도 증가했을 것이고, 가상 낱자까지 포함해 256개나 되는 항목이 한 줄에 겨우 한 개씩만 표시되는 것도 매우 불편한 점이었다.

지금과 같은 형태의 독자적인 낱자 입력 컨트롤은 <날개셋> 3.0과 함께 첫 도입되었다.
2.x 시절의 불편도 해소해야 하거니와 3.0부터는 가상 낱자의 공간이 8비트 크기인 255를 넘어 아예 16비트 크기로 확장되었기 때문에, 예전과 같은 UI 자체를 전혀 사용할 수 없게 되었기 때문이다. 콤보박스에다 아이템을 65500개 추가하리?

낱자 입력 컨트롤은 에디트 컨트롤과 콤보박스 컨트롤을 혼합한 형태로 만들어졌으며 한글 낱자 하나만 입력하는 데 생각할 수 있는 최대한의 편의를 보장한다. 마치 그래픽 편집 프로그램이 자신만의 전용 색깔 선택 컨트롤을 구현해 놓은 경우가 많듯, 한글 입력기는 응당 자신만의 한글 낱자 선택 컨트롤을 갖춘 셈이다. 아래의 설명을 잘 읽어보기 바란다.

먼저, 이 컨트롤은 <날개셋> 한글 입력기의 입력 커널을 그대로 공유한다.
<날개셋> 편집기에서 글자판을 전환한 것이 이 낱자 입력 컨트롤에서도 그대로 적용된다. 그래서 지금 세벌식 최종 자판을 쓰고 있다가 초성 입력란에서 ㄱ~ㅎ 중 하나를 누르면 그 낱자가 바로 입력된다.

한글만 입력 가능한가? 그렇지 않다. 숫자를 입력하면 해당 낱자 번호에 해당하는 낱자가 바로 입력되며, 이때 숫자는 세벌식 자판의 숫자 패드라든가 numlock 키패드 숫자를 모두 인식한다. 쉽게 말해 낱자 입력 컨트롤은 한글과 숫자를 이중으로 입력받는 체계를 갖춘 셈이다. 숫자로는 물리적인 한글 낱자로 대응하지 않는 가상의 낱자를 입력할 수 있다.
숫자를 입력하고 있을 때는 오른쪽의 숫자가 빨간색이 되어 모드가 바뀌었음을 알려 준다.

여기에 덧붙여 지금이 한글이 아닌 영문 입력 모드인 경우, 그 영문 이니셜로 시작하는 낱자로 바로 이동이 된다. 즉, G를 눌러서 ㄱ, ㄲ 등을, N을 눌러서 ㄴ을 선택할 수 있고 I를 눌러서 ㅣ로 바로 갈 수도 있다.

그리고 화살표 키를 쓸 수 있다. 상하 화살표를 누르면 코드 번호가 1씩 증가하거나 감소하고, 좌우 화살표를 누르면 잡다한 옛한글들을 건너뛰고 ㄱㄴㄷㄹ 순으로 빠르게 이동이 가능하다.

어디 그 뿐이랴? 지금 입력 중인 낱자를 복사하거나 붙여넣을 수도 있다. Ctrl+C, X, V 단축키가 있으며 심지어 우클릭 메뉴도 구비되어 있다. 숫자를 복사하거나 한글 낱자를 하나 복사해서 붙여넣으면 그 낱자가 바로 입력된다.

이 컨트롤을 마우스로 클릭하거나, 포커스가 있는 상태에서 F4를 누르면 콤보박스가 나타난다. 이것은 운영체제의 콤보박스와 동작 방식이 같다. 그러면 선택 가능한 모든 한글 낱자가 문자표 형태로 한 화면에 쭉 나타나며(스크롤 같은 것 없음), 원하는 낱자를 마우스로 클릭하면 된다. <날개셋> 한글 입력기 5.0은 지원하는 한글 낱자 개수가 더욱 늘어나 있다. 한글 낱자들은 색깔이 제각각 다른데, 그 의미는 다음과 같다.

- 검정: 현대 한글 (초성 19, 중성 21, 종성 27)
- 파랑: KS 완성형 코드에 낱자 형태로 등록되어 있는 기초 옛한글로,
- 분홍: 유니코드 1.1과 아래아한글 2.0이 전통적으로 지원해 온 옛한글 (U+11xx대)
- 초록: 한동안 한양 PUA에만 존재했고 유니코드 5.2와 <날개셋> 5.x에서 표준으로 정식 추가된 옛한글
- 회색: 초성이나 종성 중 한 곳에만 존재하는 자음을, <날개셋>만이 내부 편의를 위해 다른 쪽에도 비표준 방식으로 구현한 것

한글 낱자를 마우스 포인터로 가리키고 있으면 해당 자모의 유니코드 이름과, 영문 변수명이 풍선 도움말로 뜨기 때문에 외국인에게도 도움이 될 것이다. F3을 누르면 사전 순이 아닌 등급 순으로 낱자들이 정렬된다. 즉, 검은색 현대 한글이 ㄱ부터 ㅎ까지 뜬 후, 그 뒤 옛한글이 뒤따른다는 뜻.

윈도우 운영체제가 제공하는 콤보박스의 약점 중 하나는, 현재 선택된 아이템에서 인접한 아이템으로 한 번 클릭만으로 손쉽게 이동하는 게 없다는 것이다. 그런 약점을 보완하기 위해 슬라이더라든가 up-down 컨트롤을 옆에 덧붙이는 경우도 있다. 그러나 한글 낱자를 선택하는 건 무슨 연속된 영역을 선택하는 게이지도 아니고, 무슨 글꼴 선택 콤보박스처럼 이것저것 살펴봐야 하는 부류도 아니기 때문에 그런 UI는 넣지 않았다.

이런 점에서 <날개셋> 한글 입력기의 낱자 입력 컨트롤은 <날개셋> 한글 입력기만의 고유한 UI로 불리기에 손색이 없다. 걸출한 고유 UI로는 글쇠배열 편집기도 있는데, 이 UI 역시 써 본 분들은 알겠지만 <날개셋> 입력 커널을 공유하기 때문에 내가 당장 쓰는 글쇠배열로 다른 글쇠배열을 손쉽게 만들 수 있다. 아울러, 낱자 입력 컨트롤의 콤보박스 부분은, 문자표에서 볼 수 있는 문자표 컨트롤의 코드를 공유한다.

Posted by 사무엘

2010/08/21 15:33 2010/08/21 15:33
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/353

※ Fabrice Bellard (프랑스) 1972년생
http://bellard.org/
홈페이지를 보면, 주인장은 수학과 전산학, 전자 공학의 완전 덕후임을 알 수 있다.
파이 계산, 컴파일러, 게다가 IOCCC(국제 난잡한 C 코드 경연대회) 입상 경력.
관심 분야가 이쪽과 상당히 비슷한, 본인의 모 지인이 떠오른다. (누굴까? ㅋㅋㅋ)
이 사람은 1990년대 도스용 실행 파일 압축 프로그램인 lzexe의 개발자이기도 하다.
겨우 고등학생 나이 때 8086 어셈블러로 직접 짰다고 한다. 흠좀무...;;;;;;
그 당시, V3로 바이러스 검사를 해 보면, 압축된 실행 파일은 검사가 되지 않고 압축부터 풀어야 한다는 경고문이 떴다. lzexe와 더불어 pklite도 실행 파일 압축 프로그램이었다.

※ David Fotland (미국) 1957년생
http://www.smart-games.com/
The Many Faces of Go라는 바둑 게임의 개발자이며, 회사까지 차려서 20년 전이나 지금이나 바둑 AI를 열심히 밀고 있는 게임 인공지능 전문가이다. (도스, 윈도우, 모바일 기기) 그 프로그램을 혼자서 다 만들었다니.. 대단하다.
생각보다 나이가 지긋한 분이다. 캘리포니아 주 산호세에 거주 중.

※ Jean-loup Gailly (프랑스)
http://gailly.net/
gzip의 개발자이며, 데이터 압축 분야의 세계적인 권위자로 유명하다. 아래아한글도 2.1 시절부터 이 사람이 개발한 알고리즘을 라이선스하여 hwp 파일 내부 압축을 구현하고 있다. 현재는 스위스 취리히에서 살고 있으며, 구글에 입사했다. 나이가 좀 있어 보이는 분인데 정확한 생년은 모르겠다.
이 사람도 바둑 매니아이다. 개인 홈페이지를 보면 바로 위의 the Many Faces of Go 프로그램에 대해서도 응당 논평을 해 놓았다. AI가 세계 최강급은 아니지만 초보자를 위한 인터페이스가 무척 잘 돼 있다나?

※ Ken Silverman (미국) 1975년생
http://advsys.net/ken/
듀크 뉴켐 3D의 기술 기반인 빌드(Build라는 단어 자체가 고유명사) 엔진을 개발한 게임 프로그래머.
뼛속까지 프로그래머 근성이 철철 흐르는 한편으로 과학, 스포츠, 음악 등등 온갖 분야에 해박한 엄친아라는 게 느껴진다. 빌드 엔진 역시 학창 시절의 작품이다.
지금까지도 딱히 정식으로 소속된 직장이 없이, 프리랜서 프로그래머로만 일하는 모양이다.

※ Shawn Hargreaves (영· 미 이중 국적) 1975년생
http://www.talula.demon.co.uk/
Ken과 동갑이고 비슷한 업종에 종사 중인 게임 개발자이다.
도스 시절, 32비트 C/C++ 컴파일러로 왓콤과 맞장을 떴던 GNU 계열의 DJGPP를 기억하시는가? DJGPP용으로 소스까지 공개이던 걸출한 게임 그래픽 라이브러리 알레그로를 만든 사람이 이 사람이다.
음악에 특별히 조예가 아주 깊은 매니아이다. 지금은 쟝 아저씨의 구글 입사와 비슷한 시기에 마이크로소프트에 입사해서 XNA 기반 게임 개발에 푹~ 잠겨 있는 듯.

말이 나왔으니 또 덧붙이자면.
본인은 중· 고등학교 시절에 스크래블 게임을 컴퓨터용으로 개발했다.
국내에 그런 프로그램이 개발된 사례가 없었기 때문에 응당 외국의 동급 프로그램들을 여럿 구해다가 벤치마킹을 했는데.. 알고 보니 그런 게임의 개발자 중에도 졸라 프로그래밍 고수가 많았다.

※ Jim Homan (1950년대생)
미국 출신. CrossWise라는 걸출한 게임을 혼자 만든 사람으로, 컴퓨터 AI가 굉장히 뛰어나고 프로그램 UI도 매우 프로페셔널하게 잘 만들어졌다. 윈도우 3.1용으로는 보기 드물게 비주얼 C++ 1.x + MFC로 개발되었다.
이 사람은 옛날에는 자기 회사를 차려 사업을 했기 때문에 회사 홈페이지 아래에 얹힌 개인 홈페이지에 개인 프로필도 나와 있었다. MIT에서 컴퓨터 과학을 전공하고 성적도 엄청 좋았고, 접해 본 플랫폼과 관심 분야 등등도 화려하기 그지없었는데, 지금은 이 사람에 대해서 알 수 있는 곳이 없다.

※ Graham Wheeler (1960년대생으로 추정)
http://www.linkedin.com/in/grahamwheeler
WordsWorth라는 게임을 만들었다. 개발자는 완전 수학 덕후로, 학부에서 수학 전공하고 대학원에서 컴퓨터 과학으로 박사와 박사 후 연구원까지 마친 브레인이다. 국적이.. 남아프리카 공화국으로, 케이프타운 대학을 나왔다.
지금은 마이크로소프트에 입사. 프로필과 블로그를 보면 역시 뼛속까지 엔지니어를 넘어 골수 컴퓨터 과학자이다.

한 줄 요약: 세상은 넓고 덕후들, 고수들은 무진장 많다.

Posted by 사무엘

2010/08/20 09:03 2010/08/20 09:03
, , , , , ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/352

날개셋 한글 입력기 5.65

4개월이 넘는 시간 동안 0.1이 조금 넘는 분량만치 버전이 올라갔습니다. 5.7까지 하기에는 좀 분량이 안 차는 것 같고.. 하지만 이제 5.5x는 확실히 졸업이죠.

고등학생 신분으로 만든 마지막 버전: 1.1 (2000년, 인터넷 미공개)
대학생 학부 신분으로 만든 마지막 버전: 3.41 (2005년)
병특 신분으로 만든 마지막 버전: 4.82 (2008년)
일반 풀타임 직장인 신분으로 만든 마지막 버전: 이번 5.65 되겠습니다. (2010년) 더구나 개발 10주년 기념작이기도 합니다. (☞ 받는 곳 )

리드미 파일을 보면 알 수 있듯이. 이번 5.65의 변화 사항은 다음과 같은 세 분야로 요약됩니다.
아주 의미심장합니다.

※ 날개셋문자의 타입으로 다중 문자와 다중 한글 자모 추가

다중 문자를 쓰면, 유니코드 UTF16 형태로 표현했을 때 최대 6바이트짜리 문자열을 본문에 한꺼번에 집어넣을 수 있습니다.
그래서 '날개셋 고급 입력기'의 사용자 정의 조합 같은 걸 쓰지 않고도 '000' 같은 문자열 정도는 글쇠에 바로 배당할 수 있습니다.
또한 조합용이 아닌 완성된 한글 문자로도 예전에는 현대 한글 하나만 배당 가능했지만 이제는 각 자모가 한 글자씩을 차지하는 옛한글도 배당할 수 있으며, 리가처가 별도로 붙은 복잡한 라틴 문자도 글쇠에 배당할 수 있습니다.

사용자 삽입 이미지

그럼 다중 한글 자모는 무엇일까요?
<날개셋> 한글 입력기는 원래 다중 한글 자모를 지원합니다. ㄱ+ㅏ를 한꺼번에 배당해서 '간', '감', '강' 같은 글자를 세 타가 아닌 두 타만에 입력하게 할 수 있지요.
그런데 그건 같은 글자 안에서만 지원됩니다. 이번 버전에서는 종/초중, 중종/초 같은 글자 경계를 넘어서는 다중 한글 자모를 지원합니다.

그래서 '가'를 입력 도중에 종성과 다음 글자 초성을 동시에 입력해서 '강ㅇ' 같은 글자를 바로 만들 수도 있습니다. (ㅇ은 조합 중인 상태) 가상 낱자와 응용하면 '갇' → '가ㅌ'를 만들 수도 있게 됩니다. 도깨비불 현상을 모음이 아니라 자음으로 만들어 내는 것이죠.
이런 기능이 보편적으로 쓰일 일은 많지 않겠지만 한글 입력기의 기능의 완전성 차원에서 꽤 오래 전부터 계획했던 기능인데 이걸 드디어 구현했습니다. ^^

※ 제어판 UI가 굉장히 많이 개선되었습니다

낱자 처리나 최종 변환 테이블처럼 각종 데이터의 목록이 있는 곳에서 아무 항목도 선택하지 않고 '삭제'를 누르면 해당 데이터를 한꺼번에 지울 수 있게 했습니다. 물론 정말 모두 지울 거냐는 확인 질문도 뜹니다.

또한 중복값을 추가하면 무조건 에러만 나는 게 아니라 값의 대체도 가능하게 했습니다. 가령, ㄱ+ㄱ→ㄲ이라는 규칙이 있는데 ㄱ+ㄱ→ㄴ을 또 추가하면 무조건 에러가 나고 퇴짜만 맞는 게 아니라, ㄲ을 ㄴ으로 고칠 거냐는 질문이 나오게 됐고요.

리스트를 Ctrl+클릭하면 ㄱ+ㄱ→ㅋ, ㅋ+ㄱ→ㄲ, ㄲ+ㄱ→ㄱ처럼 순환식 결합 규칙이 있는 경우 이 순환을 자동으로 한꺼번에 selection으로 만드는 기능도 추가했습니다.
낱자 선택 컨트롤의 경우, F3을 누르면 낱자를 무조건 사전 순으로만 출력하는 게 아니라 코드와 등급 순으로도 정렬이 되게 했습니다. 이렇게 하면 현대 한글만 맨 앞에 우선적으로 먼저 나열되기 때문에, 옛한글을 사용하지 않고 현대 한글만으로 입력 환경을 구성할 때 매우 편리합니다. 이것도 진작에 구현됐어야 할 기능이죠.

사용자 삽입 이미지

※ 각종 버그 수정

제어판 UI가 미세하게 오동작하거나 심지어 프로그램이 죽을 수 있던 문제를 여럿 발견하여 해결했습니다.
<날개셋> 편집기는 찾기 대화상자 꺼내다가 프로그램이 random하게 죽던 문제를 드디어 완전히 해결했습니다.
윈도우 XP(비스타/7 말고) + 아래아한글 2010에서 외부 모듈을 사용하다가 프로그램을 종료하면, 프로그램이 그냥 종료되지 않고 외부 모듈에서 에러가 나던 문제도 물론 해결됐고요. 아래아한글 2010이 출시된 지가 언제인데 새 버전 공개가 좀 늦은 감이 있군요.

유용하게 사용하시기 바랍니다.
다음 버전은 5.x대의 마지막 버전.. 즉 6.0 직전 버전 컨셉으로,
내부 API를 상당수 재정비하고(breaking change 잔뜩) 프로그램의 보안과 안정성을 강화하는 쪽으로 리팩토링 할 예정입니다.
가령, 아무 생각 없이 문자열을 넘겨주던 함수에다가 버퍼의 크기도 명시해 주는 식으로.
또한, 입력 설정 데이터에 오류가 있더라도 프로그램이 뻗지 않게(fuzz testing)..;;

조금만 있으면 <날개셋> 한글 입력기 커널인 ngs3.dll이 600KB를 돌파하고,
모든 모듈의 소스 코드 총합이 6만 줄을 돌파합니다.
물론 저의 코딩 스타일을 잘 아는 분이라면, <날개셋> 한글 입력기의 실질적인 소스 코드 수는 이미 10~15만 줄일 거라고 예상하기도 합니다. ㅋㅋㅋ

Posted by 사무엘

2010/08/18 23:25 2010/08/18 23:25
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/351

-- 들어가는 말: 스크롤의 압박이 심한 글임을 밝힌다.

본인은 일명 2D 플랫폼 게임이라고 불리는 아케이드 장르로 PC 게임에 첫 입문한 사람이다. 여기서 플랫폼이란, 어떤 소프트웨어가 돌아가는 운영체제 내지 하드웨어 기반을 말하는 게 아니라, 말 그대로 게임 세계 내부가 주인공이 돌아다니고 점프하는 발판(platform)들로 이루어져 있다는 뜻이다. 요즘은 3D 트렌드 때문에 이런 2D 플랫폼 게임은 보기가 힘들어졌다.

그래서 본인은 롤플레잉이나 전략 시뮬 같은 다른 장르의 게임들을 거의 하지 않았다. 삼국지나 대항해시대, 프린세스 메이커 같은 것들.
그런 여타 장르 게임 중에서는 스타만... 얘는 워낙 너무 히트 치고 유명했으니까 예외적으로 했을 뿐, 전략 시뮬/RPG 전문인 블리자드의 다른 명작 게임은 접하지 않았다. 뿌리가 거기에 있는 요즘 온라인 MMORPG도 본인은 흥미가 안 가서 안 하고 지낸다.

컴퓨터 학원에서 GWBASIC을 배우던 시절, 수업을 마치고 모노크롬 모니터로 게임을 즐겼다. 게임은 2D 플로피디스크에 담겨 있었고, 그때는 실행 파일이라는 개념도 몰라서 '암호'(?)라고 불렀다. 그 반면, 모노크롬 CGA/허큘리스로 하던 게임이 286 AT VGA 환경에서 실행되니까 완전히 딴 작품이 되었다.
그런데 그때 학원에서 불법 복제하던 게임은 용량이 부족하다는 핑계로 EGA/VGA 그래픽 파일은 빠진 녀석이 많아서, 집의 컬러 모니터 컴퓨터에서도 겨우 4색짜리 CGA 그래픽으로 만족해야 하는 경우도 많았다.

다음은 그때 즐겼던 게임들을 특성별로 조목조목 분석한 것이다. 그때는 뭔지도 모르고 그냥 게임을 했는데, 나이가 들어서 다시 보니까 그래도 영어로 흘러나오는 게임 스토리들이 해석이 되는 건 좋다. ^^;;

※ 릭의 위험한 모험 2 (Rick Dangerous 2)

제작사: 영국의 코어 디자인(Core Design). 훗날 툼 레이더를 만들어 낸 회사이다!
스크롤 단위: 가로로는 화면(페이지) 단위, 세로로는 픽셀(줄) 단위인 독특한 체계
게임 목표: 던전에 존재하는 모든 트랩 퍼즐들을 통과하여, 던전을 살아서 빠져나갈 것. 그리고 마지막 레벨에서는 최종 보스를 죽일 것.

주인공의 무기: range attack이 가능한 총(총알 최대 6발)과 폭약 6발을 쓸 수 있음. 한 총알이 날아가고 있는 동안엔 총을 또 쓸 수 없다.
주인공이 가능한 동작: 엎드려 가기, 그리고 주먹으로 버튼을 누르는 동작이 있음. 점프는 자기 키의 3배 정도로 가능함. 사다리를 타고 오를 수 있음.
주인공의 체력: 체력이라는 게 없고 오로지 즉사만 있음. 트랩 하나에라도 잘못 걸리면...;; -_-;;
죽으면: 마지막으로 가로로 이동한 화면에서 다시 시작하며, 모든 게 원상복귀됨. (죽였던 몬스터나 바꿔 놓은 게임 지형 등이 다 reset) 목숨 한계는 6.
점수: 적을 죽이거나 점수 아이템을 먹거나 특정 지점을 통과했을 때 점수가 올라간다. 하지만 높은 점수가 게임 진행에 뭔가 이익을 주는 것은 없다.

시체: 뻥~ 점프를 하면서 화면 밖으로 튕겨나간다.
비고:: 몬스터 역시 주인공을 죽게 하는 다른 트랩(미사일, 전깃줄 등등..)에 빠지면 죽는다. 사실, 몬스터를 이렇게 죽였을 때 점수가 더 높게 올라간다.

총평: 오로지 순발력으로 트랩 피하는 퍼즐만으로 가득한 게임. 정말 어렵다. 조금이라도 타이밍 늦어서 죽으면 깜짝깜짝 놀란다. 게임이 무슨 108계단 40컴보도 아니고 자비심이 없다. 5개의 레벨 중 본인은 어렸을 때 첫 1~3개의 레벨까지는 깼는데, 레벨 4 중후반부터는 gg 쳤고, 최종 보스가 있는 레벨 5는 구경도 못 했다. 주기적으로 주인공을 노리는 트랩들의 출현 패턴을 파악해야 하는데... 쉽지가 않다. 거기에다 미묘한 컨트롤과 순발력도 따라 줘야 하고...;; 고수가 하는 플레이 동영상을 유튜브로 보니, 지금 생각해 봐도 내겐 무리이다.
장애물을 제거하려고 오른쪽으로 다이너마이트를 터뜨렸는데 그 장애물이 내가 있는 왼쪽으로 날아온다거나... 순 어거지 같은 트랩도 있다. 순전히 주인공 죽이는 게 목적인 데모노포비아-_- 같은 게임도 아니고 말이야..;; 이런 건 유저 인터페이스 면에서는 바람직하지 못하다.

※ 위험한 데이브 (Dangerous Dave)

제작자: 훗날 ID 소프트웨어로 간 존 로메로(John Romero)
스크롤 단위: 가로로는 화면(페이지) 단위, 세로 스크롤이 없음. 밑으로 떨어지면 다시 화면 위로 닿는 특이한 설정
게임 목표: 던전에 존재하는 트로피를 반드시 먹은 후, 각종 트랩을 피해서 던전을 빠져나갈 것. 최종 보스 같은 건 없음.

주인공의 무기: 총이 존재하는 레벨에서 총을 먹으면 총을 쏠 수 있으나, 한 총알이 날아가고 있는 동안에는 총을 또 쏠 수 없다.
주인공이 가능한 동작: 점프만 있으며, 자기 키의 3배 정도로 가능함. 제트팩을 쓰면, 공중에서 떨어지지 않고 원하는 곳으로 자유자재로 이동 가능.
주인공의 체력: 역시 체력이라는 게 없고 즉사만 있음. 불이나 물 등에 빠지면 죽고 적의 총알에 맞아도 죽는다. 하지만 몬스터와 부딪치면, 여느 게임과는 달리 나만 죽는 게 아니라 그놈도 같이 죽는 '자폭'이라는 시스템이 있다.
죽으면: 해당 레벨의 시작 위치에서 다시 시작하지만, 예전의 게임 상태는 그대로 유지됨. 기본 목숨 한계는 3.
점수: 보석을 먹거나 몬스터를 죽이면 올라간다. 점수가 2만 점의 배수가 될 때마다 목숨이 하나씩 생긴다.

시체: 펑~ 폭발한다.

총평: 10개의 레벨이 존재하는데 레벨이 올라갈수록 점진적으로 굉장히 어려워진다. 게임 엔진 자체는 너무나 단순하기 그지없고 던전 모습도 허접하다. (스프라이트도 검은색 배경에다가 무려 xor 연산으로 그리는지, 두 스프라이트가 겹치면 겹치는 부분의 색깔이 변한다!) 하지만 그 작은 규모 치고는 적당하게 어렵고 퍼즐을 풀어 나가는 재미는 있다. 몬스터 외에 딱히 움직이는 트랩은 없다는 게 특징.
총을 먹어야 몬스터를 죽일 수 있는데, 날아다니는 몬스터를 피해서 먼저 총을 먹으러 가야 하는 게 어려웠다.

※ 보글보글 (Bubble Bobble) -- 제목이 좀 교묘하게 의역됨

제작사: 일본 Taito
스크롤 단위: 한 레벨은 오로지 한 화면에서만 이뤄지고 게임 도중 스크롤이란 게 없다! 다음 레벨로 넘어가는 게 세로로 방 단위 스크롤임.
게임 목표: 각 레벨에 존재하는 몬스터들을 모두 죽일 것. 최종 보스 있음.

주인공의 무기: 거품을 쏜다. 거품으로 적을 가둬서 터뜨리면 된다. 다만, 일부 레벨에서는 번갯불이나 불십자가 같은 더 강력한 무기 아이템이 주어지는 경우도 있다.
주인공이 가능한 동작: 점프만 있으며, 자기 키의 3배 정도로 가능함.
주인공의 체력: 즉사만 있음. 몬스터와 몸이 닿거나 몬스터의 발사체에 맞으면 무조건 죽는다.
죽으면: 해당 레벨의 시작 위치에서 다시 시작하며, 게임 상태는 그대로 유지됨. 기본 목숨 한계는 4인데, Credits라는 개념이 있어서 Credit를 사용하면 해당 레벨의 초기 상태에서부터 게임이 다시 시작된다.
점수: 몬스터가 죽으면서 남긴 각종 과일들을 먹었을 때, 그리고 심지어 거품을 터뜨려도 올라간다. 점수가 5만 점의 배수가 될 때마다 목숨이 하나씩 생긴다.

시체: 몬스터가 죽으면 화면을 날아다니다가 각종 과일이나 아이템으로 변하고, 주인공이 죽으면 데굴데굴 구르다가 사라진다.
비고:: 2인용이 가능하다.

총평: 뭔가 랜덤한 요소가 엄청 많은 게임. 캐릭터가 아기자기하고 예쁜 캐주얼 컨셉이긴 한데, 역시 어렵다. ㅠ.ㅠ 레벨마다 시간 제한이 있어서 게이머를 압박하며, 특히 몇몇 레벨은 깨는 방법을 모르면 얄짤없이 다 죽을 수밖에 없다. 레벨이 총 100개 있는 게임에서 한 40 이후부터는 가 본 기억이 없다.

※ 페르시아의 왕자 (Prince of Persia) -- 아주 무난한 제목

제작자: 조던 메크너(Jordan Mechner)
스크롤 단위: 가로와 세로 모두 화면 단위로만
게임 목표: 던전에 존재하는 트랩 퍼즐들을 통과하여, 던전을 살아서 빠져나갈 것. 그러기 위해서는 출구 문을 열어야 하는데 이 과정이 힘들다. 마지막 레벨에서는 최종 보스를 죽일 것.

주인공의 무기: 검이 있다. melee 공격만 가능한 셈.
주인공이 가능한 동작: 점프는 진짜 실제 사람이 가능한 높이로만-_- 가능하다. 엎드리기, 매달리기 등 다양한 동작이 있다.
주인공의 체력: 2층 높이에서 떨어지거나 칼싸움 중에 몬스터의 공격을 받았을 때처럼 hit point가 1개 단위로 감소하는 경우가 있다. 그러나 고층에서 추락, 가시에 찔림, 칼에 허리가 잘림 등 대부분의 트랩들에 걸리면 즉사한다. (추락사라는 개념이 있는 게임 자체도 흔치 않음)
죽으면: 해당 레벨의 처음부터 다시 시작하고 모든 게임 상태가 원상복귀된다. 목숨 제한은 없지만, 아주 독특하게도 시간 제한이 있다.
점수: 점수라는 개념이 전혀 없음.

시체: 죽은 시체는 사라지지 않고 바닥에 그냥 널부러져 있다. 시체가 이렇게 끝까지 남아있는 게임은 당시 드문 편이었다. 죽은 모습도 꽤 끔찍한 편.
비고:: 몬스터 역시 절벽에서 떨어지거나 가시에 찔리거나 허리가 잘리면 주인공과 똑같이 죽는다.

총평: 허리 자르는 칼(chopper)가 내게 상당한 트라우마를 선사했던 게임이다. 얘도 상당히 어려운 퍼즐 난이도 때문에 엔딩 보기를 포기한 사람이 많았으나, 본인은 이건 모든 레벨을 깨고 엔딩 보는 데 성공했다. 단, 내 혼자 연구해서 깬 건 아니고, 남이 하는 걸 보고서 막힌 부분을 뚫는 방법을 발견한 뒤부터이다.
조던 메크너는 드라마/영화 감독 출신답게, 게임도 뭔가 한 편의 드라마처럼 웅장한 스케일로 시작하게 만들었다.

※ 고인돌 (Prehistorik)

제작사: 프랑스의 Titus
스크롤 단위: 가로로는 화면 단위. 세로 스크롤은 아주 예외적으로 위층으로 올라가거나(레벨 5) 아래의 물로 빠질(레벨 1) 때 화면 단위로 일어나는 경우가 아니면 일반적으로 없음
게임 목표: 던전에 존재하는 각종 몬스터들을 잡아먹어서 Food를 채운 후, 출구로 빠져나갈 것. 던전 차원에서 그렇게 어려운 퍼즐은 없다. 그리고 던전이 끝나면 보스를 해치우는 레벨이 나옴.

주인공의 무기: 방망이나 돌도끼만 존재하며, 역시 melee 공격만 가능함.
주인공이 가능한 동작: 점프는 실제 사람이 가능한 높이로만 가능하지만 스프링 아이템을 먹으면 키의 2~3배 정도 높이로 점프가 가능해진다. 사다리가 있음. 다른 게임과는 달리, 사다리를 잡고 있는 도중에 뛰어내리거나 떨어지는 게 가능하지 않다.
주인공의 체력: 체력 시스템이 있고 3~5단계 수준은 아닌 다단계의 hit point가 있다. 물에 빠지거나 절벽으로 곤두박질치면 즉사이긴 하지만, 그렇게 ring out되는 것 말고 던전 내부에 주인공을 즉사시키는 트랩은.. 수면 위를 오르내리는 섬 말고는 거의 존재하지 않는다. (심리적으로 안전함을 느낌) 그런데, 게임 중에 hit point는 오로지 데미지를 입어서 감소만 할 뿐, 보충하는 방법이 전혀 존재하지 않는다.
죽으면: 딱히 way point 같은 것도 없고 죽기 직전의 위치에서 다시 시작하는 굉장히 대인배스러운 체계. 당연히 게임은 지금 상태에서 그대로 계속됨. 목숨 제한이 있지만 목숨을 늘려 주는 아이템도 있고, 게임을 진행하다 보면 보너스로 목숨도 많이 주는 편이다.
점수: 음식을 먹으면 점수가 올라가고, 클리어를 빨리 해도 보너스가 많이 주어진다.

시체: 몬스터는 일단 죽지 않는다. 죽이는 게 아니라 기절시키고 나서 잡아먹는 개념이기 때문에, 끔찍한 시체 같은 게 없다. 주인공이 죽으면 해골이 되어 하늘나라로 빠이빠이~~

총평: 다른 게임들에 비해서는 비교적 쉽게 엔딩을 볼 수 있었다. 목숨도 10여 마리가 넘게 남기고 말이다. 공룡이 살던 시대를 묘사한 배경 그래픽이 무척 아름다웠다. 특히 빙하(레벨 3)와 숲(레벨 5). 프로그램의 버그 때문에 계단 오르다가 물에 쑥 빠져 버리면 좀 짜증.
레벨 클리어 후 보너스 점수 정산을 하는 화면은 왜 그래픽이 아닌 텍스트 모드에서 뜨는지가 늘 궁금했다. ^^

※ 블루스 형제

제작사: 역시 Titus
스크롤 단위: 가로와 세로 모두 픽셀 단위로 자유자재
게임 목표: 각 레벨별로 얻어야 하는 특수한 악기 아이템을 먹은 후, 던전을 통과하여 출구로 빠져나가는 깃발을 먹을 것. 보스 같은 개념은 없음

주인공의 무기: 상자를 들어 집어던지는 게 가능하다. melee가 없고 range 공격만 있는 셈.
주인공이 가능한 동작: 엎드릴 수 있고, 점프 역시 키의 3배 정도 높이로 가능하다. 하지만 상자를 들고 있으면 점프 높이가 급감하며, 엎드릴 수도 없게 된다. 일단 들었던 상자는 다시 놓을 수 없고 몬스터를 향해 던져서 없애 버리는 것만 가능한 것도 아쉬운 점. 그리고 물에서 헤엄치는 게 있다. 산소 제한은 없으며, 물에서 무제한 체류 가능.
주인공의 체력: 3~5칸 정도 있다. 이 게임은 모든 트랩은 빠져나가는 게 가능하며, 즉사라는 게 사실상 존재하지 않는다.
죽으면: 레벨별로 way point가 존재하는데, 주인공이 죽기 전에 가장 최근에 거쳤던 way point에서부터 다시 시작한다. 예전 게임 상태는 보존되어 있다. 목숨 제한이 존재하며, 목숨은 레코드 아이템을 100개 채우면 하나 늘어난다.
점수: 점수라는 게 없었지 싶다. 있더라도 수집한 레코드 개수가 훨씬 더 중요했던 걸로 기억.

시체: 몬스터는 죽으면 마치 <릭의 위험한 모험>에서처럼 점프를 하면서 튕겨나간다. 주인공은 죽으면 블루스를 춘다... 음??
비고:: 2인용이 가능하다.

총평: 고인돌보다는 확실히 어렵다. 하지만 본인의 연구와 플레이만으로 스스로 5개+1개 최종 레벨을 모두 격파하고 엔딩을 봤다. 아주 넓은 던전이 인상적이었다.

※ 폭스

제작사: 역시 Titus
스크롤 단위: 가로와 세로 모두 픽셀 단위로 자유자재. 사실, 블루스 형제에서 기술적으로 한 단계 더 발전한 게임이라 할 수 있다.
게임 목표: 던전에 존재하는 트랩 퍼즐들을 통과하여, 던전을 살아서 빠져나갈 것. 단, 보스를 죽여야 하는 레벨도 있다.

주인공의 무기: 블루스 형제와 마찬가지로 자체 무장은 존재하지 않고, 던전 내부에 있는 각종 도구를 던져서 적을 죽일 수 있다. 하지만 도구 자체는 블루스 형제보다 훨씬 더 다양한 게 존재한다.
주인공이 가능한 동작: 역시 엎드릴 수 있고 점프는 키의 3배 정도 높이로 가능하다. 도구를 들고 있어도 점프 높이는 변함없으며, 들었던 도구를 다시 놓아 떨어뜨릴 수 있다. 그런데, 이색적으로 점프할 때 점프 강도를 조절 가능하다.
주인공의 체력: 고인돌처럼 다단계로 존재한다. 그런데 특이한 것은, shield 모드가 없다! 블루스 형제나 고인돌은 주인공이 상처를 입으면, 어서 그 나쁜 환경으로부터 빠져나가라고 주인공에게 추가 데미지를 유보하는 shield 모드를 만들어 준다. 그러나 폭스는 그렇지 않기 때문에 여러 몬스터가 있는 곳에서 부닥치다가 순식간에 hit point를 다 잃고 죽을 수도 있다. 이에 덧붙여, 주인공을 즉사시키는 트랩도 많이 존재한다.
죽으면: way point를 갱신해 주는 아이템이 있다. 주인공은 게임을 진행하면서 그런 아이템을 먹어야 하며, 주인공이 죽으면 마지막으로 그 아이템을 먹은 곳에서 게임이 다시 시작된다. 직전 상태는 보존됨. Titus의 게임들은 다 직전 상태를 보존해 준다.
점수: 존재하지 않음

시체: 주인공이나 몬스터나 다 죽으면 수직 점프를 한 후 화면 아래로 떨어져 사라진다.
비고:: hit point를 회복해 주는 아이템이 있는데, 체력이 full로 꽉 차서 더 회복할 게 없는 상태에서 그걸 먹으면 보너스 점수가 올라간다. 그리고 이 보너스 점수가 일정 한도에 다다르면 목숨을 하나 더 추가해 준다. 폭스 이외의 게임에서는 본 적이 없는 재미있는 시스템이다.

총평: 10개가 넘는 레벨이 있는 걸로 아는데, 퍼즐이 블루스 형제보다도 굉장히 어렵다. 본인은 레벨 5 정도에서 이미 GG. 위에서 언급했듯이 shield 모드가 없어서 더욱 어렵게 느껴지기도 한다.

Posted by 사무엘

2010/08/16 09:06 2010/08/16 09:06
, , , , , , ,
Response
No Trackback , 11 Comments
RSS :
http://moogi.new21.org/tc/rss/response/349

C 언어 표준 라이브러리에는 잘 알다시피 배열 데이터에 대해서 간단한 검색과 정렬 알고리즘을 구현해 놓은 함수가 존재한다.
정렬을 수행하는 qsort()가 대표적인 예이고, 이미 정렬된 배열에 대해서 이분 검색을 수행하는 bsearch()도 유용하다.

이들 검색과 정렬 함수는 비슷한 형태의 인자를 받아서 동작한다. 배열을 가리키는 포인터, 각 원소의 개수와 크기, 그리고 찾고자 하는 원소의 값, 그리고 비교 함수의 포인터이다. 비교 함수는 두 원소의 비교를 수행하여 대소 관계를 리턴값의 부호 또는 0 여부로 알려 주어야 한다. 이렇게 함으로써 int든 float든 그 어느 자료형이라도 범용적으로 검색하거나 정렬을 수행할 수 있다.

그런데 C 언어는 이분 검색뿐만 아니라 선형 검색을 하는 함수도 제공한다. 찾는 원소와 같은 값이 나올 때까지 배열을 처음부터 끝까지 단순히 뒤지기만 하는 알고리즘 말이다. 동작 방식은 단순하기 그지없지만, 이분 검색과 더불어 그냥 일관성을 위해서 선형 검색도 함수로 표준화한 듯하다. 선형 검색이 받아들이는 비교 함수는 두 값의 대소 비교를 할 필요가 없이 두 값이 단순히 같으면 0, 그렇지 않으면 nonzero만 되돌려도 된다.

그런데 본인은 C 언어가 제공하는 선형 검색 함수의 형태를 보고는 놀라지 않을 수 없었다.

1. 이분 검색이 bsearch이니 선형 검색은 응당 lsearch일 거라고 본인은 생각했다. 그런데 선형 검색 함수는 _lsearch와 _lfind로 나뉘어 있고, 어찌 된 이유인지 함수 이름 앞에 밑줄이 추가돼 있다. 이분 검색과 정렬 함수는 stdlib.h에도 선언이 되어 있는 반면, 선형 검색 함수는 거기에 없으며 반드시 생소한 search.h를 인클루드 해 줘야 한다. 왜 이런 차이가 존재하는지부터 의문이다.

2. _lsearch는 원소를 찾아서 이게 배열에 존재하지 않으면, 그 원소를 배열의 끝에다가 추가를 한다. 따라서 이 함수는 매개변수만 올바르다면, 원하는 원소가 배열에 없다고 하더라도 NULL을 리턴하지 않는다. 그 반면 _lfind는 read-only 함수로, 원하는 원소가 없으면 NULL을 되돌린다. 그러므로 정확하게 bsearch 함수의 동작 방식만 선형 검색의 형태로 원한다면 _lsearch가 아닌 _lfind를 써야 한다.

3. bsearch와는 달리, 선형 검색 함수는 배열 원소의 개수를 넘겨주는 인자가 포인터형이다. 그것도 size_t도 아닌 unsigned int의 포인터이기 때문에 64비트 환경에서도 여전히 32비트 값 전달만 가능하다는 한계마저 그대로 지닌다. ㅜ.ㅜ 왜냐하면 _lsearch의 경우, 원하는 원소가 배열에 존재하지 않아서 그 원소가 배열 뒤에 추가되었을 경우, 배열 원소 개수를 1 증가시켜 주기 위해서이다.

그러나 배열 원소 추가를 하지 않는 _lfind라면 배열 원소 개수 인자가 포인터여야 할 필요가 전혀 없고 bsearch처럼 size_t 값을 그대로 받기만 하면 된다. 왜 _lfind까지 _lsearch처럼 그렇게 포인터를 받게 해 놓았는지 모르겠다.

Posted by 사무엘

2010/08/13 09:18 2010/08/13 09:18
,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/347

« Previous : 1 : ... 181 : 182 : 183 : 184 : 185 : 186 : 187 : 188 : 189 : ... 215 : Next »

블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Site Stats

Total hits:
2686526
Today:
1001
Yesterday:
1316