« Previous : 1 : ... 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : ... 13 : Next »

* 에구. 나 완전 고전 게임 덕후 인증이다. ㅎㅎ

1.
옛날의 액션/아케이드 게임 중에는 주인공을 죽게 하는 각종 트랩들이 적(몬스터)에게도 동일하게 적용되는 게 있고, 그렇지 않은 게 있다. 동일하게 적용되는 게 더 공정하고 현실 고증에 더 충실한 시스템이겠지만, 그 경우 적의 AI를 더 똑똑하게 만들어야 게임성이 성립할 테니 개발자에게는 더 큰 난관이 된다. 안 그러면 적을 정당하게 싸워서 죽이는 게 아니라 AI 헛점을 이용해서 트랩으로 죽이는 꼼수가 너무 횡행하여 게임 밸런스가 무너질 것이다.

이런 한계로 인해 id에서 개발한 둠, 퀘이크 등의 몬스터는 용암이나 화학 용액 같은 데에 들어가도 체력을 잃지 않으며 물에 들어가도 익사하지 않는다. 그 대신 잘 알다시피 자기끼리 팀킬을 벌이는 몬스터 내전(monster infighting)이 있을 뿐이다. 둠에서는 몬스터들이 정말 무식한지라 내전이 정말 잘 벌어졌지만, 퀘이크에서는 몬스터와 주인공 사이에 다른 몬스터가 일직선으로 있을 때는 공격을 안 하게 일말의 AI 개선이 이뤄졌다.

위험한 데이브에서는 몬스터는 트랩 같은 건 쌈싸먹으며 잘만 날아다니고..
과거의 툼 레이더 게임들은 주인공이 혼자 트랩 퍼즐을 풀어야 하는 구역과 몬스터와 싸우는 구역을 완전히 철저하게 분리하여 논란의 여지를 차단한 사례에 가깝다.
Rick Dangerous 2는 이 점에서 독특하다. 몬스터도 미사일, 전깃줄 같은 트랩에 걸리면 얄짤없이 죽을 뿐만 아니라, 이렇게 죽이는 게 전기총(50점), 폭약(100점) 같은 주인공의 일반적인 공격으로 죽이는 것보다 점수도 더 높게 준다(150점).

자, 서론이 너무 길어졌는데.. 페르시아의 왕자는 잘 알다시피 로토스코핑 기법으로 스프라이트를 만들었을 정도로 극도의 현실성을 추구한 게임이다. 악당도 딱히 초현실적인 괴물이 아니라 그저 검을 든 똑같은 인간이며, 이들을 상대로도 가시와 톱날 같은 트랩은 똑같이 동작한다. 악당 역시 트랩에 걸리면 피투성이가 되어 끔살당한다.

악당을 죽이는 방법으로는 (1) 칼 공격으로 HP를 다 깎아서 죽이는 가장 평범한 방법 외에도,
(2) 2층 이상의 높이에서 추락사시키기. 주인공은 이 경우 HP 하나만 잃지만, 악당은 의외로 즉사한다. 그 대신 악당은 1층 높이에서 떨어졌을 때 주인공처럼 무릎을 굽혀 엎드리지 않으며 바로 자세를 잡는다. 일당일단? 그리고 악당이 지금보다 아래 화면으로 떨어진 경우, 시체가 남지 않는다.
(3) 가시 꼬챙이가 있는 곳으로 떨어뜨리기. 한 층 높이에서만 떨어져도 주인공이든 악당이든 다 죽는다.
(4) 허리 자르는 쇠톱날.. 더 이상의 자세한 설명은 생략한다.

악당을 죽이고 나면 '빰 빠밤 빰' 하면서 승전 멜로디(?)가 흘러나온다. 칼로 찌르든, 떨어뜨리든 어떻게 죽이든지 말이다.
그런데... 페르시아의 왕자에서 악당을 (3)번, 즉 가시에다 밀어넣어 죽인 뒤에 승전 멜로디를 들은 적이 있으신 분 손..??
난 한 번도 없다. 20년 전부터 지금까지 이걸 대수롭지 않게 여기고 넘어가곤 했는데, 갑자기 문득 이상한 점이 느껴진다.

페르시아의 왕자 레벨에서 악당을 (3)번처럼 죽이는 건 레벨 2, 4, 8, 9(두 번), 11에서 총 6군데가 가능하다. 특히 마지막 레벨 11의 경우, 아예 왼쪽과 오른쪽에 모두 가시 트랩과 절벽이 존재하니 악당을 재미있게 요리하는 맛이 더욱 쏠쏠하다.

사용자 삽입 이미지사용자 삽입 이미지
사용자 삽입 이미지사용자 삽입 이미지
사용자 삽입 이미지사용자 삽입 이미지

악당을 정상적인 (1)번 방식으로 죽였을 때는 승전 멜로디가 무조건 나온다. (2)나 (4) 같은 트랩으로 죽였을 때는 아주 가끔 음악이 안 나오기도 했던 것 같다.
그 반면 (3)은... 지금까지 한 번도 나온 적이 없었다.
어떤 방식으로 죽든 악당의 HP가 0이 되어 전투가 끝나고 주인공이 칼을 집어넣을 때 승전 멜로디를 연주하면 될 텐데.. 로직을 상황별로 다 따로 처리했나? 그리고 저기서만 if문이 하나 실수로 빠진 건지? 진실은 그 당시 코딩을 했던 프로그래머만이 알 수 있을 것으로 보인다.

2.
자, 이제부터는 가시 말고 톱날 얘기가 줄곧 나올 것이다.
페르시아의 왕자의 일부 던전에는.. 톱날을 통과해 들어간 뒤에 곧바로 칼을 뽑고 악당과 싸워야 하는 곳이 있다. 레벨 4에서 처음으로 등장한다.
그런데 적과 싸우기 시작했을 때는 게임 진행이 조금 느려지고, 심지어 톱날의 톱질 주기도 약간 길어지는 것 같다.

이것은 시스템 성능 같은 다른 외부적인 문제일 뿐, 게임 메카닉 자체가 느려지는 건 아니다.
페르시아의 왕자는 참 좋은 게, ESC를 눌러서 게임을 일시 정지시키고 나서 계속 ESC를 누르면 게임을 한 프레임 단위로 천천히 진행시킬 수가 있다.
이걸로 측정을 해 보면, 톱날의 톱질 주기는 언제나 15프레임으로 동일하다. 전투 중일 때든, 평시든 말이다.

그리고 심지어 톱날이 여러 개 연달아 동작할 때도 동일하다.
각각의 톱날이 한 번씩 연달아 톱질한 뒤에 첫 톱날의 다음 주기가 시작되기 때문에 주기가 좀 길 것처럼 느껴지기 쉬운데, 그렇지 않다.

원작 게임에서야 톱날이 한 층에 가장 많이 등장하는 게 레벨 3의 대형 물약이 있는 방이다. 3개짜리가 최다이다.
유튜브 같은 데서 톱날이 5개가 넘게 있는 이상한 방을 가 보면, 모든 톱날들이 15프레임 안에 한 번씩 순회를 하는 게 불가능하다. 이런 데서는 뒤쪽의 톱날이 미처 톱질을 하기 전에 15프레임을 다 채운 앞쪽 톱날이 또 톱질을 시작한다.
게임 메카닉이 이러하다는 걸 알 수 있다.

3.
또한, 톱날은 주인공이 톱날과 같은 층에 진입한 경우 곧장 동작한다.
그런데 주인공이 그 층에서 다른 이유로 인해 죽어 버리면, 톱날은 일반적인 경우 동작을 멈춘다. 가령, 그 층에 있는 악당과의 전투에서 져서 죽거나, 칼을 뽑지 않은 상태에서 악당의 칼빵을 맞아 죽은 경우 말이다. 톱날이 있는 층에 주인공이 추락사를 했다면 톱날은 역시 더 동작하지 않는다.

하지만 주인공이든 악당이든 누군가가 그 톱날 자체에 찍혀 죽었다면 톱날은 계속 동작한다. 다시 말해 누군가를 한번 죽인 적이 있는 톱날은 그 층에서 주인공이 추락사하든 악당의 칼에 맞아 죽든, 주인공이 그 층에 어떤 형태로든 있다면 계속 동작한다.

사용자 삽입 이미지
내가 치트까지 써 가면서 다양한 상황에서 테스트를 해 보니 대략 그러하다. 알고리즘 차원에서 이런 미묘한 차이도 존재한다는 게 흥미롭지 않은가?

4.
그리고.. 주인공이 톱날이 존재하는 층에 있긴 한데, 추락하느라 잠시 지나는 형태라면 톱날은 어떻게 동작할까?
톱날은 이때도 반응한다. 레벨 9에서는 심지어는 주인공이 아니라 악당이 떨어지는데도 톱날이 한번 동작하니, 참 놀랍지 않을 수 없다. 아래 그림을 보시라.

사용자 삽입 이미지

그 반면, 주인공이라 해도 이렇게 지나갈 때는 톱날이 동작하지 않는다. megahit 치트를 써서 천천히 떨어지게 하는 낙하산 효과를 줬는데도 톱날이 동작하지 않는다.

사용자 삽입 이미지사용자 삽입 이미지
이런 걸 보면, 톱날의 동작 여부에는 우리가 흔히 생각하는 것보다 더 복잡한 로직이 들어간 건지도 모른다. 심지어 던전의 지형별로 톱날의 동작 여부를 제어하는 메타데이터가 수작업으로 들어간 건 아닌지?

5.
아까도 잠깐 얘기했던 레벨 3으로 돌아간다. 여기는 알다시피 최대 HP를 늘려 주는 대형 물약이 있지만, 그 길목을 저렇게 톱날이 무려 3개가 가로막고 있다.

사용자 삽입 이미지

페르시아의 왕자에서 레벨 3은 중간 waypoint가 존재하는 유일한 레벨이기도 하다. 죽으면 얄짤없이 처음부터 시작하는 게 아니라, 타임어택 절벽 관문은 통과한 뒤의 시점부터 시작한다는 뜻. 페르시아의 왕자 2야 각 레벨이 워낙 방대해진 관계로 waypoint가 존재하는 레벨이 더 생긴 편이지만, 1에서는 레벨 3이 유일했다.

레벨 12에도 그림자 인간과 합체하고 나서 Jafar를 만나기 직전 위치에 일종의 waypoint가 있긴 하지만, 이건 내부적으로는 완전 별도인 레벨 13으로 간주된다. 그렇기 때문에 레벨 3의 waypoint와는 약간 성격이 다르다.
관문을 통과하기 전에 대형 물약을 먹었다면, 그렇게 해서 늘어난 HP도 다음에 waypoint에서 게임을 다시 시작할 때 반영된다.

그런데, 여기에 약간의 버그 내지 exploit가 있다.
waypoint에서 게임을 다시 시작하면, 레벨 3의 모든 요소들이 원래대로 되돌아간다. 딱 하나, 그 타임어택 절벽 관문의 한쪽에서 우리가 도움닫기를 위해 밟아 떨어뜨려 없애던 발판만 계속 없는 채로 남아 있다.

그것만 빼고 나머지는 전부 원상복귀. 심지어 타임어택 절벽을 넘기 전에 먹었던 대형 물약도 다시 생긴다.
그렇기 때문에 다음 레벨로 넘어가는 관문을 열고 해골도 처지한 뒤, 다시 그 방으로 돌아와서 대형 물약을 먹으면.. 이론적으로 레벨 3에서 대형 물약을 두 번 먹어서 HP를 2개나 확장하는 게 가능해진다.

레벨 3 시작 → 대형 물약 → 타임어택 관문 통과 → 그 뒤 Ctrl+A 눌러서 waypoint 지점부터 게임 재시작. 예전에 대형 물약 먹은 게 반영됨 → 되돌아와서 대형 물약 또 먹음 → 클리어

물론 실제로 이렇게 하는 건 시간이 너무 많이 걸리는 노가다이기 때문에 현실성은 별로 없지만..
이건 아마 조던 메크너(오리지널 게임 설계자, Apple II용 개발자)와 랜스 그루디(도스용 게임 포팅 개발자)조차 그 당시 예상을 못 했던 꼼수일 것이다.
차라리 waypoint 이후에 도달하는 위치에다 대형 물약을 놔 뒀다면 이런 exploit가 틈탈 여지가 없었을 텐데.

자, 이런 글을 보니 나도 도스박스 깔아서 페르시아의 왕자를 실행해 보고 싶은 생각이 드시지는 않는가?

Posted by 사무엘

2014/06/29 08:21 2014/06/29 08:21
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/979

1.
아래아한글의 역대 버전 중, 96과 97은 실행되면서 스플래시 화면이 나올 때 짤막한 효과음(음악 멜로디)이 나오던 전무후무한 버전이었다.
96은 경쾌한 사과나무.wav (도~~ 미파솔..로 시작하는)이었고 97은 그것 말고도 여러 종류의 음향이 더 추가되었다. 물론 워디안 이후 후대부터는 그런 것 없고. 이런 것도 다 일시적인 유행이었다.

오늘날은 아예 Windows조차도 8부터는 로그인 로그아웃 소리가 없어졌다.
먼 옛날 3.x 시절에 사운드 카드가 지원된 이래로, 시작 효과음은 그 유명한 tada.wav부터 시작해 뭐가 들어가도 들어갔는데.. 완전히 없어진 건 8이 처음이다.

응용 프로그램을 실행하는 게 옛날만치 그렇게 막 유세 떨 일이 아니게 되어서 그런 것 같다.
설치 프로그램이 원래 전체 화면을 차지하는 형태이다가 조그마한 마법사 대화상자로 바뀐 것도 비슷한 맥락일 것이고 말이다.

2.
지금이야 MS Office 제품들이 리본 UI를 사용하여 인터페이스가 여타 프로그램과는 완전히 다른 형태로 바뀌었지만..
먼 옛날, Office 95 시절이 문득 생각난다.
Windows 95의 출시에 맞춰서 완전히 32비트로 포팅된 첫 버전이었으며, 동시에 Office가 운영체제의 표준 메뉴 인터페이스를 사용하던 마지막 버전이었다.
다만, 약간의 애드립이 생각지 못한 곳에 있었는데.. 아래 스크린샷에서 프로그램 상단의 타이틀/캡션 바 영역을 보시라.

사용자 삽입 이미지

Office 95 프로그램들은 처음이자 마지막으로 캡션 바를 자체적으로 그렸다.
그래서 Microsoft는 그냥 일반 폰트가 아니라 그 당시 쓰이던 MS 로고타입 형태 그대로 그려졌으며, 검은색에서 짙은 군청으로 바뀌는 그러데이션이 적용되어 있었다.
잘 알다시피, 캡션 바에 그러데이션이 추가된 것은 윈도 98부터이지 95엔 아직 그런 게 없었다. 응용 프로그램이 WM_NCPAINT를 처리하여 직접 그렸던 것이다.

정말 일시적인 유행이었지만 그 시절에 외국 프로그램 중엔 캡션 바를 이 스타일을 따라 그렸던 프로그램도 소수 있었다.

3.
사실 Windows는 GUI 외형이 Mac OS에 비해 매우 단순한 편이었고, 그 대신 색상을 다양한 스타일로 지정할 수 있었다.
그러던 것이 XP 이후부터는 큰 변화가 생겼다. Luna 테마는 파랑-은색-황록이라는 세 색상표만 지원했고, Vista부터는 Aero 창틀의 색깔만 사용자 지정이 될 뿐 나머지 색상은 고정 불변이 됐다. 예전의 재래식 외형은 '고전 테마'라는 legacy로 전락했다.

시스템 색상을 customize할 일이 없어졌다. GetSysColor 함수는 원래 수십 가지의 색상 요소들을 제공하지만 응용 프로그램은 사실상 COLOR_WINDOW(TEXT), COLOR_HILIGHT(TEXT), COLOR_BTNFACE 같은 것밖에 사용할 일이 없어졌다. 그리고 사실은, 선택된 아이템을 표시할 때도 COLOR_HILIGHT나 반전(InvertRect)이 아니라 엷은 파랑 효과를 쓰는 게 유행이 됐다.

옛날에 Microsoft Plus! 같은 확장팩이 제공했던 '테마'들은 색상, 마우스 포인터, 효과음을 한데 모은 세트였지만.. 지금은 Windows도 맥 OS처럼 어찌 보면 사용자 선택의 폭을 좁히고 있다. 지금의 외형 자체가 곧 Windows의 정체성과 같다는 점을 더욱 내세우려는 것 같다. 색상표는 이제 사실상 시각 장애자 내지 전력 절약용으로나 의미가 있는 '고대비'밖에 안 남았다.

4.
Windows는 파일/디렉터리 목록을 이름 순으로 정렬해서 표시하더라도 디렉터리(폴더)와 파일은 따로 분류해서 보여주는 반면, Mac OS는 이들을 다 한데 섞어서 보여준다. 디렉터리도 특수한 형태의 파일로 볼 것이냐, 아니면 아무래도 파일과는 개념적으로 다른 존재로 보느냐의 차이 같다.
또한 마우스 휠을 인식하는 대상도 Windows는 키보드 포커스를 받고 있는 창이지만, Mac은 마우스 포인터가 놓여 있는 창이다.

참, 맥OS는 메뉴나 대화상자에 액셀러레이터 키가 전혀 없는 게 굉장히 뜻밖이다.

5.
유튜브나 스마트폰의 동영상 재생 앱 등... 요즘은 이게 유행인지 모르겠지만
대부분의 멀티미디어 재생 컴포넌트들은 Pause(||) 버튼만 있지, 완전 정지 Stop(■) 버튼이 없다.

파일을 열었으면 나중에 반드시 닫아야 한다는 프로그래머스러운 사고방식에 사로잡혀 있는 본인 같은 사람에겐 그런 디자인이 심리적으로 좀 불안하게 느껴지기까지 한다. 정말 Stop이 없어도 될까? 굳이 프로그래머가 아니더라도 옛날 카세트 및 비디오 테이프 재생기 역시 기계적인 특성 때문에 Pause와 Stop은 성격이 상당히 다르기도 했고 말이다.

하지만 리소스 제약 같은 걸 생각하지 말고, 사용자의 입장에서 오로지 틀고 싶을 때 틀고 끄고 싶을 때 끄는 것만 생각하면, 원론적으로야 둘을 굳이 구분할 필요가 없긴 해 보인다.

6.
top-to-bottom과 bottom-to-top이 헷갈릴 때가 종종 있다.
당장 좌표계만 해도 수학에서는 아래에서 위가 y축의 양의 방향이지만.. 컴퓨터 화면에서는 위에서 아래가 y축의 양의 방향이다.

Windows에는 spin, 혹은 up-down이라고 불리는 컨트롤이 있다.
얘는 언제나 위에 있는 ▲ 버튼 혹은 위(↑) 화살표 키를 눌렀을 때 숫자를 증가시키고, 그 반대의 조작을 하면 숫자를 감소시킨다.
안타깝게도 이 동작을 정반대로 바꾸는 방법은 없는 듯하다. 컨트롤의 동작을 교묘하게 서브클래싱하지 않는 이상 말이다.

저 컨트롤은 <날개셋> 한글 입력기의 제어판에서 입력 항목의 배열 순서를 바꾸는 용도로도 쓰이는데..
입력 항목들은 위에서 아래로 오름차순으로 배열되어 있다.
그래서 ↑가 아니라 ↓를 눌렀을 때 숫자가 증가하고 아래로 가게 하고 싶으나 그렇게는 못 하고 있다.
이건 솔직히 사용자를 굉장히 헷갈리게 만들 수도 있는 면모이다.

사용자 삽입 이미지

이 외에도, 노트북의 터치패드를 손가락으로 상하 드래그를 했는데, 위에서 아래로 그었을 때 화면을 위에서 아래로 스크롤시킬지, 반대로 아래에서 위로 스크롤시킬지도 보통은 옵션으로 존재한다.
본인이 선호하는 건 위에서 아래로 그었을 때 화면은 아래에서 위로, 즉, 아래 페이지의 내용을 표시하는 것이다. ↓ 키를 눌렀을 때와 같다. 손가락은 전체 내용에 대한 화면(view)의 상대적인 위치와 같은 것이다.

그러나 손가락의 위치를 지금 표시되어 있는 텍스트의 상대적인 위치와 같은 것으로 본다면.. 소프트웨어의 동작은 저것과는 반대가 되어야 직관적일 것이다. 결국 이것은 사람마다 취향이 다른 답이 없는 문제이다.

Posted by 사무엘

2014/02/15 08:26 2014/02/15 08:26
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/931

고전 게임 페르시아의 왕자에 대해서 더는 글을 쓸 일이 없을 것 같았는데 또 하나 글을 쓰게 됐다.
지금까지 까맣게 잊고 지냈던 게임 중 이벤트가 하나 갑자기 떠올랐기 때문이다.

잘 알다시피 페르시아의 왕자에는 주인공의 영혼(?)이 빠져나가는 듯한 이상한 이벤트가 있다.
레벨 4에서 클리어 관문을 열고 나오면 거울이 하나 생겨서 길을 가로막는다.
이 거울을 도움닫기 점프로 깨뜨리면 진행은 가능해진다. 하지만 이때 자기 영혼 내지 그림자? 도플갱어가 빠져나가고 그 과정에서 왕자는 HP가 1로 다 깎여서 죽기 직전의 상태가 된다.

도플갱어의 정체가 무엇인지, 제작자 조던 메크너가 무엇을 의도하고 이런 걸 넣었는지는 모르겠다.
다만, 이 도플갱어가 왕자에게 하는 짓은 결코 호의적이지는 않다.
레벨 6에서 뚱보를 죽인 뒤에 벼랑을 앞두고 서로 만났을 때는, 도플갱어가 문을 쾅 닫아서 왕자를 벼랑 아래로 빠뜨려 버린다.

그 뒤로 도플갱어는 한동안 등장하지 않다가 게임이 끝날 때가 다 된 레벨 12의 꼭대기 층에서야 등장한다. 원수진 것 때문에 서로 칼을 뽑고 대적하지만 그래도 성질 죽이고 칼을 집어넣고 서로 합체를 해야 살 수 있다. 재결합을 한 뒤에는 보상 차원에서인지 전체 체력이 1 증가된다.

이 글에서는 그 전에 레벨 5에서 발생하는 이벤트에 대해서 좀 분석을 해 봤다.
레벨 5에는 전체 체력을 1 늘려 주는 대형 물약이 있다. 그러나 이것은 우리 왕자가 먹을 수 없다. 도플갱어가 먼저 와서 진짜 말 그대로 정확하게 '먹튀'해 버리기 때문이다. 그게 무슨 말이냐고?

사용자 삽입 이미지

자, 옛날에 페르시아의 왕자를 해 본 경험이 있는 분이라면 옛날 생각이 나실 것이다.
1층과 3층에 문이 있는데 물약이 있는 3층 문은 닫혔기 때문에 낮은 1층으로 먼저 들어가야 한다.
1층 문을 진입하는 순간, 발판 때문에 문은 쾅 닫힌다. 왔던 길로 못 돌아간다. 미우나 고우나 “들어올 때는 마음대로였겠지만 나갈 때는 아니란다” 상태가 되고, 어떻게든 저 무시무시한 왕복 톱날 2개를 통과하여 물약을 먹으러 가야 한다.

톱날을 통과하면 곧장 1층과 3층 문을 모두 여는 발판이 우리를 기다리고 있다.
그런데 3층 문이 열리자마자 3층에서는 왕자의 도플갱어가 갑자기 튀어나와서 물약을 쳐묵쳐묵 한 뒤 달아나 버린다.
톱날을 지나면서 힘들게 묘기는 우리가 다 했는데 갑자기 저 녀석이 소중한 물약을 먹튀하다니..

일단, 맵의 디자인이 굉장히 교활하게 돼 있다는 걸 부인할 수 없다.
문을 여는 발판이 하나만 있어도 될 게 굳이 2개씩이나 있다. 왼쪽 것과 오른쪽 것 중에 오른쪽 것은 3층으로 올라가는 과정에서 무조건 밟지 않을 수가 없다. 둘 중 어느 것을 밟더라도 1층과 3층 문이 모두 열린다. 그리고 3층이 열리는 순간 왕자가 미처 3층으로 다 올라가기도 전에 도플갱어가 먼저 달려온다..

결국, 왕자가 3층으로 올라갈 때까지 저 문이 최대한 늦게 열리게 하려면..
두 발판을 밟지 않은 상태에서 왕자가 두 발판을 사이에서 오른쪽이 아닌 왼쪽을 보고 있는 상태를 만들어야 한다.
이게 꽤 어렵다. 그래도 오른쪽의 둘째 톱날의 앞에 바싹 붙어 선 뒤, 오른쪽으로 점프를 하면 왼쪽 발판을 밟지 않고 양 발판의 사이에 설 수 있다.

그 상태에서 3층으로 올라감과 동시에 3층 문이 열리게 하면 그나마 시간을 최대한 벌 수 있으나..

사용자 삽입 이미지

그래도 우리가 도플갱어보다 먼저 물약에 닿는 것은 여전히 불가능하다. 최선을 다해도 결국 위와 같은 차이가 난다는 것을 알 수 있었다.

그 다음으로 본인이 시도한 것은, 3층 문을 열어서 도플갱어가 들어올 때쯤 도로 1층으로 내려가서 문을 닫아 버리는 것이었다. 1층의 닫힘 발판은 1층 문뿐만 아니라 3층 문까지 한꺼번에 닫기 때문이다.

그런데 이것도 엄청나게 어렵다. 아까 저 그림처럼 3층 문을 열지 않은 상태에서 왼쪽을 보고 있는 상태를 먼저 만들어야 하는 데다, 거기에다 추가적인 묘기가 더 필요하기 때문이다.
준비됐으면 발판을 밟아서 3층 문을 연 뒤, 정확한 타이밍을 노려서 2개의 톱날을 도움닫기 점프로 한번에 통과하고 1층으로 떨어져서 닫힘 발판을 밟아야 한다! 타이밍이 안 맞으면 톱날에 찍혀 끔살당한다.

그래도 이것 역시 불가능한 일은 아니다.
그러나.. 그럼에도 불구하고..
악랄한 우리의 도플갱어는 닫힌 철문도 통과하고서 물약을 훔쳐 먹고 유유히 사라지는 걸 알 수 있었다.

사용자 삽입 이미지

이 정도면 정말로 답이 없고 불가능이긴 하다.

2중 톱날은 왕자의 진행 속도를 크게 낮추는 어려운 트랩이다.
레벨 8의 경우, 클리어 관문을 열기 위해서 2중 톱날을 왕복으로 통과해야 한다.
그러고 나니까 철문이 닫혀 있어서 꼼짝없이 갇혔는데, 이때 공주가 보낸 생쥐가 문을 열어 주는 게 원래의 설정이다.
하지만 잘 알다시피 2중 톱날도 아무 거리낌없이 통과하여 철문이 완전히 닫히기도 전에 자력으로 빠져나오는 것도 불가능하지는 않다. 유튜브에서 괴수들의 플레이 동영상을 보면 그런 게 있다.

사용자 삽입 이미지사용자 삽입 이미지
(생쥐가 굳이 출동할 필요가 없다!)

레벨 8에는 그런 플레이가 있는 반면, 레벨 5에서 도플갱어를 따돌리고 대형 물약을 먹는 데 성공했다고 하는 테크닉이나 플레이 동영상은 인터넷에 전혀 존재하지 않는다. 불가능한 일이기 때문이다.

MEGAHIT 치트를 써서 게임을 실행한 뒤, 도플갱어가 등장하는 장면에서 K(현재 화면에 있는 몹을 죽임)를 누르면 도플갱어가 사라진다. 이를 활용하면 레벨 5에서 대형 물약을 먹을 수 있게 되며, 레벨 6에서도 도플갱어가 있는 절벽 건너편으로 올라가는 것도 가능해진다. 하지만 이건 언제까지나 치트를 써서 만들어 낸 결과일 뿐이다.

참고로, 2007년에 나온 3D 리메이크작인 <페르시아의 왕자 클래식>은 이 시스템이 좀 개선되었다.
2층에서 3층 문을 열었다가 1층으로 잽싸게 되돌아와서 그 문을 닫아버리면, 도플갱어는 왔다가 물약을 못 훔치고 되돌아간다. 그래서 레벨 5에서도 대형 물약을 먹고 체력을 늘리는 것이 가능하다!
리메이크작은 톱날이 2개이던 것이 1개로 줄고 왕복 주기도 원작보다 훨씬 더 길기 때문에, 통과하기도 쉽다.

사용자 삽입 이미지

Posted by 사무엘

2014/01/21 08:32 2014/01/21 08:32
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/922

본인은 중학생이던 1996년 말, 친구 집의 컴퓨터를 통해 우연히 툼 레이더라는 게임을 접했을 때의 충격을 난 지금도 잊을 수 없다.
페르시아의 왕자 같은 파쿠르 액션이 full 3D로 구현되어 나오고 게다가 주인공이 듀크 뉴켐스러운 마초 근육맨이 아닌 아리따운 아가씨라니!
툼 레이더 시리즈는 전세계적인 히트를 쳤으며 게임 주인공인 라라 크로프트는 역사상 가장 성공한 사이버 모델이 되었다.
이번 글에서는 롤스로이스에 이어 또 '영국'이 만들어 낸(냈던) 명작에 대한 리뷰를 좀 써 보겠다.

본인은 예전에도 몇 차례 글을 썼듯이, 비디오 게임의 역사 중에서 3차원 그래픽 기술이 막 도입되던 1990년대 중· 후반의 과도기가 가장 흥미진진한 시절이었다고 생각한다.
id 소프트웨어의 엔진이 울펜슈타인, 둠, 퀘이크를 거치면서 발전해 가던 시절,
2.5D와 완전한 3D 사이의 과도기이던 켄 실버맨의 빌드 엔진을 쓴 게임(듀크 뉴켐, 섀도우 워리어),
목각인형에서 진짜 사람으로 발전하던 버추어 파이터 시리즈,
실사 사진을 쓰다가 최초로 3D 폴리곤으로 바뀐 모탈 컴뱃 4 등등 말이다.

그런 맥락에서 툼 레이더도 예외가 아닌 것이다.
안 그래도 엔하위키나 한국어 위키백과는 각 시리즈 별 설명이 부실한 편이기도 하니 한번쯤 이런 내력을 나열해 보는 것도 흥미롭지 싶다.

사용자 삽입 이미지

※ 1

그야말로 전설이 아닌 레전드를 창조한 첫 작품이며, PC 플랫폼은 처음이자 마지막으로 도스를 지원했다. 눈이 종종 쌓여 있는 숲, 광활한 고대 유적지, 피라미드 등을 돌아다니면서 말 그대로 묘지를 터는 본분에 충실한 형태였다. 몹 중에 인간은 흔치 않았던 걸로 기억하며, 혼자서 퍼즐을 풀어 나가는 비중이 컸다.
1부터 3까지는 같은 엔진 기반으로, 그래픽이나 게임 진행이 그렇게 큰 차이가 없다.

※ 2 (starring Lara Croft)

1이 대성공을 거둔 뒤, 2부터는 도스 대신 Windows용으로 나오기 시작했다. 2는 1에 비해 폴리곤 수가 늘어서 라라가 아주 약간 더 예뻐졌으며, 기술적으로 무리였던 팔랑거리는 말총머리가 드디어 구현되었다.
그리고 동적 광원을 구현하면서 flare(섬광탄) 아이템이 첨가되었다. 그리고 물에는 언제나 수영만 있던 것과 달리 얕은 물에서 걷는 wading이 추가되었으며, 암반을 오르는 climbing이 추가되었다.

2는 첫 시작을 만리장성에서 하고, 결말부에서 최종 보스도 용일 정도로 배경에 중국에 대한 비중이 가장 높다. 1보다 대인 전투의 비중이 높아졌으며 무덤 말고 도시, 선박 등 인간이 만든 시설도 많이 등장한다. 무기는 샷건뿐만 아니라 M16 소총, 작살총도 추가되었다.
보트나 스노우모빌 같은 탈것을 이용하는 동작도 처음으로 추가되었다. 생각해 보면, 주인공이 탈것을 이용할 수 있는 아케이드 게임은 매우 드물다. 용 정도나 타는 옛날 황금도끼 말고 딴 게 뭐 있었던가??

※ 3 (라라 크로프트의 모험)

3은 2와 같은 맥락으로 더 큰 변화가 이뤄졌다. 그래서 단순한 유적지 털기라는 타이틀이 무색할 정도로 전세계 방방곡곡을 배경으로 한 액션 어드벤처로 바뀌었다. 덕분에 게임 배경이 역대 툼 레이더 시리즈 중 가장 넓어서 인도, 남태평양 섬, 남극, 미국 AREA 51, 런던 자택 근처가 레벨로 모두 등장한다. 그리고 각 레벨별로 라라의 복장도 가장 다양해졌다. 지역별로 레벨 플레이 순서를 사용자가 임의로 선택할 수 있는 시스템도 3이 역사상 전무후무하게 갖추고 있었다.

기술적으로 보자면 라라에게는 그냥 달리는 게 아니라 기력을 소비하면서 잠시 동안 전력질주를 하는 sprinting이 추가되었으며 엎드리기(crouching), 천장을 잡고 건너기 같은 동작이 추가되었다. 그래픽이 개선된 건 총기 격발 후에 발생하는 탄피와 연기 흔적, 그리고 물에서 나타나는 특수효과가 일부 개선된 정도다. 슬슬 엔진의 약발이 다할 때가 되고 있었고, 라라 팬으로부터 불만도 들어오고 있었다. 3이 이룬 것은 같은 시스템 하에서 단순 양적 팽창 위주일 뿐이었으니 말이다. 그래서 다음 편부터는 시대에 맞추어 엔진이 교체되었다.

※ 4 (마지막 계시)

프로그램이 처음부터 싹 다시 개발되었다. 시작 화면, GUI 글꼴 같은 게 전부 바뀌었다. 여권 수첩 형태의 메뉴나 동그란 고리 형태로 나오던 인벤토리 링도 다 없어졌다.
4는 오로지 이집트 주변만 공략하여 순수하게 유적지 털기 미션으로 되돌아갔으며, 라라의 의상도 시종일관 기본 단일 복장으로 바뀌었다. 그렇잖아도 툼 레이더 4가 나온 1999년은 <미라>(Mummy)라는 영화가 인기를 끌었던 해이기도 해서 더욱 이집트스러운 기억이 깊게 남아 있다.

4는 엔진이 교체되면서 그래픽이 예전보다 대대적으로 향상되었다. 드디어 모든 텍스처에는 하이컬러 안티앨리어싱이 적용되기 시작했고 라라의 외형도 더욱 매끄럽고 예뻐졌다. 복잡한 지형에서 발생하던 1~3 엔진 특유의 그래픽 glitch가 거의 다 사라졌다. 3에서 바뀌었는지 4에서 바뀌었는지 모르겠지만 어쨌든 아이템이 여전히 2D 스프라이트로 표현되던 것들도 드디어 순수 폴리곤으로 바뀌었다.

4에서는 예전 시리즈에서 전통적으로 등장하던 라라 저택 연습 미션이 없어졌고, 그 대신 게임 전반부에서 라라가 어렸을 때의 모습이 잠깐 나온다. 그리고 줄을 타고 오르는 동작이 추가되었으며 여러 아이템을 조립해서 새로운 아이템을 만드는 시스템이 도입됐다. 또한, 4는 역대 툼 레이더 시리즈 중 레벨 수가 가장 많고 플레이 시간이 가장 길었다고 한다. 그 중 열차 안에서 미션을 수행하는 사막 열차 레벨은 상당히 참신한 디자인.
이 게임의 엔딩은 라라가 죽는 걸(최소한 그걸 암시하는)로 끝난다. 왜 그 잘 나가는 캐릭터를 죽이는지, 시리즈를 벌써 종결지으려는 건지 제작사의 의도를 알 수 없는 대목이다.

※ 5 (크로니클 연대기)

1부터 5까지는 각각 1996년부터 2000년까지 1년 간격으로 그 해의 하반기에 제품이 출시되었다. 5편인 크로니클은 4편과 거의 같은 엔진 기반에 컨텐츠만 다르다. 라라 크로프트는 죽고 없는데 그녀가 살아 생전에 남긴 무용담을 회상하며 플레이한다는 설정. 그래서 3편만큼이나 다양한 복장으로 과거 유물과 현대 도시를 아우르면서 다양한 미션을 수행한다.

5는 이상한 설정으로 인해 예전 시리즈만 한 대박은 못 친 걸로 본인은 기억한다. 다만, 이때 제작사가 무슨 생각이 있었는지 상당히 대인배적인 조치를 취했는데, 바로 레벨 에디터를 게임과 더불어 공식 배포했다. 스타크래프트로 치면 걸출한 캠페인 에디터인 StarEdit인 셈.

덕분에 툼 레이더 4~5 엔진은 내가 알기로 역대 툼 레이더 시리즈들 중 단순 의상 패치 이상으로 full-featured custom 레벨 MOD가 존재하는 최후의 엔진이다. 그래서 인터넷엔 라라 크로프트 하앍하앍 하는 전세계의 양덕후들이 만들어 올린 custom 레벨 파일 및 플레이 동영상들이 즐비하다.
1~3 엔진은 에디터가 있다 하더라도 요즘 기준으론 그래픽이 너무 심하게 후져서 별로. 4~5 엔진 정도는 돼야 그나마 할 만하다.

※ 6 (어둠의 천사 AOD)

툼 레이더의 제작사인 코어 디자인은 라라 크로프트라는 희대의 대박 아이템이자 황금알 낳는 거위를 창조해 놓고는 영업이랄까 운영을 썩 잘했다고 볼 수는 없었다. 3에서 4로 넘어갈 때 좀 혁신을 한 걸 제외하면, 계속 같은 엔진과 게임 시스템만 지겹게 우려먹는 걸 좋아하는 편이었다. 그리고 배가 산으로 가는 듯한 스토리를 전개하며 4편에서 라라 크로프트를 덥석 죽여 버린 건 팬들의 원성을 사기에 충분했다.

그런 와중에 거의 3년간의 침묵을 깨고 툼 레이더의 다음 시리즈인 어둠의 천사가 나왔다. 시기가 시기인 만큼 기술은 분명 크게 발전했다. 물리 엔진이 도입되었고 라라의 손발 모션은 지형을 반영하여 더욱 자연스럽게 나오기 시작했다. 그래픽 디테일 레벨을 올리면, 그림자도 그냥 바닥에 시꺼먼 타원으로만 나오는 게 아니라 실제 광원과 라라의 체형대로 나오기 시작했다.

다만, 이 작품에서 라라 크로프트는 과거에 죽었다가 아무 개연성 없이 불쑥 살아서 돌아왔으며, 고대 유적지를 돌아다니는 묘지 도굴꾼 컨셉에서도 더욱 멀어졌다. 전통적인 복장 대신 군복과 청바지 차림으로 의상이 완전히 바뀌었다.
6은 기술의 진보는 분명 있었으며 국내에서는 툼 레이더 시리즈 중 최초로 완전 한글화가 되기도 했다. 하지만 저런 괴상한 정체성과 많은 버그들 때문에 완성도가 떨어지고 뭔가 핀트가 안 맞는 작품으로 전락했으며, 큰 성공을 거두지 못했다.

※ 7 (레전드)

툼 레이더의 본디 제작사이던 코어 디자인은 6 이후로 제작사 타이틀을 반납하고 그저 그런 게임 개발사로 남아 있다가 2007년쯤에 망했다. 그 뒤 툼 레이더의 개발은 영국이 아닌 미국의 크리스탈 다이나믹스로 넘어갔는데 얘가 툼 레이더 시리즈를 다시 물건으로 회복시켜 놓았다.

2006년 봄에 출시된 레전드는 툼 레이더의 '제2기' 시대를 열었다. 툼 레이더의 기본 복장이 되돌아왔으며 유적지 탐험 패턴도 복귀했다. 그러는 한편으로 조작도 다 뭔가 현대적인 감각으로 바뀌었다. 언제나 자동 세이브가 되고 굳이 별도의 키를 누르지 않아도 절벽에서는 자동으로 매달리는 등, 퍼즐 난이도는 예전보다 더 쉬워졌는데 이건 요즘 게임기용 게임들의 추세가 다 그런 게 아닌가 싶다.

레전드에 대한 반응은 전반적으로 좋았다. 하지만 예전하고는 너무 이질적으로 바뀐 게임 시스템에 대해서는 게이머들 사이에 호불호가 갈리기도 했다. 맨날 동료하고 얘기를 주고받는 것도 예전에는 없던 관행이었으니까.
아무튼, 이렇게 레전드로 희망찬 데뷔 선언을 한 크리스탈 다이나믹스는 그 이듬해에 Anniversary라고 불리는 시리즈도 내놓았다. 이것은 툼 레이더 1을 오늘날 스타일로 리메이크한 작품이다.

※ 8 (언더월드)

레전드의 명성을 계승한 후속 시리즈이다. 라라 크로프트가 배를 타고 세계 각지를 이동하면서 미션을 수행한다. 덕분에 레전드에 비해 잠수와 수영의 비중이 더 높다. 고전 복장은 사라졌으며, 그나마 이것과 가장 비슷한 복장은 태국 숲 미션에서 입는 까만 셔츠와 핫팬츠 복장이다.

라라 크로프트의 집이 난장판이 되는 건 옛날에 2의 맨 마지막 레벨 Home Sweet Home에서 침략자들과 총격전을 벌이는 게 전부였는데... 이번 언더월드에서는 첫 미션에서 집이 불바다가 되는 걸로 시작한다. 그래서 집에서 겨우 빠져나왔는데.. 이번엔 레전드 시절의 동료가 라라에게 무슨 원한이 생겼는지 권총을 쏴 댄다. 도대체 어찌 된 일일까? 다행히 원한을 살 만한 짓은 라라가 아니라 라라의 도플갱어의 소행으로 밝혀져 오해는 나중에 풀리지만... 스토리 전개가 재미있다.

도플갱어라.. 옛날에 1편에서 베이컨 라라가 있긴 했고.. 더 옛날 고전 게임 중엔 페르시아의 왕자 1에서도 왕자를 골탕먹이다가 나중에 합체하는 영혼 도플갱어가 있었다. 정말 별의 별 걸 게임에다 다 집어넣었다.

※ 9

자... 1996년 이래로 근 15년간 라라 크로프트를 쌍권총 찬 고고학자로 우려먹어 온 건 약발이 다한 모양이다.
크리스탈 다이나믹스는 5년간의 잠수 끝에, 이제 예전의 스토리를 다 뒤집어엎은 리부트작을 내놓았다. 이 작품은 1편과 마찬가지로 부제가 없이 이름이 그냥 툼 레이더이다.

라라는 더욱 어려졌으며, 도도한 특수요원 같은 이미지가 아니라 이제 막 생존술을 터득해야 하는 연약한 여고생/여대생 컨셉으로 바뀌었다. 어린 라라 떡밥은 지난 4편에서 잠시 등장한 적이 있지만 그걸 떠올려서도 물론 곤란하겠다. 예전의 라라가 인디아나 존스 컨셉이었다면, 지금의 라라의 위상은 거의 생존왕 로빈슨 크루소나 심지어 베어 그릴스-_-를 생각해도 될 것 같다.

9의 설정상 배경은 일본 열도 인근에 있는 어느 섬이다.
사실, 툼 레이더 시리즈에서 일본이 등장하는 것 자체가 코어 디자인 시절에는 없었고 크리스탈 다이나믹 때 레전드와 9에서 딱 두 번이었다. 코어 시절에 툼 레이더의 배경은 오히려 중국, 네팔, 티베트 같은 대륙이 더 자주 등장했었다.
중국과 일본 사이에 끼어서 한국은 영토가 너무 작기도 하고 게임이나 영화 같은 매체에 선뜻 등장하기에는 정치적 민감성도 크고 역시나 콩라인이라는 생각이 들었다.

그래픽이야 뭐, 피부에 핏자국이 묻고 각각의 머리카락들이 찰랑거리는 걸 볼 수 있을 정도로 사실에 가깝게 발전했다.
AOD에서 레전드로 넘어갈 때를 능가하는 엄청난 쇄신이 있었는데, 반응은 역시 좋은 편이다. 9 이후로 툼 레이더 시리즈가 과연 또 어떻게 변할지가 궁금해진다.

Posted by 사무엘

2013/12/07 08:32 2013/12/07 08:32
,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/906

Windows 8 사용기

나보다 훨씬 더 전부터 8을 사용해 오신 분들께는 전혀 새로울 게 없는 정보이겠지만 어쨌든.
Windows 8은 잘 알다시피 데스크톱 PC용 소프트웨어에다 모바일 컨셉을 최대한 융합시킨 형태로 만들어졌다. UI 상으로는 Ctrl+클릭이 아닌 일반 클릭(=일반 터치)만으로 아이템 개별 복수 선택이 가능하게 바탕화면 아이콘들에 체크 박스가 뜨는 변화가 눈에 띈다.
그런데 문제는 Windows는 모바일 컨셉을 아무 단절감 없이 갖다붙이기에는 20여 년의 짬밥을 자랑하는 legacy가 너무 많다는 것. 이를 잘 절충하는 것도 숙제라면 숙제였을 것이다.

그래서일까?
Windows와 마소 제품들은 XP 이래로 모든 GUI가 “각진 직선이건 것이 둥근 곡선으로, 무미건조하던 단색이던 것이 그러데이션으로”라는 트렌드를 따르고 있었는데..
8에서는 이 추세를 정면으로 뒤집은 단순한 복고풍 디자인으로 돌아갔다.
이건 전력 소비를 조금이라도 줄여야 하는 모바일 환경과의 조화를 염두에 둔 설계라고 그런다. 흠..
아이콘도 마찬가지로, Office, Visual Studio도 2012 버전은 아이콘 디자인이 다 초단순 형태로 바뀌었다.

IME들은 아이콘이 아예 흑백 컨셉 배색으로 파격적으로 바뀌었다. 모든 프로그램들이 IME와 한/영 상태를 공유하는 파격적인 기능이 추가되었으며, IME 아이콘과 상태 아이콘 딱 둘만 갖고 있게 단순화된 것은 TSF의 도입 이전 internat.exe 시절의 추억을 떠올리게 한다.

아울러, 프로그램 제목이 Windows 95/NT4 이래로 왼쪽 정렬이던 것이 가운데 정렬로 바뀐 것은 3.x 시절을 떠올리게 하기에 충분하다. 사실, 그 전의 1.x부터 3.x까지는 죄다 가운데 정렬이었기 때문이다.

또한 8은 메트로인지 뭔지 Modern UI 엔진을 얹느라 어쨌든 더 무거워졌을 텐데 그래도 비스타/7에 비해 체감상 딱히 무겁다는 느낌은 안 든다. 덩치에 비해 최적화를 잘 한 것 같다.
Modern UI 기반 앱은 전체 화면으로 동작하는 게 마치 예전의 도스용 프로그램들이 화면 해상도와 색상이 훨씬 더 향상된 채로 동작하는 것 같다.

단, 한 가지 이해가 안 되는 건, 과거 비스타/7의 Aero 컨셉이 완전히 폐기되었느냐는 것이다.
프로그램 창의 굵은 border에 비스타/7처럼 금속/유리 느낌이 드는 반투명 효과를 내는 기능이 없어지고 굵직한 입체 효과 그림자도 없어졌으며, 그저 투박한 solid color만 표시해 주는 걸로 일부러 바꿨는지? 비주얼에 관한 한 이건 좀 진보가 아니라 퇴보인 것 같다. 정발된 제품 말고 preview 버전에서는 반투명 효과가 여전히 있었던 것 같던데.
사실은 예제로 제공되던 테마와 배경 사진들의 수도 Windows 7 시절에 비해 오히려 줄었다.

또한 Windows 95/NT4부터 이어져 온 전통인 시작 메뉴가 없어지고, PC에 설치돼 있는 프로그램들을 리스트 형태로 한눈에 조회할 수가 없고, 심지어 컴퓨터를 끄는 방법도 직관적으로 찾을 수 없는 것은 아무리 새로운 디자인을 시도했다 해도 너무 이질적이고 과격한 것 같다. 실제로 Windows 8을 구했지만 이런 것 때문에 너무 불편해서 다시 7로 복귀한 사람도 주변에 심심찮게 보인다. 과거에 비스타 쓰다가 XP로 도로 복귀하던 사람들처럼 말이다.

나도 컴퓨터 끄는 명령을 못 찾아서 한동안 그냥 데스크톱 바탕 화면에서 Alt+F4를 누르곤 했다.
마우스로 화면 우측 하단을 가리킨 뒤, Settings를 고르고, Power, Shut down을 순차적으로 고르면 되긴 한데 예전 버전보다 접근하기 불편하긴 하다. 컴퓨터 사용을 끝내려고 하는데 왜 시작(Start) 버튼을 눌러야 하느냐는 전통적인 딴지를 의식한 디자인인 건지?

그리고 내가 쓰던 어떤 Windows 8은 팝업 메뉴가 전통적인 왼쪽 기준이 아니라 오른쪽 기준으로 완전 듣도 보도 못한 생뚱맞은 엉뚱한 방식으로 표시되곤 했다. 이건 R2L이 일상인 아랍 문화권에 대한 배려인지는 모르겠지만, 한국어나 영어밖에 볼 일이 없는 나 같은 사람한테는 전혀 필요하지 않은 쓸데없는 기능임. 구글링을 통해 문제를 해결해야만 했다. 다음 레지스트리 값을 1이 아닌 0으로 고친 후 계정 로그인을 다시 하면 된다.

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows → MenuDropAlignment

전반적으로는..
8은 분명 나쁘지는 않다. 허나 멀티터치가 지원되는 화면에서 Modern UI 앱을 즐겨 쓸 게 아니면, 굳이 7 잘 쓰던 걸 8로 바꿀 필요가 있나 하는 생각이 들기도 한다.

끝으로, 바야흐로 201x년대에 등장한 Windows 8에서도 여전히 버프를 못 받고 시간이 완전히 정지해 버린 듯이 보이는 legacy GUI 요소를 둘 보이고 글을 맺겠다.

1. MDI 창

사용자 삽입 이미지

안구에 습기가 찬다. 응용 프로그램의 border가 다 딱딱한 사각형으로 바뀐 마당에 MDI 프레임은 여전히 둥근 모서리 그대로이다. Windows Vista 이래로 코드가 하나도 고쳐진 게 없다는 뜻이다.

2. HTML 도움말

사용자 삽입 이미지

10~15년 전에 HTML 도움말이 처음 등장했을 때나 지금이나, 일단 프로그램 아이콘이 16색 그대로이다. 레지스트리 편집기와 더불어 아이콘이 고정불변인 극히 드문 프로그램에 손꼽힌다. -_-;;

그리고 HTML 도움말의 About 화면을 보면 연도가 2002년에서 멈춰 있음을 알 수 있다. 캐안습.
그래도 마소가 HLP와는 달리 CHM의 지원은 그렇게 섣불리 중단하지 못할 것이다. 운영체제 차원에서 이 정도로 완성도 높은 도움말 엔진을 제공해 줄 다른 대안이 없기 때문이다.

마소 역시 다른 모든 프로그램에서는 구닥다리 HTML 도움말을 버리고 다른 방식으로 도움말을 표시하지만, 레지스트리 편집기에서 F1을 누르면, 여전히 CHM 도움말이 HTML 도움말로 표시된다.
일반 사용자들이 즐겨 쓸 걸로 예상하지 않는 프로그램에 대해서는 UI를 대강 만들고 legacy 기술만으로 대충 때운다는 걸 알 수 있다.

Posted by 사무엘

2013/05/10 08:30 2013/05/10 08:30
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/828

여러 기호(또는 문장 부호)들 중에서 따옴표는 컴퓨터로 입력할 때 좀 유별나게 처리되고 다뤄지는 면모가 있는 문자이다.
일단 따옴표는 기호가 쌍으로 붙은 큰따옴표와, 하나만 있는 작은따옴표로 나뉜다. 전자는 어떤 발언을 직접 인용할 때, 그리고 후자는 발성이 타인에게 실제로 들리지는 않는 혼잣말이나 생각을 인용할 때 통상 쓰인다.

그러나 이런 물리적인 구분이 명확하지 않은 경우도 있다. 재미있는 것은, 따옴표로 둘러싸인 인용문의 내부에 또 인용문이 또 등장할 때는 물리적인 구분과는 무관하게 맞은편 따옴표가 작은→큰→작은..의 순으로 번갈아가며 쓰인다는 점이다. 또한 따옴표들은 완전한 문장이 아니라, 문장 내부의 특정 단어를 단순히 강조하는 용도로도 쓰인다.

따옴표는 괄호와 마찬가지로 열고 닫는 구분이 있다. 그러나 타자기나 컴퓨터의 글자판에는 괄호와는 달리 여닫는 따옴표가 따로 배당되어 있지 않다. 방향 구분이 없는 "와 '가 각각 큰따옴표와 작은따옴표의 역할을 대신한다.

텍스트 에디터는 코딩용으로도 쓰이고 키보드에 배당된 아스키 문자가 그대로 입력되는 게 중요한 경우가 많기 때문에, 따옴표도 있는 그대로만 입력받는다. 그러나 워드 프로세서 정도 되면, 지금 입력하는 문맥에 따라 해당 문자를 여닫는 따옴표로 알아서 치환해서 입력해 준다. 여기서 아주 재미있는 차이가 존재하는데, 아래아한글은 전통적으로 이런 구분을 한글 글자판을 쓸 때만 하는 반면 MS 워드는 글자판 구분 없이 언제나 그렇게 동작한다.

글쎄, 한글 입력 방식에서는 세벌식 최종 글자판이 여는 큰따옴표와 닫는 큰따옴표가 따로 배당되어 있고 그걸로도 모자라 "까지도 있다. 이것은 컴퓨터에서는 다소 잉여스러운 설계인지도 모르겠다. 그 대신, 영미 문화권의 텍스트 문서에서는 tilde 글쇠의 아래에 있는 `가 종종 여는 작은따옴표로 쓰이고 기존 '(어퍼스트로피)는 닫는 작은따옴표로만 쓰이는 경우가 있다. 한국에서는 보기 힘든 관행인 듯.

얼마 전에 본인은 여닫이 구분이 없는 따옴표만 쓰인 빽빽한 영어 성경 텍스트의 따옴표들을 여닫이 구분이 있는 형태로 일괄 변환할 수 있겠느냐는 부탁을 주변으로부터 받은 적이 있었다. 그냥 "만 달랑 들어있으면 왠지 아마추어스러운 티가 팍 날 테니, 인쇄해서 책으로 낼 텍스트라면 그 정도 배려는 해 주는 게 좋을 것이다.

"를 계속 찾으면서 “와 ”로 번갈아가며 대치만 하는 걸로 일이 끝이면 얼마나 좋았겠냐만, 이거 패턴이 의외로 간단하지만은 않음을 알 수 있었다.
작은따옴표는 어퍼스트로피가 존재하기 때문에 닫는 따옴표의 개수가 더 많아진다. 더구나 s로 끝나는 단어의 뒤에 붙은 어퍼스트로피는 닫는 작은따옴표와 형태적으로 구분할 방법이 없다.

그리고 큰따옴표와 작은따옴표 모두, 인용문이 여러 문단에 걸쳐서 길게 반복되는 경우라면, 이전 문단에서는 닫는 따옴표로 마무리가 되지 않은 채 다음 문단에서 또다시 여는 따옴표가 나온다. 물론, 그렇지 않고 앞 문단에서는 여는 따옴표로 시작해서, 다음 문단에서는 닫는 따옴표로 곱게 끝나는 인용도 따로 있고 말이다.

그리고 아까 얘기했던 중첩 인용도 문제가 될 수 있다. 열큰(여는 큰따옴표)와 작큰(작은 큰따옴표) 다음에 입력되는 큰따옴표는 여는 큰따옴표가 되어야 하는데, 이런 점을 고려하지 않고 기계적으로 따옴표를 치환하면 “(열큰) “(열큰) ”(닫큰) ”(닫큰)의 순으로 등장해야 할 따옴표가 “(열큰) ”(닫큰) “(열큰) ”(닫큰)으로 잘못 짝지어질 위험이 있다.

텍스트에는 최대 3단계의 중첩 인용이 존재하더라. 이거 생각보다 꽤 복잡하지 않은가?
텍스트 매크로, 찾기/바꾸기 등 여러 방법 중 과연 어느 것이 가장 적합할지 고민했는데 결국은 여러 차례의 바꾸기 기능을 사용하기로 결정을 내렸다. 여는 따옴표가 확실한 조건을 지정해 준 뒤, 나머지 따옴표는 모두 닫는 것으로 간주하는 게 가장 속 시원하다. 구체적인 절차는 다음과 같다.

1. 줄의 맨 첫 칸에 등장하는 따옴표는 반드시 여는 따옴표이다. 상식적으로 문단이 닫는 따옴표로 시작하지는 않을 테니 말이다. 그래서 줄의 처음을 의미하는 정규 표현식 ^를 사용하여, 첫 칸의 따옴표부터 다 여는 걸로 모두 바꾼다.

2. 그리고 공백(whitespace) 다음에 등장하는 따옴표는 반드시 여는 따옴표이므로 그렇게 바꿈.

3. 끝으로, 여는 따옴표의 다음에 등장하는 따옴표도 반드시 여는 따옴표이다. (여는 큰따음표 다음의 작은따옴표. 그리고 vice versa)

4. 위의 조건들을 만족하지 않고 아직도 방향이 결정되지 않은 따옴표들은 모두 닫는 따옴표이다. 치환.

이 작업을 큰따옴표/작은따옴표별로 다 해야 하기 때문에 '모두 바꾸기'를 무려 8번이나 해 줘야 한다.
그러나 <날개셋> 편집기에서는 '일괄 치환' 텍스트 필터에다가 다음과 같은 조건을 주면 일격에 상황 종료. 굉장히 유용하다.

"\n\"","\n“"
"\n'","\n‘"
" \""," “"
" '"," ‘"
“',“‘
"‘\"",‘“
',’
"\"",”

따옴표가 특별한 의미로 쓰이는 곳에서 따옴표 자체를 지정해야 하다 보니, 글자를 알아보기가 몹시 힘들다. 게다가 코딩용 폰트가 아닌 폰트는 여는 따옴표와 닫는 따옴표도 형태를 분간하기가 쉽지 않은 경우가 태반.
타자기 내지 컴퓨터 키보드에서 따옴표의 방향 구분이 별 의미 없다고 간주하여 괜히 없앤 게 아닌 듯하다.

아울러, 데이터베이스 같은 곳에서는 문자열 내부에 또 큰따옴표가 들어있을 때, 문자열의 시작을 '큰따옴표 두 개'로 표현하는 경우가 있다. 다음은 그런 문자열을 원래대로 복원하는 일괄 치환 조건이다.

"\"\"","\""
"\"",

그러고 보니 방향 구분이 없는 큰따옴표는 "위와 같음"(상등)을 의미하는 기호로도 쓰이며, 심지어 작은/큰따옴표가 각각 분과 초를 의미하는 단위로도 쓰인다. 신기하다. 본인은 이 경우까지 고려하지는 않았다.

Posted by 사무엘

2013/02/18 08:28 2013/02/18 08:28
,
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/797

윈도우 95 이전에 전세계를 석권하며 가장 성공한 운영체제(?)로 평가받았던 최후의 16비트 버전 윈도우는 바로 1992년에 출시된 3.1이다. 물음표가 붙은 이유는 물론 이 물건이 홀로 부팅 가능한 완전한 형태의 운영체제는 아니었기 때문.

그런데 그 3.1이 있기 전에는 3.0 버전이 있었다. 3.1이 너무 히트를 쳤기 때문에 존재감이 무척 덜해졌지만, 영미권에서는 1990년에 출시된 윈도우 3.0이 먼저 대박을 터뜨렸다. 시스템 폰트가 밋밋한 불변폭 Fixedsys이다가 가변폭으로 최초로 바뀌었으며, 흰 바탕 윈도우에다가 버튼에 최초로 은색 3D 효과가 추가되었다.

윈도우 3.0은 한글화가 된 최초의 버전이기도 하다는 점에서 더욱 의미가 있다. 2.0이던가 2.x는 한국 지사를 통해 국내에 최초로 소개된 버전이고, 3.0은 한글화까지 된 버전 되시겠다.

한글 윈도우 3.0과 한글 윈도우 3.1은 생각보다 차이가 많이 난다. 영문 윈도우 오리지널 3.0과 3.1 사이의 차이와는 좀 다른 구석이 있다. 그래서 이 점에 대해서 글을 좀 남겨야 할 필요를 느꼈다.

내가 태어나서 처음으로 접한 윈도우도 3.1이 아니라 3.0이다. 20여 년 전, 우리집 컴은 겨우 286 AT인데 이웃집 형의 컴퓨터는 386이고 아래아한글 2.0 전문용으로 화려한 윤곽선 글꼴을 찍어 내고 있었으며, Windows라는 꿈의 GUI 환경도 구동하고 있었다니, 초등학생 꼬마이던 본인은 감수성이 자극 받지 않을 수가 없었다. 알록달록한 아이콘과 컬러 그림들!

그때 처음 본 것은 3.1이 아니라 분명 3.0이었다.

사용자 삽입 이미지사용자 삽입 이미지
한글 윈도우 3.0의 부팅 스플래시 화면이다. 영문 원판과 마찬가지로 어두운 파란 배경이며, copyright이라든가 Microsoft까지 전부 우리말로 번역이나 음차를 해서 한글로 표기했음을 알 수 있다. 저작권 경고문은 영문 원판의 스플래시 화면에는 없는데 한글판에서만 새로 추가되었다.

파란 배색 때문에 나는 윈도우 3.0의 부팅 화면과, 한메 타자 교사의 시작 화면이 비슷하다는 생각을 오래 전부터 해 왔다. 여러분도 동감하시는가?

사용자 삽입 이미지
3.1의 부팅 스플래시는 3.0의 것보다야 훨씬 더 유명하니, 기억하시는 분들이 많을 것이다. 손으로 그린 듯한 저 동글동글한 한글 서체가 인상적이다. 3.1에서만 처음이자 마지막으로 볼 수 있다. 3.11은 한글화되지 않았으며, 95부터 MS는 제품명은 세계 어디서나 무조건 영문 원형 그대로 표기해 오고 있으니 말이다.
사용자 삽입 이미지
윈도우 3.0을 구동한 화면이다. 한글판은 한옥 문 무늬를 연상케 하는 mun.bmp가 설치 직후에 기본 배경 그림으로 지정되어 있다. 영문판은 당연히 그렇지 않음. 3.1은 프로그램 제목 표시줄의 배경색이 그냥 어두운 군청색인 반면, 3.0은 옅은 파랑이고 무엇보다도 solid color가 아니라는 점이 인상적이다.

프로그램 아이콘은 완전히 모노크롬은 아니지만 그래도 전반적으로 회색 톤이 짙어서 채도가 낮다. 좋게 말하면 차분하고 가라앉은 느낌을 주고, 나쁘게 말하면 칙칙하다. 오로지 그래픽 에디터인 그림판만이 3.1의 그것과 별 차이가 없는 고채도 색상의 아이콘인 듯.
3.1은 메뉴의 배경색이 프로그램 제목 표시줄의 배경색과 동일하게 군청색이지만, 3.0은 검정이다.

그리고 이 모든 걸 떠나서, 3.0 한글판의 한글 서체는 3.1 한글판의 한글 서체보다 훨씬 더 못생기고 허접해 보인다는 걸 알 수 있다.
뭐, 한글뿐만 아니라 영문 서체도 엄청 엉성하다. 영문 윈도우 3.0의 영문 서체는 3.1의 그것과 동일하지만 한글 윈도우 3.0의 영문 서체는 그렇지 않다. 3.1에 가서야 일치가 이뤄졌다.

메뉴 단축키가 영문이 아니라 한글인 게 인상적인데, 이건 제어판에서 설정을 바꾸면 된다. 한글 윈도우 3.0과 3.1은 메뉴 단축키를 한글로 바꾸는 특이한 옵션이 존재했었다. 파일 메뉴가 ㅍ에 배당되어 있으니, 두벌식 기준으로 Alt+V를 누르면 되는 식이다. 이런 옵션은 윈도우 95 이후부터는 물론 완전히 사라졌으며, 결코 다시 도입되지 않았다. 일종의 흑역사.

사용자 삽입 이미지
세상에, 한글 윈도우의 한글 서체 이름은 처음부터 바탕, 돋움이 아니었다. 한글화 첫 버전인 윈도우 3.0에서의 명칭은 아직 명조와 고딕이었다. 개인적으로 굉장히 놀랐다. 엄청 옛날에는 MS에서 조합형 코드를 사용한 한글 도스를 만들기도 했다는데 마치 그런 걸 보는 느낌이다. 궁서와 굴림은 아직 있지도 않았고 겨우 2종.

윈도우 3.0은 아직 트루타입 글꼴이 없던 시절이었다. 그러니 New가 붙은 Courier New나 Times New Roman 같은 서체도 없었고, 글꼴 대화상자에 보다시피 볼드/이탤릭 옵션 같은 것도 없다.

한글 윈도우 3.0은 트루타입 글꼴 기술이 영문 윈도우 3.1보다 먼저 도입되었다고는 하지만, 운영체제가 기본 제공하는 글꼴이 윤곽선 트루타입 글꼴은 아니었다. 여전히 비트맵이다.

그리고 화면 하단에 드디어 한글 IME 도구모음줄이 보이시는가? 이것이 한국 마이크로소프트가 최초로 개발한 윈도우용 한글 IME이다. 저 도구모음줄은 드래그로 위치 이동이 되지 않았다.

사용자 삽입 이미지
날 더욱 놀라게 만든 건 도움말.
한글 윈도우 3.1과 한글 윈도우 95 초창기 제품들은 도움말이 해라체, 즉 반말이다. 그러나 한글 윈도우 3.0의 프로그램들의 도움말은 합쇼체, 즉 존댓말이다!
반말 도움말이 다시 존댓말로 복귀한 건 IE 4.0이 나오던 시기인 1997년쯤부터이다.

게다가 저 도트 노가다 이미지로 급조해 넣은 색인, 뒤로, 훑어보기 등의 버튼들은 도대체 뭐냐! 하긴, 영문 원판도 3.0은 저 버튼들이 이미지이긴 했다.

사용자 삽입 이미지
한글을 조합 중일 때는 비록 에디트 컨트롤처럼 기술적으로 IME-aware인 환경이라 할지라도 화면 하단에 조합 중인 글자(저기서는 ‘짝’)가 따로 또 뜨곤 했다. 이것이 3.1에서는 개선되었고, 윈도우 95에서는 조합 중일 때 커서가 네모 깜빡이로 변하는 수준까지 발전을 이뤘다.
사용자 삽입 이미지
윈도우 3.1 이래로 지금까지 운영체제의 기본 게임 중에서는 지뢰찾기가 지존의 폐인 양성 게임에 등극해 있지만, 1.0부터 3.0까지는 일명 오델로라고도 불리는 리버시 게임이 내장되어 있었다.
사용자 삽입 이미지사용자 삽입 이미지
게임과 마찬가지로 굳이 한글판에만 적용되는 차이는 아니겠지만..
윈도우 운영체제가 기본 제공하는 프로그램들은 About 대화상자가 원래 천편일률적으로 똑같다. 동일한 ShellAbout 함수에다가 아이콘과 프로그램명만 달리해서 호출하기 때문이다.

이렇게 운영체제가 기본으로 제공하는 About 대화상자는 프로그램의 이름, 운영체제의 이름과 버전, 남은 메모리와 리소스, 사용자와 제품 번호 같은 걸 보여준다.

하지만 윈도우 3.0은 프로그램 관리자, 파일 관리자, 제어판 같은 관리 성격이 강한 프로그램만이 공용 About을 쓰고, 메모장이나 문서작성기 같은 보조 프로그램들은 자기네 약식 About 대화상자를 출력하고 있다.

윈도우 3.0과 3.1 사이에는 생각보다 차이가 많이 존재한다는 걸 실감할 수 있었다.

Posted by 사무엘

2012/12/23 08:39 2012/12/23 08:39
, ,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/773

※ 셸 프로그램

명령 프롬프트 하나만 달랑 떠 있는 게 아니라 최소한의 GUI를 갖춘 컴퓨터 운영체제에는 셸이라는 게 존재하며, 그 셸을 구동하는 역할을 하는 프로그램이 있다. 그것이 맥 OS는 Finder이고, 윈도우는 95 버전 이래로 Explorer(탐색기)가 셸 역할을 하고 있다.
리눅스는 저 두 상업용 OS만치 셸과 커널이 일심동체인 형태가 아니기 때문에, 딱 떨어지는 단일 셸 브랜드가 없다.

95 이전 3.x 시절에 윈도우 운영체제의 셸은 도스 계열과 NT 계열 모두 그 이름도 유명한 '프로그램 관리자'(ProgMan.exe)라는 MDI 프로그램이었다. 알록달록한 32*32 크기의 16색 프로그램 아이콘들은 초등학생이던 본인에게 굉장히 아름다운 기억으로 남아 있다.

하지만 잘 알다시피 프로그램 관리자는 운영체제의 셸로서는 그리 잘 만들어진 프로그램이 아니었다. 기능이 무척 빈약하고 이것 자체도 여러 프로그램들 중 하나일 뿐, 운영체제 전체를 아우른다는 느낌을 사용자에게 못 줬다. 그룹 안에 다단계 그룹도 못 만들었고..-_-;;
또한 범용적인 파일 관리 유틸리티 기능이 전무했기 때문에 이건 또 '파일 관리자'라는 별도의 프로그램을 통해서 해야만 했다.

게다가 윈도우는 win.ini라는 환경 설정 파일에서 [boot] 섹션에 있는 shell=progman.exe라는 문장을 다른 것으로 고치면, 전통적인 프로그램 관리자 대신에 다른 것으로 셸 프로그램을 손쉽게 대체할 수 있었다.

그래서 윈도우 3.x는 프로그램 관리자를 대체하는 별도의 셸 유틸리티가 존재하기도 했다. 시작 메뉴, 내 컴퓨터, 탐색기 등을 통해 운영체제의 셸로서 explorer.exe의 지위가 확고해진 오늘날에는 이것은 꽤나 상상하기 힘든 모습이다.

당장 떠오르는 건 20여 년 전에 명성을 떨쳤던 Norton Desktop이라는 프로그램이다. 그 당시 도스용 노턴 유틸리티는 버전이 6~7 사이였고 노턴 커맨더라는 도스용 셸도 현역이었는데, 그 회사에서는 한편으로 윈도우용으로도 그런 걸출한 프로그램을 만들었다.

노턴 데스크탑은 화면 보호기도 자체적으로 운영하고 모든 프로그램들의 시스템 메뉴에다 특수한 기능을 추가하기도 했으며, 독자적인 바탕 화면을 구동하면서 윈도우 3.x를 전반적으로 매킨토시와 비슷한 형태로 만들어 줬다. 16비트 윈도우는 오늘날의 운영체제보다는 한 프로그램이 시스템 전체에 영향을 끼치가 훨씬 더 쉽기도 했으니 말이다.

※ 한컴 셸과 윈도우용 아래아한글 초창기 버전

국내에서는 1990년대 중반에 한컴에서 '한컴 셸'이라는 프로그램을 개발한 적이 있다. 화면의 한쪽 귀퉁이에 여러 프로그램들의 아이콘이 나열되는 게 마치 오늘날 맥 OS의 Dock과 비슷했다. 이것으로 기존 프로그램 그룹/폴더에 접근이 가능하고 제어판이나 탐색기도 띄우고, 운영체제를 종료할 수도 있었기 때문에 이것만 있으면 다른 셸 프로그램이 필요하지 않았다.

사용자 삽입 이미지

사진은 아래아한글 3.0b 기준이지만, 내 기억으로 아래아한글 97에도 한컴 셸이 있었다. 윈도우 95/NT4의 셸에 더 친화적인 기능들이 추가되고 버튼들도 90년대 말의 유행이던 flat 스타일로 바뀌었다. (마우스 포인터가 가리키고 있는 버튼에만 3D 테두리가 얇게 생기는 그 형태)

그런데 이 역시 97 초기판에만 있었고, 8· 15 특별판(1998)이나 국제판/기능 강화판(1999)에서는 사라졌다. 윈도우 9x 이래로 탐색기 셸 자체가 기능이 굉장히 강력해졌기 때문에 그때부터는 별도의 셸 유틸리티에 대한 수요와 의미가 없어졌기 때문일 것이다. 특히 IE4와 통합을 이루면서 윈도우 운영체제의 셸은 완전히 환골탈태를 했으니 말이다.

아마 아래아한글 3.0b나 기껏해야 96까지만 해당일 것이다.
그 당시 이 프로그램에는 한컴 셸 동반용으로 추정되는 나침반, 시계, 계산기처럼 워드 프로세서와 직접적인 관계가 없는 액세서리 프로그램도 포함돼 있었다. 지금의 운영체제에서는 제대로 실행이 안 되는 듯한데, 예전에 분명히 돌려 봤던 기억이 난다.

시간이 흐르면서 그런 것들은 거의 다 역사 속으로 사라졌다. 그나마 21세기에까지 장수한 보조 유틸리티는 아래아한글 97과 함께 도입된 '한컴 쪽지'가 유일하다. 그것도 윈도우 7부터는 스티커 메모라는 대체 프로그램이 운영체제 차원에서 생겼으니 필요가 없어진 상태.

옛날에 윈도우용 아래아한글 3.0은 Windows에서도 도도하게 완전 독자적인 GUI와 독자적인 GUI 글꼴, 독자적인 문자 입출력 체계를 쓴 데다, 기술적으로도 Win32s + 별도의 메모리 서버까지 요구하는 등 군계일학 유아독존 포스가 압권이었다.

도스용 아래아한글만 만들던 개발팀이 단기간에 프로그래밍 공부를 얼마나 해야 윈도우 운영체제의 구조를 완전히 마스터하여 방대한 도스용 프로그램을 윈도우용으로 그것도 그런 기술 수준으로 포팅할 수 있었을까? 혹시 공밀레?

이때는 한컴이 금방이라도 독자적인 운영체제를 새로 만들기라도 할 것처럼 보였다. 사실, 비슷한 타이밍 때 나왔던 큰사람의 이야기 7.0 도스용도 도움말을 잘 뒤져 보면 개발팀이 한국형 32비트 운영체제를 자체 개발하겠다는 포부를 밝힌 대목이 있었다. 지금 생각하면 그때 사람들이 참 순진/순수했던 것 같다.. ^^

물론, 윈도우용이 처음 나왔던 3.0, 그리고 에디팅 엔진을 다 갈아엎었던 워디안 때 아래아한글이 버그 때문에 정말 욕을 많이 얻어먹은 건 사실이다. 까일 건 까여야 마땅하지만 그 첫 삽을 뜨기가 얼마나 힘들고 어려웠을지 본인은 프로그래머로서 이해는 한다.

아, 아래아한글 3.0x가 사용했던 그 특유의 GUI 디자인은 이미 아시는 분도 있겠지만 NeXTSTEP에서 따 온 것이다. 아이폰이 나오기 훨씬 전부터 아래아한글이 나름 스티브 잡스 진영에서 만든 디자인을 수용한 적이 있다는 뜻 되겠다. 다만, 메뉴에 카테고리를 구분하는 separator가 없던 것은 좋은 디자인이 아닌 것 같다.

사용자 삽입 이미지사용자 삽입 이미지

그리고 대화상자의 GUI 컨트롤 중엔, 콤보 상자와 용도가 비슷하지만 콤보 상자보다 더 static하면서 개수가 그리 많지 않은 컨텐츠 중 하나를 선택할 수 있는 '콤보 버튼'이 있다. 예를 들어 글꼴 리스트는 사용자의 컴퓨터에 설치된 글꼴이 무엇이냐에 따라서 dynamic하게 바뀔 수 있지만, 워드 프로세서가 제공하는 문단 정렬 방식 '왼쪽, 중앙, 오른쪽, 혼합' 같은 것은 수가 그리 많지 않으면서 내용이 절대 고정불변이지 않은가. 그런 것을 선택할 수 있다.

또한 스크롤 막대의 좌우, 상하 버튼이 한데 붙어 있는 것도 이 GUI의 특징 중 하나이다.

사용자 삽입 이미지

※ 여담

하긴, 도스 시절에도 셸 유틸리티가 당연히 있었다. 이때의 셸은 윈도우처럼 초보자들을 위한 GUI 기능을 강화한 놈, 아니면 파일 관리 유틸리티에 더 특화된 놈으로 나뉘었다. 후자에 속하는 것이 바로 노턴 커맨더나 MDIR 같은 유명한 프로그램임.

도스 시절에는 아무래도 컴에 대한 접근성이 지금보다는 다소 떨어졌으며, 그래픽 셸을 찾아 쓸 정도의 사람이라면 이미 그래픽 셸이 필요치 않은 파워 유저였다. 그렇기 때문에 도스용 셸 유틸은 GUI보다는 아무래도 매니악한 파일 관리 기능 특화로 더 가는 경향이 있었다.

사실, MS-DOS 자체도 한 4.0부턴가 5.0부터 도스 셸이라는 잉여에 가까운 파일 관리 유틸리티가 있었다. 그냥 밋밋한 UI에 기능도 평범한 편이지만 나름 드래그 드롭 기능이 있었으며, 그리고 하드디스크에 존재하는 모든 파일들을 한 리스트로 뽑아 주는 기능은 윈도우 파일 관리자에도 없고 이놈만의 전매특허였다. 물론, 이건 하드디스크 전체에 존재하는 파일 수가 수천~수만 정도에 불과했던 옛날이니까 가능했던 일이다.

이런 맥락을 이어받아 오늘날의 GUI 시대에도, 비록 운영체제의 기본 셸을 대체하려는 프로그램은 맥이 끊어졌지만, 전문 파일 관리 유틸리티는 건재하다. 토탈 커맨더라든가 넥서스 파일 같은 프로그램이 있다. 여러 단축키를 통해 기본 셸 프로그램보다 원하는 프로그램이나 파일, 폴더에 훨씬 더 빨리 접근할 수 있고, 한 프로그램 안에서 압축 파일도 쉽게 다루고 FTP 연계도 되는 편리한 기능에 대한 수요가 없지 않기 때문이다.

끝으로, 옛날 글들을 보면 알 수 있듯, 난 한동안은 shell을 '쉘'이라고 표기해 왔다. 도스 시절부터 프로그램이나 PC 잡지들이 다 그렇게 표기했기 때문이다. 그때 쉘 대신 셸을 쓴 프로그램은 한글 MS-DOS가 제공하던 '도스 셸'밖에 없었다. 진짜 그거 딱 하나밖에 못 봤다.
그랬는데, 외래어 표기법상 '셸'이 맞다고 하니 이 글부터 시작해서 앞으로는 셸을 쓰도록 하겠다. 틀렸으면 고치면 되지. ㅎㅎ

Posted by 사무엘

2012/09/08 08:21 2012/09/08 08:21
, ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/730

1. conime가 conhost로

윈도우 NT 계열 운영체제에는 전통적으로 시스템 디렉터리에 conime.exe라는 자그마한 프로세스가 있었다.
이 프로그램의 타이틀은 Console IME로, 말 그대로 명령 프롬프트(콘솔이라고 불리는)라는 특수한 환경에서 한글이나 일본어의 입력을 지원하기 위해 운영체제와 명령 프롬프트 사이의 통신을 담당하는 듯하다.

conime는 명령 프롬프트를 여러 개 연다고 여러 인스턴스가 중복 실행되지는 않는다. 하지만 한번 실행되고 나면 나중에 명령 프롬프트를 모두 닫아도 종료되지 않고 남아 있는다. 그래서 명령 프롬프트에서 <날개셋> 한글 입력기를 사용하다가 나중에 <날개셋>을 버전업/제거한다거나 하면 conime 프로세스를 강제 종료시켜야 한다고 설치 프로그램이 징징대는 걸 볼 수 있다.

뭐, 작업 관리자로 이 프로세스를 강제 종료시키더라도 운영체제에 악영향은 (전혀) 없다. 나중에 명령 프롬프트를 열면 운영체제가 그걸 알아서 또 실행해 준다.

그런데 윈도우 7에서는 시스템 프로세스 중에 conime.exe가 사라졌다는 걸 본인은 아주 뒤늦게 확인했다. 명령 프롬프트에다 IME 기반 문자 입력을 제공하는 계층이 다른 걸로 바뀌었다는 뜻인데, 어쩌면 이런 변화 때문에 콘솔에서 조합 중인 한글이 덧나는 버그('다다.' 같은)도 덩달아 들어간 게 아닌가 하는 추측도 할 수 있을 것 같다.

관찰해 보니, 윈도우 7에서 콘솔과 관련하여 대신 등장한 프로세스는 conhost.exe이다. 콘솔에서 <날개셋> 한글 입력기를 사용하고 있는 채로 해당 프로그램을 제거하거나 변경하려고 시도하면 conhost 때문에 안 된다는 경고가 뜬다.

그럼 conhost는 cmd.exe 자체와 일대일 대응하는 자매 프로세스냐 하면 꼭 그렇지는 않다.
명령 프롬프트에서 또 cmd라고 치면 그 동일한 창 안에서 명령 프롬프트가 또 구동되는데(exit를 치면 종료 가능한), 이때는 conhost가 또 생기지는 않는다. start cmd라고 쳐서 독립된 콘솔 창이 생성되어야 conhost도 중첩 생성된다. 관계가 이해되시겠는가?

conime와는 달리, 이놈은 명령 프롬프트 창의 인스턴스와 일대일 대응하고, 창이 닫히면 이 프로세스도 종료되어서 IME 프로그램 파일에 걸렸던 lock이 풀린다. 예전에는 콘솔 디버깅 후에는 conime를 강제로 죽여 줘야 했는데 윈7에서는 그럴 필요가 없어진 건 편해진 점이다.

2. 윈도우 7의 kernel32.dll 리모델링

이뿐만이 아니라, 윈도우 운영체제의 시스템 프로그래밍 내지 파일 해킹에 관심이 많은 분이라면 윈도우 7의 under the hood에서 일어난 흥미로운 변화를 하나 알고 있을 것이다.
운영체제의 근간을 이루는 시스템 DLL 중 하나인 kernel32.dll이 내부적으로 여러 분야로 리모델링을 거치기 시작했다는 점이다.

시스템 디렉터리에 가 보면 api-ms-win-core-*.dll이라는 수십여 개의 DLL들이 보일 것이다.
이것들은 kernel32.dll이 제공하는 1000개가 넘는 윈도우 API를 스레드, 힙 메모리, 동기화 오브젝트, 파이프 등으로 세부 분류한 껍데기들이다.

전통적으로 kernel32.dll은 윈도우 9x 계열의 것은 100% 순수 자체 코드로만 이뤄져서 그런지 외부 DLL에 의존하는 게 아무것도 없었다.
NT 계열의 것은 운영체제 커널보다 먼저 로딩되는 ntdll.dll에만 의존도가 있었다. 그리고 그 ntdll이 외부 DLL에 전혀 의존하지 않는 원초 프로그램이었다.

영원무궁토록 변하지 않을 것 같은 kernel32.dll의 내부 구조가 윈도우 7에서 이렇게 바뀐 걸 처음 봤을 땐 무척 흥미로움을 느꼈다.
지금은 그냥 뭔가 더 큰 변화를 위한 준비 수준일 뿐인 것 같은데, 윈도우 8에서는 변화가 얼마나 더 진행될지가 궁금하다.

3. 콘솔의 시각 테마 적용

윈도우 7로 넘어가면서 콘솔에 미묘하게 생긴 재미있는 변화가 또 있다.
전통적으로 명령 프롬프트 창은 윈도우 XP에서부터 도입된 '시각 스타일', 혹은 시각 테마가 적용되지 않는 딱딱한 창으로 처리되었다.

물론, 공용 컨트롤 6.0 매니페스트가 명시되어 있지 않은 구형 프로그램은 각종 컨트롤이나 child window의 테두리가 구닥다리 고전 테마로 나오긴 했지만, 그래도 프로그램의 제목 표시줄 같은 non-client 영역은 모서리가 둥글게 다듬어지기도 하고 최소한의 시각 테마가 자동으로 적용되었다.

그런데 명령 프롬프트는 그런 게 전혀 없이 완전 사각형 모양에 제목도 여전히 윈도우 98/2000식의 그러데이션이고 100% 고전 테마 스타일로 나왔다.
이렇게 100% 구닥다리로 뜨는 프로그램은 (1) 명령 프롬프트, (2) ntvdm 밑에서 돌아가는 16비트 윈도우 프로그램, 그리고 (3) 사용자가 호환성 옵션에서 '시각 테마 사용 안 함' 옵션을 명시한 프로그램 이렇게 세 종류로 한정되곤 했다.

윈도우 비스타/7의 Aero를 사용하면 100% 구닥다리 프로그램도 제목 표시줄이나 창 프레임 자체는 다른 창과 똑같은 형태로 나오기 때문에 이를 구분하기가 쉽지 않다. 고전 테마 말고 Basic 테마를 고르면 한눈에 구분이 가능해진다. 이게 과거의 윈도우 XP Luna와 기술 수준이 동일한 테마이기 때문이다.

그랬는데 윈도우 7부터는 (1) 명령 프롬프트 창도 시각 테마가 적용되는 창으로 바뀌었다. (2)에 해당하는 16비트 윈도우 프로그램은 64비트 운영체제에서는 아예 존재하지도 않으니, 남은 건 이제 (3)뿐이다.

윈도우 비스타/7이 제공하는 한국어/일본어 입력기는 그렇게 시각 테마 열외 프로그램 밑에서 동작하면 가/A, 漢 같은 아이콘이 흰색이 아닌 검은색으로 표시된다. 고전 테마가 아니라 Basic이나 Aero 같은 일반 테마에서 동작할 때 말이다.
본인은 한글 IME의 개발자로서 그 차이를 눈여겨보고 있었고, 그냥 얘네들이 명령 프롬프트에서 동작할 때만 아이콘 글자색을 검게 처리하는가 보다 하고 넘어갔었다.

그랬는데 윈도우 7에서는 명령 프롬프트에서도 글자색이 변하지 않았고, 이에 의문을 느껴 좀 더 관찰을 해 보니 차이를 만드는 요인은 '시각 테마'의 적용 여부라는 사실을 발견하게 되었다.
왜 일부러 그런 차이를 만들었는지는 나로서는 알 길이 없다. 문자 입력기가 응용 프로그램의 시각 테마 적용 여부에 따라 달리 동작해야 할 요인이 있을 리도 없을 텐데 말이다.

자, 다음 그림은 Basic 테마일 때 윈도우 비스타의 명령 프롬프트 화면과 7의 명령 프롬프트 화면이다. 창 프레임의 모양과 입력기 도구모음줄 아이콘의 색깔에 차이를 주목하시길. 내가 지금까지 설명한 것들이 이해가 될 것이다.

사용자 삽입 이미지사용자 삽입 이미지

4. 도스에서 명령 프롬프트로의 변화

윈도우 9x 계열이야 전용 명령 프롬프트 터미널이라는 게 없이 도스창이 명령 프롬프트의 역할도 겸해 왔다. 그리고 거기서는 아예 도스용 한글 바이오스 프로그램이 따로 쓰이니 conime 같은 컴포넌트는 필요하지 않다.

사실, 16비트 윈도우 시절에 운영체제가 쓰던 전용 실행 파일 포맷(New Executable)은 GUI 환경 전용이었지, 콘솔용은 있지도 않았다. 어차피 똑같은 16비트 기반이고 윈도우 운영체제 자체가 파일 접근 같은 요청은 여전히 도스에다 요청을 해서 처리를 하고 있었으니, 콘솔용 실행 파일을 따로 만드는 건 아무 의미가 없고 필요하지도 않았다.

사실, 매킨토시와는 달리 윈도우 계열 OS에만 존재하는 독특한 ANSI/OEM 인코딩, 코드 페이지 같은 개념은 그 기원을 도스의 명령 프롬프트에서 찾을 수 있을 것이다. 걔네들은 원래 철저하게 1바이트 기반 인코딩을 썼었기 때문이다. 그에 반해 매킨토시는 시작부터가 명령 프롬프트가 전혀 없는 GUI였으니 그런 잔재가 없는 셈일 테고.

5. 윈도우 운영체제의 문자 입력 관련 보조 프로세스

처음에 얘기가 나왔던 conime.exe처럼, Windows에서 문자 입력 프로그램과 관계가 있는 시스템 프로세스를 더 나열하자면...
과거에 윈도우 95~2000/ME까지는 internat.exe라는 프로그램이 있었다. 시스템 트레이에다 현재 선택되어 있는 입력기의 언어와 종류를 띄워 주는 역할을 했다.

그러다가 2001년에 윈도우 XP와 함께 COM 인터페이스 기반의 고급 텍스트 서비스(TSF)가 도입되면서 그 역할은 ctfmon.exe가 대체하게 되었고 그게 오늘날의 비스타/7까지 변함없이 내려오는 중이다. internat이나 ctfmon은 언제나 상주해 있으며, 운영체제를 업데이트하지 않는 한 사용자가 강제 종료할 일도 없는 프로그램이다.

하지만 TSF의 도입 초기이던 오피스/윈도우 XP 시절에는 그게 운영체제의 안정성을 떨어뜨리기도 했기 때문에, 딱히 고급 문자 입력 기능에 관심이 없던 사용자 사이에는 운영체제의 버그를 고친답시고 TSF 기능을 완전히 끄고, 심지어 ctfmon 프로그램을 죽여서 문제를 해결하는 방법이 운영체제 팁으로 공유될 정도였다.

6. MS IME가 등록해 놓는 정체 불명의 유틸리티

MS가 제공하는 한중일 IME는 시작 프로그램에다가 정체를 알 수 없는 이상한 migration 유틸리티 같은 걸 등록하여, 운영체제가 시작될 때 매번 그게 실행되게 해 놓곤 했다. HKLM\Software\Microsoft\Windows\CurrentVersion\Run 아래에 말이다.

사용자 삽입 이미지

일본어나 중국어도 아니고 한국어 IME는 무슨 사용자 데이터를 관리하는 것도 아닌데 도대체 이게 하는 일이 무엇이며 왜 이런 과정이 필요한지는 본인으로서는 알 길이 없다. 그냥 일본어 IME 따라 관례적으로 이런 것도 따라 한 것이기라도 할까?

Posted by 사무엘

2012/08/30 08:37 2012/08/30 08:37
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/726

옛날에 나의 기억 속에 남아 있는 매킨토시는 가히 꿈의 컴퓨터였다. 여기서 옛날이라 함은 대략 1990년대를 말한다.

그때 우리의 IBM 호환 PC는 아키텍처가 다 공개되어 있기도 했으니 ‘행정 전산망용’ 내지 ‘교육용’이라는 타이틀을 달고 국내 대기업이 로컬라이즈까지 해서(일본의 로컬라이즈 방식을 따라한 것이겠지만) 보급되고 있었다. 그러니 맥에 비해 희귀하다는 느낌이 덜했다. 그리고 이 기계는 그래픽 성능이 맥보다 훨씬 시원찮았다.

그에 비해 매킨토시는 희귀함과 화려함 그 자체였다. IBM PC가 겨우 도스 명령 프롬프트에서 16색, 256색 VGA를 논하는 동안 매킨토시 화면에서는 화려한 GUI 운영체제에다 천연색 사진 그래픽과 각종 전자 출판물 편집 장면이 나오고 있었다. 듣자 하니 매킨토시 컴퓨터에는 텍스트 모드라는 게 아예 없다는데? (물론, PC에서도 텍스트 모드는 컴퓨터 켠 직후에나 잠깐 보이는 과거 유물 잉여가 된 지 오래이지만.)

사용자 삽입 이미지
이미지 출처는 모 블로그.

기계의 모양을 봐도 모니터와 본체 일체형에, 하드웨어와 소프트웨어도 다 무조건 자기네 순정만 쓰이는 게 고급스러움과 간지 그 자체였고, 웬지 지구인이 만든 물건 같지가 않은 티가 역력했다. 엘렉스 컴퓨터가 총판을 맡던 시절에, 매킨토시는 가격도 억소리 나게 크고 아름다웠기 때문에 딱히 전자출판· 그래픽 분야 종사자나 유학파 얼리어답터들이 아니면 쓸 엄두를 내기 어려웠다.

(물론, 그때 컴퓨터 덕질을 안 하고 그 돈 더 모아서 서울 강남에다 집을 사 놨으면, 지금쯤 떼부자가 됐을 거라고 자조 섞인 말투로 회상하는 얼리어답터도 있다고 카더라)

매킨토시 진영은 서비스 구리고 하위 호환성에 자비심 없는 것으로도 잘 알려져 있다. ‘윈텔’ 진영과는 성향이 달라도 너무 다르다. MS 윈도우야 API의 하위 호환성은 정말 경악스러울 정도이고, x86 아키텍처 자체도 호환성에 목숨 거느라 그 지저분함이 말도 못 할 수준이지 않던가.

그런데, 그 간지 최강 귀족 컴퓨터에서 돌아가는 맥 OS도, X 이전의 클래식 버전은 사실 선점형 멀티스레딩도 없이 기술적으로는 윈도우 95보다도 뒤쳐진 물건이었다고 한다.
하긴, 어렸을 땐 난 시커먼 도스 프롬프트에서 그 허접한 윈도우 3.1이 시동되는 모습만 보고도, 화려한 그래픽에 동심이 매료되고 가슴이 두근거렸는데 하물며 매킨토시는 어땠을까?

그로부터 세월이 흘러 매킨토시 진영의 역사상 있었던 대단히 큰 사건들을 요약해 보자면 다음과 같다. 200x년대에 굵직한 일들이 많았다.

1. 엘렉스 대신 애플 코리아가 직접 한국으로 진출 (1999)
2. 맥 OS X 출시 (2001)
3. 인텔 아키텍처 기반으로 전향 (2005-2006)
4. 아이폰의 흥행 대성공(과 국내에 드디어 시판) (2007, 2009)
(5. 그리고 아마, 잡느님의 사망. 2011)

매킨토시가 옛날에 비해서는 정말 가격도 많이 떨어지고 보급도 많이 된 건 사실이지만, 서비스의 품질은 오히려 엘렉스 시절보다도 못한 면모도 있다는 성토가 여전히 나돈다.
또한 최강의 장사꾼 기질로 한글화를 꼬박꼬박 친절하게 하는 MS 윈도우 진영과는 달리, 맥 진영은 소프트웨어의 한글화도 좀 투박한 구석이 있다. 기본 제공되는 한글 서체의 품질이 저질이라고 폭풍처럼 까여 온 것 역시 그런 맥락일 테고.

맥은 하드웨어 배경이 완전히 다르다 보니 640KB 메모리 제한이라든가 16비트/32비트 썽킹 같은 흑역사는 없다.
다만, PowerPC에서 x86으로 갈아탄 것은 워낙 여파가 너무 큰 변화이기 때문에 제작사인 애플에서도 어떤 형태로든 호환 레이어를 제공하지 않을 수가 없었다. 그래서 CPU 에뮬레이터인 '로제타'를 만들고, 그리고 한 프로그램 바이너리에 아예 x86 코드와 PowerPC 기계어가 같이 들어있는 Universal binary라는 포맷도 제정했다.

물론 지금은 시간이 충분히 지났기 때문에 Snow Leopard던가 Lion이던가 버전부터는 PowerPC 지원은 완전히 끊겼다. 그리고 Universal binary는 PowerPC/x86이 아니라 같은 x86 계열 안에서 32비트와 64비트 코드를 동시에 내장하기 위한 용도로 쓰이고 있다. 앞으로는 ARM과 x86(-64) 사이의 동시 지원이 필요해질 듯.

가만히 생각해 보면 이게 옛날에 MS가 윈도우 NT 시절에 제정한 Portable Executable과 일맥상통하는 개념이 아닌가 여겨진다. 당시에 윈도우 NT는 x86, PowerPC 등 다양한 CPU를 target으로 개발되고 있었기 때문에, 비록 기계어 코드는 공유를 못 하더라도 동일한 헤더로 실행 파일 바이너리들을 식별하고 관리 가능하게 할 필요는 있었다. 하지만 정작 PE는 한 바이너리에 다양한 아키텍처의 기계어 코드를 한꺼번에 담는 건 지원하지 않는다.

세월이 흘러 지금이야 PC의 역량도 충분히 매우 발전하여, 매킨토시를 사실상 다 따라잡은 지가 오래이다. (그런 비주얼 쪽의 발전을 주도한 건 다 게임이라 해도 과언이 아닐 듯.) 기계어까지 가상 바이트코드로 대체하려는 발칙한 시도가 가능해졌을 정도이니 컴퓨터가 얼마나 성능이 좋아진 셈인가?

그랬는데, 지금 나는 그 시절의 매킨토시보다 훨씬 더 성능이 좋은 매킨토시 노트북 PC를 아무렇지도 않게 갖고 다니며 쓰고 있고, 사실 그 기계로 맥OS보다 윈도우를 여전히 훨씬 더 많이 쓰고 지낸다. 격세지감이 아닐 수 없다!

사용자 삽입 이미지
(폭풍간지 사과 무늬...ㅋㅋ)

Posted by 사무엘

2012/08/24 19:37 2012/08/24 19:37
, , , ,
Response
No Trackback , 7 Comments
RSS :
http://moogi.new21.org/tc/rss/response/724

« Previous : 1 : ... 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : ... 13 : 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:
2695798
Today:
233
Yesterday:
1596