« Previous : 1 : 2 : 3 : 4 : 5 : 6 : ... 14 : Next »

1. 옛날 자동차와 컴퓨터의 성능 수동 조절 버튼

요즘으로서는 실감이 안 가지만 30여 년 전 엄청 옛날 1990년대에 286이나 386급 컴퓨터에는 자신의 클럭 속도를 저/고로 조절하는 버튼이 본체에 있었다. 일명 '터보' 버튼..
그래서 컴퓨터 본체에 달린 버튼이 전원, 리셋, 터보.. 요렇게 3개였다.

사용자 삽입 이미지

(아 맞다, 그러고 보니 옛날 컴터는 본체에 저렇게 현재의 클럭 속도가 숫자로 표시되어 나오기도 했고,
하드디스크 동작 램프도 저렇게 있었다.. 완전 까먹고 있었다!! ㄲㄲㄲㄲㄲ 하드 동작 램프는 SSD 시대가 되면서 완전히 구시대 유물로 전락한 듯하다.)

단, 터보에 대해서 오해하지 말아야 할 것이 있는데..
터보를 켰을 때 컴터가 무슨 애프터버너.. 아니, 오버클럭 모드로 진입해서 평소보다 더 빠르게 동작하는 게 아니었다. 정반대..
터보를 끄면 리미터가 걸려서 제 성능보다 느리게 돌아가고, 터보를 켰을 때 원래 속도대로 동작했다.

그리고 이런 저속 모드가 존재했던 이유는 무슨 발열이나 전력 소모 같은 이유 때문이 "아니었다". 느린 컴터를 기준으로 돌아가는 기존 프로그램과의 '호환성'을 제공하기 위해서였다.

일례로, 프레임 수 조절을 정교하게 안 하는 일부 옛날 게임은 클럭이 빠른 컴퓨터에서는 너무 빠르게 돌아갈 수 있었다. 매번 현재 시각을 측정하면서 컴터 클럭과 무관하게 프레임 수 조절을 정교하게 하는 것도 "1클럭이 아까운 CPU 자원을 소모하는 번거로운 '일' "이었기 때문이다. 그래서 그런 작업을 생략했던 것이다.;;

겨우 이런 호환성 유지를 위해 꼴랑 16MHz짜리 286 컴퓨터를 도로 8이나 12MHz 클럭으로 동작하게 하고, 56MHz짜리 386 컴퓨터를 33MHz로 너프 시켰다니.. 옛날은 참 암울하던 시절이었다.

그에 비해 요즘은 노트북 컴퓨터가 배터리만으로 동작할 때 화면 밝기와 CPU 속도를 살짝 낮추는 옵션이 있는 정도이다. 절전을 위해서..
요즘 자동차가 연비를 굉장히 신경 써서 만들어지는 것만큼이나 요즘 컴퓨터는 고성능에다 전력 소모와 발열을 굉장히 신경 써서 만들어진다.

하긴, 486은 아키텍처야 386과 동일하지만 그래도 캐시 메모리라는 게 처음으로 도입되고 부동소수점 코프로세서가(80387) 옵션 액세서리가 아니라 완전히 포함돼 들어갔고, 저런 터보 나부랭이도 완전히 없어졌다. 아마 냉각팬도 이때쯤 들어갔나?
생각해 보니 단순히 클럭만 빨라진 게 아니었고 386 대비 바뀐 게 생각보다 많았다.

이렇듯.. 옛날 컴퓨터에 터보 버튼이 있었다면, 동시기의 자동 변속기 초창기 차량에는 파워/이코노미, 오버드라이브 따위의 버튼들이 있었다.
이때는 자동 변속기가 꼴랑 4단까지밖에 지원되지 않았고, 변속 알고리즘이 지금만치 똑똑하고 효율적이지 못했다. 킥다운이나 락업 클러치, 스포츠 모드 같은 기능의 구현도 미숙했다.

그래서 이때는 파워 버튼을 눌러서 차가 평소보다 높은 rpm까지 저단을 더 오래 유지하다가 고단으로 넘어가라고 동작 방식을 강제로 바꿀 수 있었다. 당연히.. 앞차를 추월할 때, 노란불 켜진 교차로를 필사적으로 통과해야 할 때 등, 수동 몰듯이 저단에서 일부러 확 밟아야 할 때 쓰는 용도였다.
옛날 자동차, 옛날 컴퓨터에만 있었던 추억의 '모드 전환' 버튼이 문득 떠올라서 회상을 늘어놓아 보았다.

2. 쌍팔년도 PC의 그래픽 카드

- IBM에서는 CGA (320*200 4색), EGA (640*350 16색), VGA (640*480 16색, 320*200 256색)의 순으로 표준 그래픽 카드를 내놓았다.
그러나 한글· 한자 때문에 글자 높이가 최하 16픽셀급이 돼야 하는 한중일에서는 모노크롬 허큘리스 다음으로 곧장 컬러 VGA로 갈아탔다. 허큘리스는 3rd파티 싸제 규격이었다.

- 하긴, 8비트 컴퓨터는 비디오 쪽 성능이 많이 딸려서 저런 고해상도 그래픽을 표현하기가 난감했다. 우리나라에서 국가 차원에서 컴퓨터들을 교통정리를 할 때 8비트를 일찌감치 배제하고 최하 16비트부터 선택한 이유도 이 때문이었다.
16비트가 지금까지 사용되는 PC의 외형 근간을 완성했다면, 32비트는 넉넉한 주소 공간과 보호 모드 지원 덕분에 멀티태스킹/멀티스레딩/가상 메모리를 최초로 구현 가능하게 했다. 64비트는 32비트 구조에서 4G 한계만 극복한 것이고..

- CGA EGA VGA 하면 개인적으로 늘 같이 떠오르는 게.. 레코드의 규격 SP EP LP이다..;;;

- 각 그래픽 카드별로 뭔가 비공식 변조 모드가 있었다.
CGA는 해상도를 무려 160*100이라는 극악으로 떨어뜨린 16색 그래픽 모드를 지원했는가 보다.
VGA는.. mode X라고 해서 320*240, 400*300 같은 해상도를 지원했다. 마이클 압래시라는 사람이 이런 걸 발견하고, 도스용 퀘이크에서 이걸 적용해서 많이 알려졌다.

- VGA는 그 이전의 CGA,EGA와 달리.. 그래픽 카드와 모니터를 연결하는 단자가 D-sub라고 원래 아날로그 기반이었다. 그 시절의 기술로 그 해상도와 색상, 주사 횟수를 구현하려다 보니 디지털로는 버거움을 느꼈던 것 같다. 하지만 후대에는 DVI나 HDMI 단자가 등장하면서 다시 디지털로 돌아왔다.
그 시절에 주류였던 두툼한 브라운관 모니터도 아날로그 신호와 더 친했지 싶다. 브라운관은 아무 해상도에나 픽셀 뭉개짐 없이 유동적으로 대응 가능한 유일한 디스플레이 기술이다.

- 각 그래픽 모드를 소프트웨어적으로 흉내 내어 주는 램 상주 프로그램이 있었다. simcga라든가, msherc 따위.. 단, simvga는 공식 프로그램이 아니라 낚시 악성코드였다.;;

- 1988년에 출시됐던 Splash! (Spinnaker software)라는 그래픽 에디터는 최신 VGA 저해상도 256색 그래픽을 채용한 거의 초창기 프로그램이었다. VGA는 1987년에 출시됐고, 그때는 아주 값비싼 최신식 그래픽 카드였으니까..
참고로 87~88년이면.. C++을 C로 전처리 거치지 않고 직통으로 번역하는 컴파일러가 업계 선구자에 의해 거의 최초로 등장했던 시기이기도 하다. 업계에서는 C++은 아직 듣보잡이었으며, C와 어셈블리가 당연시됐었다.

- 퀵베이식에서는 SCREEN 13 한 줄만으로 VGA 256색 모드로 바로 진입 가능한 반면, 그 당시 볼랜드의 개발툴(Turbo C/Pascal)이나 파워베이식은 그 당시 게임 프로그래밍에서 필수였던 이 mode 13h에 대한 지원이 유난히 인색했다. 그 이유를 난 아직도 모르겠다.

- 이 VGA 이후로 800*600 16색이라든가, 640*480 256색, 1024*768, 심지어 트루컬러 같은 발전된 모드는 IBM에서 더 중재를 하지 않고 업계 재량으로 넘어갔다. 사실, IBM은 XT/AT 이후에 80386부터는 표준 PC에도 더 관여하지 않고 손을 놨고, 운영체제 역시 OS/2가 Windows에 밀리면서 PC 시장과는 점차 인연이 멀어지게 됐다.

3. 전통적인 컴퓨터의 명가

  • 크레이: 슈퍼컴
  • IBM: 메인프레임
  • : 워크스테이션??
  • HP: 서버

이들과 달리, PC는 뭔가 독보적으로 접수하고 있는 업체가 없다. 마소와 인텔?? 얘들은 물론 컴퓨터 완제품이 아니라 CPU와 운영체제 제조사이니 위의 예들과는 성격이 좀 다르다. 이제는 슈퍼컴이나 워크스테이션 같은 컴퓨터의 영역이 PC에 많이 흡수되기도 했고..

4. 하드웨어의 발전

(1) 마우스 포인터: 그림이 계속 그려지고 있는 곳에 마우스 포인터를 가져가도 포인터가 깜빡거리지 않게 됐다.
이건 뭐 30년 전 Windows 3.x 시절부터도 비디오 드라이버를 적절하게 잡으면 실현됐던 사항이다. 그 시절의 그래픽 카드도 마우스 포인터 정도의 스프라이트를 하드웨어 차원에서 직통 처리하는 기능은 제공했기 때문이다.
Windows 2000부터는 그래픽 카드를 잡지 않은 VGA 16색 안전 모드에서도 마우스 포인터가 깜빡거리지 않기 시작했다. 9x는 그렇지 않았다.

(2) 사운드: Windows 98쯤부터 여러 프로그램에서 사운드를 동시에 재생할 수 있게 됐다. 그 전에는 정말 믿어지지 않지만 사운드도 무슨 파일처럼 한 프로그램에서 열면 다른 프로그램에서 접근할 수 없는 리소스였다.;; 멀티웨이브 믹싱이 지원되지 않았던 것이다.

(3) 화면: print screen 키를 눌러서 동영상 재생 화면도 캡처가 가능해졌고, 일반 그래픽과 아무 차이가 없어졌다. 이건 나름 Windows Vista에서부터 실현된 기술 발전이다.

Posted by 사무엘

2023/01/14 19:35 2023/01/14 19:35
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2113

1. Doom의 그래픽: 복셀 mod

Doom은 고전 FPS 게임의 교과서적인 명작으로 세계적인 인기를 끌었다. 그래서 소스가 공개된 이래로(1997) 전세계 양덕후 해커, 너드, 구루들에 의해서 상상을 초월하는 그래픽 강화 마개조 리마스터링이 행해졌다.

  • 256색 컬러 제약 없애고
  • 스프라이트를 확대할 때 선형보간법 기반의 안티앨리어싱 적용은 기본. 더 나아가..
  • 각종 텍스처와 스프라이트를 수작업으로 HD급 고화질로 업글..;; (☞ 보기)
  • 무기와 게임 진행 방식을 엄청 고도화한 모드 제작.. (대표적으로 Brutal Doom.. 듀크 nukem 3D와 비슷하게? ☞ 보기)
  • 그래픽 엔진을 더 고도화해서 요즘 게임처럼 ray tracing까지 적용 (☞ 보기)
  • 심지어 각종 오브젝트들을 3D 폴리곤화 (☞ 보기)

별의별 게 다 만들어져서 플레이 영상이 유튜브에 올라왔다.
그런데 그 중에서 제일이요 끝판왕.. "튜닝의 끝이 순정"임을 보여주는 건..
딴 게 아니라 복셀 mod라고 개인적으로 생각한다. (☞ 보기1 / 보기2)

겉으로는 그래픽이 원판 이래로 하나도 안 바뀐 것 같고 이질감이 전혀 없는데..

사용자 삽입 이미지
(시체의 모양과 각도를 보시라~!! ㄷㄷㄷㄷ)

고개를 돌리고 이리저리 둘러보면.. 그때서야 "오오!! 장난이 아니군!!" 소리가 나온다.
와, Doom에서 몬스터 시체의 모양을 모든 각도에서 둘러볼 수 있다니~!! 이런 게 정말 수준 높은 리마스터링이 아니겠는가?
소실점의 위치만 옮기는 엉성한 상하 시점이 아니라, 실제로 삼각함수 회전 변환을 수행하는 정확한 상하 시점까지 지원되는 건 물론이다.

1980년대 TRON처럼 CG 티가 대놓고 나는 어설픈 CG가 아니라.. 영락없는 쑤제 재래식 셀 애니메이션 같은데 3D 구현이 완벽하고 알고 보니 사람 손맛을 그대로 재현한 CG여서 놀라운 것.. 이런 느낌이다. 아니면..

  • 비트맵 형태로만 존재하는 폰트를 그대로~~ 교묘하게 윤곽선 폰트로도 옮겨서 글자를 확대해도 깨지지 않고 인쇄용으로도 쓸 수 있게 함
  • Windows의 굴림이나 궁서 폰트에 드디어 한자 글립이 들어감 (바탕, 돋움에 의존하지 않고)
  • 화면이 해상도나 색상은 그대로인데, 주사율이 확 올라가서 애니메이션이나 마우스 포인터 이동이 아주 부드러움..

핵심은.. 원래 있던 질감과 UX를 전혀 바꾸지 않으면서 정보량만 아무 단절감 없이 늘리고 확장하는 것이다.
복셀.. 이건 도트 노가다의 3D 버전이니 작업량이 장난이 아닐 텐데.. 이걸 근성으로 해낸 덕후들이 존경스럽기 그지없다. 게다가 죽는 모습과 시체는 스프라이트가 한 방향 것밖에 없으니 상상과 창작도 많이 해야 했을 텐데 말이다. ㄷㄷㄷㄷ

2. Quake의 음악

Doom까지만 해도 게임 배경 음악은 그냥 미디 기반이었다. 그러나 퀘이크부터는 저장 매체가 CD로 바뀌고 용량이 커진 덕분에(디스켓에 비해서야..ㄲㄲㄲㄲ) 쌩음원이 그대로 수록됐다.

특히 퀘이크 1은 1990년대 중반에 잠깐 유행했던 "오디오 CD 겸 데이터 CD-ROM"이라는 굉장히 참신한 과도기적 형태로 만들어졌었다.
프로그램의 용량은 50~60MB (이것도 15~20MB가량이던 Doom 2에 비해 3배 이상 커진 용량)밖에 안 하니 CD-ROM 전체 용량의 10%밖에 되지 않을 것이고, 나머지는 다 오디오 CD로 편성해도 곡을 40분 이상은 넣을 수 있는 거다. 그 정도면 게임 BGM을 다 집어넣기에도 충분하고..

20~30년 전만 해도 게임 하나의 용량이 이렇게 작았다는 게 믿어지지 않을 것이다.
게다가 CPU의 성능이 펜티엄이니 펜티엄 프로니 어쩌구 하던 시절에는 그 빡센 3D 그래픽 게임을 돌리면서 쌩음원까지 같이 하는 건 몹시 버거웠다.
내 기억으로 그 정도 컴에서 winamp로 128kbps짜리 mp3 하나만 틀어도 CPU 사용률이 10% 가까이 올랐다. 요즘 같으면 무식한 whlie(true); 돌려서 코어 하나를 다 잡아먹어야 나올 만한 사용률이겠지만.. 그렇다고 압축하지 않은 쌩 wav는 I/O 대역폭 소모가 너무 크고..

그때는 오디오 CD 플레이어가 컴터하고는 사실상 따로 놀았기 때문에 오디오 CD 재생은 CPU를 잡아먹지도 않았었다.
그러니 게임을 위한 CD 오디오 트랙 활용은 게임의 용량, 음악의 분량, 미디어의 용량 배분, CPU 부하 절약이 모두 절묘하게 맞아떨어진 덕분에 가능한.. 지금 생각하면 정말 뽀록에 가까운 꼼수였다.

이런 이유로 인해 퀘이크 1은 원본 CD 없는 불법복제 립버전으로는 배경 음악을 들을 수 없었다.
참고로 스타크래프트도 초창기 불법복제 립버전은 음악이 안 나오긴 했다. 하지만 이건 그냥 용량을 줄이기 위해 BGM 음원 파일을 mpq 패키지에서 빼 버렸기 때문이다. BGM이 오디오 CD 트랙에 있기 때문은 아니었다.

이렇듯, 퀘이크 1은 그래픽만 full 폴리곤 3D를 시도한 게 아니라 컴파일러도 왓콤 대신 무려 djgpp로 바꾸고, VGA mode X라든가 초창기 그래픽 가속 카드를 지원하고, 저장 매체에서도 저런 시도를 하는 등..
정말 신기술 실험으로 가득했던 명작이었다. 플랫폼만 구닥다리 도스일 뿐, 그 안에서 할 수 있는 시도는 몽땅 다 했다. 그러니 전작 Doom의 아성도 뛰어넘는 또 다른 명작의 반열에 오른 것이다.

1990년대엔 팝송 가사로 영어 공부하는..;; 컨텐츠가 잠시 유행이었는데, 오 성식뿐만 아니라 "곽 영일 Pops academy"라는 씨디 타이틀도 저렇게 데이터+오디오 짬뽕으로 만들어졌었다.

3. Quake 3 Arena 음악

Doom까지만 해도 게임 음악이 블루스도 있고 뭐랄까 평범했는데.. 미디 대신 쌩음원으로 바뀐 Quake에서는 BGM의 장르가 메탈? 락? 쪽으로 확 기울었다.
퀘이크 3 Arena 게임에서 나오던 BGM들 중 개인적으로 제일 흥겹고(!!) 마음에 드는 곡은 이거다. (☞ 듣기)

쿵 따라라라라라 쿵땅~ 땅~~ (특히 41초 이후부터)
리듬이 뭔가 민요가 떠오를 정도로 흥겹지 않은가? 일렉 기타와 드럼 대신에 꽹과리와 장구 사물놀이 세션으로도 비슷한 리듬을 구현할 수 있을 것 같은데..?? ㅋㅋㅋㅋㅋ

요 BGM이 흘러나오던 투기장 중 하나는 tier 6에 속하는 Bouncy map이었다.
이런 부류의 BGM과 함께 게임 투기장에서는 푱~~ 푱~~ 레일건 광선이 번쩍거리고 로켓 탄두가 쉴 새 없이 날아다니고, 누구는 거기에 쳐맞아서 작살이 나고 "You fragged 홍 길동" 어쩌구저쩌구 방송이 나가곤 했다. -_-;;;

사용자 삽입 이미지

아 그러고 보니 비슷하다면 비슷한 예가 있다.
영화 '악녀'(2017)에서 말이다.. 좁은 건물 복도에서 주인공 악녀(숙희)가 혼자서 수십 명의 건달들을 칼빵 놓으며 학살하고 화면이 무려 1인칭 시점으로 마치 게임 하듯이 흘러나올 때..
이때 BGM이 쿵 따라라라라라 하면서 실제로 꽹과리 소리가 나온다. (☞ 보기, 1분 40초 이후부터)
이것도 아주 인상적이었는데.. ^^ 나름 게임 BGM으로 응용할 수 있을 것 같다. 심지어 이 꽹과리 BGM이 이 영화가 끝나고 엔딩 크레딧에서도 또 흘러나오더라~~ ㄲㄲㄲ

사용자 삽입 이미지

난 퀘이크 3 음악은 100% Sonic meyhem이라는 뮤지션 그룹에서 만든 건줄 알았는데.. 아니네.
얘를 포함해 몇 곡은 "Front Line Assembly"라는 다른 그룹에서 만들었다.
쌍팔년도 시절에 Xenon 2 megablast라는 종형 스크롤 슈팅게임이 있었는데 그거 개발사는 영국의 the "Assembly Line"이라는 곳.. 같은 단어인데 배열 순서가 미묘하게 달라졌다. 게다가 저 게임도 main OST가 묘하게 경쾌하고 락인지 메탈스러운 장르이다!! (☞ 듣기)

Posted by 사무엘

2022/11/25 19:35 2022/11/25 19:35
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2094

1. 포니, 봉고, 엑셀

국산차 중 현대 포니는 동급 배기량 중에서는 전무후무 유일하게 후륜구동이었던 승용차이다.
기아 봉고는 뒷바퀴가 트럭처럼 복륜 형태였던 유일한 소형 승합차이다.

봉고는 한때는 승합차 이름이었지만 지금은 트럭 이름으로만 남아 있다.
엑셀은 한때는 승용차 이름이었지만 지금은 스프레드시트 프로그램의 이름으로만 남아 있다. ㄲㄲㄲㄲㄲ
워드퍼펙, 로터스 1-2-3, dBASE 같은 업무용 프로그램들은 Windows 시대에 적응하지 못하고 도태되고 사라졌다.;;

2. 위험한 데이브

우한 괴질 덕분에 30여 년 전 초딩 시절에 했던 ‘위험한 데이브’ 게임에 새겨져 있던 이 알파벳 이니셜을 다시 주목하게 되는구나~!

사용자 삽입 이미지

(인터넷 좀 뒤져 보니, 저건 PC Arcade를 의도한 거였다고 한다.;;)

저 시절에(1990년경) PC용 게임들은 본격적으로 시작하기 전에 그래픽 모드를 CGA (4색), EGA (16색), VGA (256색) 중 하나 선택하는 게 관행이었다. 한번 선택한 뒤에는 변경할 수 없었고, 딱히 변경할 필요도 없었다.
그런데 저 데이브는 굉장히 이례적이게도, 게임 진행 중에 그래픽 모드를 자유자재로 변경할 수 있었다. 하던 게임을 중단하지 않고 말이다.

사용자 삽입 이미지
(게임 중에 F2를 누르면 언제든지 나타나는 환경설정 화면. 어라? 이미 PC-arcade라는 단어가 있었구나~!!)

그게 가능한 게임은 내가 아는 도스용 수백여 종의 게임 중에 진짜 쟤가 유일한 것 같다~! 신기하지 않은가?
비슷한 시기의 Windows 3.x만 해도 그래픽 모드, 색상, 해상도 따위를 변경한 뒤에는 운영체제를 재시작해야 했는데 말이다. 지정도 제어판이 아니라 설치 관리자를 통해서 해야 했다.

3. 메신저

과거의 icq, msn (훗날 WLM), 스카이프, 그리고 요즘 카카오톡에 이르기까지..
기업에서 만들면서 무료로 뿌리는 메신저 프로그램은 세월이 흐를수록 엄청나게, 불필요하게 덩치 커지고 무거워지는 게 필연적인 수순인 것 같다.
그도 그럴 것이 평범한 채팅 기능만 제공해서는 수익이 나질 않으니 어떤 형태로든 부가적인 서비스를 집어넣어야 하기 때문이다.

카카오톡은 기존 대화 데이터들이 쌓이고 프로그램 자체도 버전업을 거듭하다 보니 예전에 비해 뜨는 데 걸리는 시간이 정말 눈에 띄게 길어졌다. 뭐, 본인은 수 년 이상 묵은 굉장한 구닥다리 전화기를 사용한다는 것도 감안할 점이긴 하지만.. 거의 20~30초씩 걸린다.
PC용 프로그램이었다면 일개 메신저가 스플래시 화면이라도 좀 있어야 할 것 같다.;;

더구나 과거엔 공공장소 입장용 QR 코드를 생성하거나 백신 접종 정보를 불러오는 데도 비슷하게 시간이 너무 오래 걸려서 이것도 불만 사항이었다. 지금이야 백신패스는 아련한 옛날 이야기가 됐지만.. 그래도 프로그램이 최적화와 관련해서 좀 아쉬운 면모가 있다.

4. 블리자드

블리자드가 2018년 이래로 그 누구도 생각하지 못한 빠른 속도로 망조 들고 몰락하고 있는 것이 놀랍다.
무려 2000년경, "환상의 테란"이라는 PC통신(!!) 소설에서는 "서기 2020년, 블리자드는 스타라는 걸작 게임만을 남긴 채 망해 버렸고 게임의 소스 코드는 공개되지 않았으며, 사장은 어느 열받은 테란 플레이어에게 살해 당했다"라는 정말 비현실적인 설정을 제시했었다.

디아블로, 스타, 워크래프트라는 불멸의 명작 대작을 내놓으며 승승장구하던 게임 개발사가 망할 거라고는 그 시절에 누가 상상이나 했겠는가? 그 뒤로도 WoW에, 오버워치 이러면서 2010년대까지도 잘 나가지 않았던가?
그랬는데 지금이야 뭐.. 회사 창립자인 사장이 살해...;;까지는 아니지만 물러났고, 스타를 만들었던 핵심 개발진들이 죄다 퇴사하고 회사를 따로 차리는 지경이 됐다. 기존 스타크래프트는 1(리마스터)이고 2고 간에 유지 보수가 도저히 안 되는 막장 상황이 된 건 확실해 보인다.

우와, 그 명작인 스타크가 개발사로부터 버림받는 지경이 됐다니.. 하긴, 유명한 것 대비 회사 입장에서의 수익성이 너무 없어지긴 한 것 같다.
이렇게 되지 않으려고 국내의 온라인 게임 개발사들은 처음에 돈독 올랐다고 욕 먹는 한이 있어도 정액제니 부분 유료화니 하면서 사용자에게서 지속적으로 돈을 걷는 체계를 만든 것 같다. 한 번만 돈 내고 끝인 패키지가 아니라 말이다.

그랬는데 블리자드가 2022년 초에 마소에 인수됐다. 마소는 게임 제작사들의 재량을 존중해 주는 관대한 기업이니 블리자드의 옛 명성을 되찾아 줄 것을 기대해 본다.
하긴, 왕년에 Doom과 Quake를 개발했던 id조차도 마소에 인수돼서 그쪽 계열사가 된 지 오래다. id를 인수하고 싶어했던 빌 게이츠의 오랜 소원은 빌이 은퇴한 뒤에야 결과적으로 성취됐다.

그 마소에서도 알다시피.. 2010년대에 경영진이 싹 바뀌고 컴퓨팅 시장의 판도가 많이 바뀌었던 시절에 Windows 8과 관련해서 삽질이 유난히 잦았다. Windows 10은 초창기에 예전의 마소답지 않은 온갖 버그들이 난무했었다.
MFC처럼 수십 년 묵은 고인물 썩은물은 마소 내부에서도 안 쓸 뿐만 아니라, 코드 구조를 다 꿰뚫고 유지 보수 가능한 사람이 거의 안 남았다나 어쨌다나.. MFC가 그러한데 하물며 딱히 작업할 것도 없고 10년 넘게 변화가 없는 한글 IME 코드의 관리 인력이야 두 말하면 잔소리이지 싶다.

소프트웨어 개발사는 핵심 프로그래머가 교체되더라도 제품 코드에 대한 노하우가 단절 없이 전수되고 코드의 유지 보수가 가능하도록 정말 노력해야 할 것 같다. 일례로 각종 주석과 문서 작성을 게을리하지 말아야 할 것이다.
남이 도무지 읽을 수 없는 스파게티 코드, 난독화 코드를 잔뜩 짜 놓고는 "이 코드는 나 말고는 아무도 의미를 알 수 없어~" 이렇게 버티는 건.. 반칙이며 알박기나 마찬가지일 테니 말이다.. =_=;;

Posted by 사무엘

2022/06/30 08:36 2022/06/30 08:36
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2037

Microsoft Office는 Windows와 더불어 지금까지도 마소를 먹여 살리고 있는 주요 밥줄이다. 출시된 지 어언 30년이 돼 가는데.. 가만히 생각해 보면 2000년을 전후한 97부터 XP 사이의 시기에 유독 자연어 처리 기술이 들어간 기능이 많이 도입됐었다. 그게 그 시절에 잠시 유행이었던 것 같다.

1. Office 길잡이

지금으로부터 20여 년 전엔 워드나 엑셀 같은 제품을 다루다 보면, 이런 강아지 내지 클립 귀요미들을 볼 수 있었다.
바로, MS Office 97에서 처음 도입돼서 2000과 XP 시절까지 명맥을 유지했던 Office 길잡이이다..;;

사용자 삽입 이미지

마소에서는 진작부터 HCI (사람-컴퓨터 간 인터페이스)에 굉장한 관심을 갖고 있었고, 컴퓨터를 어린이와 노인까지 누구나 겁먹지 않고 쉽게 다룰 수 있는 '친숙한' 물건으로 만들려고 애썼다. 그래야 자기들 장사도 되니까 말이다.

그래서 프로그램의 성능이나 기능과 직접적인 관계가 없음에도 불구하고, 많은 자금을 들여서 강아지나 클립 등의 캐릭터 애니메이션이 들어간 Office 길잡이라는 걸 만들고 집어넣었다.

얘들은 귀요미 애니메이션만 있는 게 아니라, 프로그램 사용 중에 잘 모르는 게 있으면 "질문을 직접 입력하세요"라는 파격적인 기능까지 제공했다. 이게 일종의 자연어 처리 기능인 셈이다.
워드에서 Dear XXX, 이라고 첫 줄을 입력하면 길잡이가 "편지를 쓰시는 것 같네요. 뭐 좀 도와드릴까요?" 이러기도 했던 건 유명한 일화이다.

1990년대 중반에 마소에서 Microsoft Bob이라든가 저런 Clippy 길잡이 같은 물건을 만들었던 걸 생각해 보면.. 그 시절에 빌 아저씨는 컴퓨터를 대중화시키기 위해서 귀요미 캐릭터가 필요하다고 생각했던 것 같다.
그러나 들인 노력에 비해 이런 UI들에 대한 사용자의 반응은 냉담했다.

괜히 문서 화면을 차지하고 걸기적거리면서 컴터의 성능과 메모리만 잡아먹고, 결정적으로 자연어 처리 AI가 그리 똑똑하지 못해서 사람 말귀를 잘 알아들으면서 도움을 잘 주는 것도 아니었다. 색인 기반으로 도움말 본문 검색 정도에나 적합한 엔진이 무슨 사람의 질문을 정확히 이해할 수 있었겠는가?

이러니 Office 길잡이는 2003에서는 기본적으로 설치되지 않는 물건이 됐다가 2007에서부터 완전히 삭제됐다. 메뉴에서 일부 항목이 생략되던 2000년대 초의 personalized menu와 비슷한 격으로 한때의 반짝 유행으로 끝나고 역사 속으로 사라졌다. 그래도 그 열악하던 옛날에 마소의 Office 제품이 '챗봇' 비슷한 걸 시도한 적이 있었다는 건 AI 역사의 관점에서는 의미심장한 사건이었던 것 같다~!

2. Word에 자동 요약(Auto Summarize)

0부터 100까지 백분율을 지정하면, 이 문서에서 분량 대비 중요도가 상위 그 비율에 든다고 여겨지는 문장을 프로그램이 자동으로 따로 강조해서 표시해 주는 대단히 획기적인 기능이다.
길고 빽빽한 문서를 빨리 읽을 일이 있을 때 엄청난 도움이 될 것이다. Word에 이런 기능도 있었다는 걸 기억하는 분이 계시려나..??

사용자 삽입 이미지

하지만 1990년대 겨우 펜티엄 급의 PC에다 1990년대의 NLP 기술만으로 문서 자동 요약이 정말로 똑똑하게 정확하게 수행되는 건 아니었다. 그저 표면적으로 자주 등장하는 단어만을 고려해서 밑줄을 칠 뿐, 글의 의미를 실제로 파악하고서 핵심 요점을 추려내지는 못했다.

이 기능은 한번 도입된 뒤에 이렇다 할 성능 개선이 없이 잉여로 전락했다. 그래서 Word 2007에서는 리본의 아무 탭에도 소속되지 못하고 누락됐다. 즉, 리본을 통해서 접근할 수 없고, Undo나 Save 같은 기능만 있는 quick access 툴바에다가 버튼을 추가하는 수고를 해야만 이 명령을 실행할 수 있다.
그러다 2010부터는 이 기능이 완전히 삭제되어 버리고 없어졌다. 그러니 지금도 구글에서 Microsoft Word Auto Summarize라고 검색해 보면 XP 내지 2003, 2007 시절의 스크린샷밖에 없다.

다음은 더글러스 맥아더 원수의 퇴역 연설문을 25%로 자동 요약시킨 결과 화면의 일부이다.
"저는 이제 52년 만에 군문을 떠납니다"라는 문장은 분량 비율을 10%로 줄여도 계속해서 포함된다. 이건 글의 핵심을 제대로 파악한 것 같다. 하지만 곁의 "노병은 죽지 않고 그저 사라질 뿐입니다"는 비율을 35% 정도로 올려야 포함되더라.

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

1950년대의 얘기이다 보니 북괴 얘기도 나오고 중공 얘기도 나오는데.. 문장들이 많이 수집된 곳과 듬성듬성 수집된 곳의 차이를 난 잘 모르겠다. 이런 요약은 그냥 없는 것보다 나은 정도의 참고용으로만 사용하면 될 듯하다.

3. 필기· 음성 인식 기능

2001년 말에는 Windows와 Office 모두 XP라는 브랜드를 달고 새 버전이 출시됐다.
IE 웹브라우저가 세기말(1997)에 버전 4~5이던 시절엔 운영체제 셸을 멋대로 마개조 했었는데.. 신세기(2001)에 출시됐던 Office XP는 운영체제의 IME 계층을 마개조 해서 TSF라는 문자 입력 인터페이스를 도입했다.

이건 정말 파격적인 새로운 기능이었다. 한중일은 문자의 구조가 복잡해서 처음부터 별도의 입력기가 필요하지만, 영문도 키보드가 아닌 필기· 음성 인식 방식으로 입력하기 위해서는 보조 도구 명목으로 IME 비스무리한 서비스가 필요하다.
거기에다 마침 자국어가 아닌 임의의 외국어 다국어를 입력하기 위해 Global IME니 하는 중간 과도기 제품이 돌아다니기도 했었으니.. TSF는 이 모든 것들을 기술적으로 통합하는 솔루션 역할을 했던 것이다.

사용자 삽입 이미지

Windows XP에다 Office XP 영문판의 모든 기능을 설치하면 영문의 필기· 음성 인식 기능을 사용할 수 있었다.
한글· 한자는 한 글자씩 인식을 하지만 영문은 단어 단위로 획을 끊지 않고 한붓그리기 필기체를 날려 쓰면 아주 잘 인식된다. 사실, 영문 필기체는 압도적인 수요 덕분에 세계에서 제일 많이 연구됐고 제일 기막히게 잘 인식되는 글자이기도 하다..;; 한자 따위와는 급이 다르다.

게다가 태블릿 PC를 의식해서인지, 비좁은 사각형 안이 아니라 화면 전체에다가 글자를 쓱쓱 그려서 인식시켜 넣을 수도 있다. Write anywhere를 고르면 된다. 아래의 드로잉쯤은 당연히 kill이라고 바로 인식된다.

사용자 삽입 이미지

그리고 음성도 본문에다가 받아쓰기를 할지, 명령 수행을 시킬지 선택할 수 있으며, 정확도 향상을 위해 미리 정해진 예문을 쭉 읽으면서 나름 학습을 시키는 절차도 있다. 학습을 시킬 때 단어들을 어색하게 딱딱 끊지 말고 반드시 평소처럼 자연스럽게 이어서 읽으라고 부탁하는 메시지가 뜬다.

무려 20여 년 전의 Office 제품에 벌써 이런 기능이 있었다는 게 놀랍지 않은가?
그랬는데 후대 버전의 Windows와 Office는 영문판을 찾아봐도 그런 필기· 음성 인식 기능이 오히려 없어진 것 같다. 성능이 시원찮고 시대에 뒤떨어지니 도로 없앤 건가 싶다.
고급 필기 인식 기능은 IME보다는 메모 전문 앱인 OneNote에 몰빵돼 들어갔다. 처음엔 Office 2003의 제품군 소속으로 개발됐었지만 지금은 독립한 물건이다.

Office 제품들은 운영체제의 공용 대화상자들을 생까고 자체 구현한 대화상자로 문서 열기/저장 기능을 제공해 왔는데, 지난 2007 버전부터는 그 전통을 깨고 운영체제 대화상자로 돌아왔다.

운영체제의 IME와 Office의 IME가 따로 놀던 관행도 2007? 2010?쯤부터 없어져서 현재에 이르고 있다.

입력과 직접적인 관계는 없는 기능이다만, Word의 경우 한국어로 텍스트를 입력하다 보면 인명 고유명사를 얼추 인식해서 파란 점선을 쳐 주고 주소록에 추가한다거나 다른 부가작업을 선택하는 게 있었다.
내 기억이 맞다면 smart tag라는 기능인데, 이게 최초로 추가된 것도 XP였다. 허나, 이 역시 오히려 후대 버전에서는 이게 없어지거나 기본적으로 꺼진 것 같다.

NLP 기능이 과거에 있었다가 나중에 도로 없어진 건.. 마치 21세기에 초음속 여객기나 우주왕복선이 오히려 없어진 것과 비슷한 맥락의 현상으로 느껴진다.
컴퓨팅 성능과 AI 기술이 훨씬 더 향상된 2020년대엔 오피스 제품에 더 똑똑해진 필기· 음성 인식과 문서 자동 요약과 번역, 도움말 안내 기능이 다시 부활해 들어가지 않으려나 기대를 해 본다.

Posted by 사무엘

2022/06/19 08:35 2022/06/19 08:35
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2033

1. 존재를 부정 당하고 있는 IE 브라우저

지난 2010년대 초는 IE6을 작정하고 퇴출시키려던 시기였다. 그 뒤, 2020년대 초는 IE를 통째로 퇴출시키려는 시기가 됐다. 그 전에 플래시와 ActiveX부터 먼저 퇴출됐고 말이다.
그럼 지금은 키보드 보안이나 특수한 암호화 같은 게 필요하면 DLL 형태인 ActiveX 대신, EXE 실행 파일로 다 바뀐 건지? 그럼 요즘은 크롬에서도 인터넷 뱅킹이 가능한 건지?? 잘 모르겠다. 내 개인적으로는 여전히 뭔가 잘 안 돼서 PC에서 금융 거래를 할 때는 아직 "Edge + IE 모드"에 의존한다.

Media Player는 더 업데이트를 하지 않는 레거시로 남았을지언정 일부러 없애지는 않는 물건이다. 그러나 IE는 하루가 다르게 바뀌는 웹 프로그래밍 플랫폼이며 보안에 민감한 놈이다. 그래서 마소에서도 매우 적극적으로 존재 자체를 부정하고 없애려는 중이다.

그래서 작년 하반기쯤이었나? Windows 10의 어느 버전인가 업데이트를 설치한 뒤부터는 이제 Internet Explorer가 대놓고 실행되지 않게 됐다. 그냥 꺼져 버리고 Edge가 대신 뜬다.
과거 Windows Me가 여전히 도스를 완전히 벗어나지 못한 9x 커널 기반이었음에도 불구하고, 겉으로만 도스로 부팅하거나 도스로 돌아가는 기능을 없애 버린 것과 비슷한 조치 같다.

그러나 IE라는 껍데기 말고, IE가 사용하는 그 트라이던트 웹 렌더링 엔진과 윈도우 컨트롤은 사실상 Windows 운영체제의 일부나 마찬가지이다. 얘에 의존해서 돌아가는 기존 프로그램도 있기 때문에 그걸 통째로 없앨 수는 없다.
마치 Visual Basic 6처럼 말이다. 얘는 마소에서 21세기 이래로 줄기차게 없애고 .NET으로 대체하려 애썼지만 끝내 그러지 못했다. 게다가 Office 제품군의 매크로 언어인 VBA가 여전히 재래식 VB 기반이니.. 이것 때문에라도 완전히 없애는 건 불가능하다.

IE 엔진이 여전히 쓰이는 대표적인 분야는 도움말이지 싶다. 특히 HTML 도움말(*.chm) 말이다. 얘는 이미 10년 이상 전부터 추가적인 개발과 지원이 끊겼으며, 마소로부터 사실상 완전히 버려진 자식 신세이다.
그런데 마소에서 지난 2010년대부터는 '로컬 오프라인 환경에서 열람하는 도움말/문서'라는 개념 자체를 완전히 송두리째 폐기한 것 같다. IE나 HTML 도움말만 없앤 게 아니라는 뜻이다.

그러니 이제 메모장을 띄웠을 때 F1을 누르면.. '메모장 도움말'을 Bing에서 검색한 결과가 뜬다.;;; 이렇게 무심할 데가..
정말 믿어지지 않지만, 현재의 Windows 10/11은 로컬 도움말이란 게 사실상 존재하지 않는 것 같다. 오죽했으면 이젠 Windows\help 디렉터리가 거의 텅 비어 있다. 거기 그나마 들어가 있는 건 뭐 nvidia 제어판이나 개발 관련 듣보잡 문서이지, Windows 자체에 대한 일반 사용자용 도움말이 아니다.

개발툴도 예외가 아니어서 Visual Studio 2010/2012를 즈음해서는 10여 년의 역사를 자랑하던 msdn Document Explorer가 없어졌고.. 이제 내장 도움말 컨텐츠 다운로드 같은 것도 없어졌다.
이런 게 완전히 없어지기 전에는 chm이 아니어도 자기들만 쓰는 html + IE 엔진 기반의 개발 문서 조회 시스템이 있었는데.. 요즘은 그런 것 자체가 없다는 것이다. 걍 단순 정보 조회는 구글로, 문제 해결 정보는 Stack overflow를 뒤지라는 뜻인 듯..

안 그랬으면 HTML 도움말을 IE 대신 크로뮴 엔진 기반으로 다시 만드는 지원이라도 할 텐데 그런 것조차 없다.
근데 현실적으로는 다른 대안이 있나? Windows용 앱 내부에서 뭐 최신 반응형 웹 따위 바라지도 않고, 간단히 html 렌더링해서 표시하고 싶은데 IE ActiveX 컨트롤보다 더 간편한 방법이 있을까? 그건 의문이 든다.
아무리 웹이 기존 앱의 영역을 많이 잠식하긴 했어도, 그래도 앱 내부에서 웹페이지를 표시할 일도 있을 텐데 말이다.

그리고 또 하나 생각할 점은 웹페이지의 인쇄이다.
내 경험상.. 당장 이 블로그 웹페이지를 같은 pdf 드라이버로 인쇄해 보면 IE는 그럭저럭 최적화된 형태의 pdf가 만들어진다. 그 반면, 크롬은 훨씬 더 bloat된 이상한 형태로 pdf가 생성되며, 인쇄하는 데 시간도 더 오래 걸린다.
무작정 IE를 없애 버리기에는 제대로 된 대안· 대체제가 여전히 존재하지 않는 것 같다.

2. 이상하게 바뀐 메모장

올해 초쯤에 Windows 11의 업데이트를 설치하고 나자.. 프로그램 창의 ‘최대화’ 버튼의 동작이 살짝 달라졌다. 마우스로 얘를 가리키면 고전적인 전체 최대화 외에, 좌우 1:1:1 등 어느 레이아웃으로 최대화할지 고르는 타일 메뉴가 나타나기 시작했다.
Windows 7에서 창을 마우스로 화면 좌우상하 구석으로 끌었을 때 그렇게 배치하는 기능이 처음 추가되긴 했는데, 그게 13년쯤 뒤에 저렇게 강화됐다. 요건 뭐.. 나쁘지 않아 보이네.

그런데 그것 말고도 마소가 꽤 큰 사고를 쳤더라. 세상에.. 메모장이 메트로 UI 형태로 다시 만들어졌다.
본문이 운영체제 기본 에디트 컨트롤이 아니라.. 워드패드와 동일한 리치 에디트 기반으로 바뀌었다.
개인적으로 이거 완전 비호감이더라. 메모장은 단순한 앱의 상징 마지노 선으로 봉인 좀 시켜 놓지, 왜 저런 짓을 했나 모르겠다. 사람들이 메모장이 기능이 많아서 애용하는 줄 아는가??

그런 주제에 UTF-16랑 KS X 1001 인코딩의 파일이 열리지 않고, 우클릭 컨텍스트 메뉴에 알파벳 단축키가 먹히지 않는다. 예전에 되던 것이 안 되니 새 버전을 사용하기가 매우 꺼려지게 된다.
저런 쓸데없는 걸 건드리지 말고, sihost.exe가 CPU 다 쳐먹으면서 폭주하는 버그나 좀 고칠 것이지.. 그 문제는 여전한 걸 보고는 더 좌절했다.

난 지금까지도 솔직히 Win10이랑 11의 차이를 모르겠다. 업데이트 해야 할 필요를 느끼지 못한다.
10에서는 작업 표시줄을 우클릭해서 바로 작업 관리자에 들어갈 수 있었는데 11에서는 못 하고..
정말 필요한 기능이 아니라 그냥 괜히 바꾸기 위해서 바꾼 게 많다. 이럴 거면 걍 10의 업데이트나 낼 것이지 왜 11이라고 차별화를 한 걸까?

난 멀쩡히 잘 돌아가는 기능들에다가 쓸데없이 자꾸 메트로 UI를 도입하는 것도 근본적으로 마음에 안 든다. 현실에서 멀쩡한 길거리 인도 보도블럭을 쓸데없이 교체하는 것과 비슷한 느낌이 든다.
아 그래, 25년쯤 전에 마소에서 Windows UI 셸을 전부 IE4 Active desktop으로 도배하려는 것과 비슷하게 느껴지기도 한다.

Posted by 사무엘

2022/06/11 08:36 2022/06/11 08:36
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2030

1. 증기 기관과 컴퓨터

20세기 중반에 전자식 컴퓨터나 그 전신뻘의 물건이 최초로 개발되어서 수행했던 임무는 탄도 계산이나 암호 해독 같은 군사 관련 일이었다. 게임이나 무슨 수학자 덕질 같은 용도가 아니었다. 인터넷도 맨 처음엔 생각보다 굉장히 군사· 안보 상의 목적과 필요 때문에 개발되었다는 것을 알 만한 분은 아실 것이다.

그리고 옛날에 증기 기관이란 게 최초로 개발되어서 투입된 용도는.. 기억하시는가? 무슨 군사나 교통수단이나 면직물 가공 기계가 아니라, 탄광 내부에 찬 지하수를 빼내는 펌프의 가동이었다. 즉, 자신이 석탄을 소모하면서 역으로 석탄을 캐는 일을 도와줬던 것이다. (물론 자기가 소모하는 것보다 훨씬 더 많은 석탄을 캐는 걸..)
그렇게 태동했던 기계가 하나는 산업 혁명을 견인했고 다른 하나는 정보화 시대라는 걸 만들었다니 참 격세지감이다.

2. 도트 프린터와 비트맵 폰트

21세기, 2020년대를 찍고 있는 요즘은 자그마한 종이 쪼가리에 찍혀 나오는 영수증이나 카드 명세서, 승차권/탑승권, 주문 번호표, 관공서 차례 대기 번호표조차도 다 열전사 같은 비충격식 프린터로 인쇄되는 세상이다.
하지만 쌍팔년도의 잔재인 찌익~ 찍 도트 프린터의 출력 결과물을 아직까지 생생히 볼 수 있는 곳은 단연 은행이라 하겠다. 독보적이고 유일하다. 이게 개인적으로 매우 매우 흥미롭고 신기하게 느껴진다~!

사용자 삽입 이미지

통장의 책장을 넘겨가며 거래 내용을 인쇄한다거나, 혹은 이미 만들어져 있는 은행 특유의 각종 양식 문서의 일부란에 문자와 숫자를 찍는 용도로는 재래식 도트 프린터가 여전히 유용한가 보다. 물론 전자 통장, 전자 문서 때문에 예전에 비해서 필요성이나 활용 빈도가 많이 줄어들긴 했지만 말이다.

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

도트 프린터가 독특한 이유는 찍혀 나온 글자의 자형, 즉 폰트부터가 독특하기 때문이다.
이런 도트 프린터는 해상도가 그리 높지 않았기 때문에 겨우 본문용 크기에서 산돌이니 윤디자인이니 하는 상업용 폰트를 보기 좋은 퀄리티로 찍을 수 없다. 그 대신 그 저해상도에서 그럭저럭 보기 좋게 특화된 전용 비트맵 명조/고딕 같은 폰트가 쓰인다.

지금 Windows의 굴림/바탕/돋움 같은 폰트만 봐도, 대략 19포인트까지는 이런 비트맵 버전이 쓰이다가 20포인트부터는 일반적인 윤곽선 버전이 투입되는 걸 확인할 수 있다. 이런 게 저해상도 프린터에서는 인쇄용으로도 쓰인다는 것이다.

저해상도 비트맵 폰트를 종이 인쇄를 통해 볼 수 있는 곳은 은행이고, 화면 형태로 볼 수 있는 곳은 단연 각종 LED 전광판일 것이다. 하지만, 이 분야도 해상도와 색상이 증가하면서 윤곽선 폰트(= 출판물용 고퀄 폰트)로 대체돼 가고 있다.

아날로그 숫자 카운터가 원래 주유소 주유기, 테이프 재생기의 구간, 자동차 계기판의 거리계 등 여러 곳에서 볼 수 있다가 지금은 싹 다 사라지고 수도· 전기· 가스 검침기에서나 볼 수 있는 것과 비슷한 현상 같다.
많이 없어지긴 했지만, 완전히 멸종 급으로 자취를 감춘 건 아니라는 것이다. 공중 전화처럼 말이다.

나 역시 비트맵 폰트의 끝물 마지노 선을 지키는 프로그램을(날개셋 편집기..) 보유하고 있는 관계로.. 이런 비트맵 폰트를 주위에서 보면 괜히 반갑다. 컴퓨터라는 게 처음 등장하던 시절에 쓰였던 투박한 추억의 폰트들을 최대한 복원해서 내 프로그램에서 재생해 보고 싶다.

그나저나, 요즘은 민증이나 면허증 같은 신분증들도 온통 전산화됐기 때문에 실물의 필요성이 많이 없어졌다. 잃어버렸을 때의 타격도 많이 덜하다.
하지만 현물 실물의 중요성이 여전히 가장 크고 절대로 잃어버려서는 안 되는 개인 증서는 아무래도 여권이지 싶다. 당연히 외국 나가 있는 중에 말이다. 신원 조회라는 게 전국구 급으로는 수월하게 되지만 그게 세계구 급으로 되는 건 아니기 때문일 것이다. 세계가 무슨 음모론자들의 주장처럼 세계 단일 정부로 가는 건 말처럼 호락호락 쉽게 가능하지 않다.;;

여권도 카드가 아니라 통장 같은 수첩 형태이고, 도트 프린터로 찍은 기록들이 덕지덕지 추가될 것 같은데 그래도 얘는 통장보다는 인쇄 스타일이 옛날식이 아닌 것 같다.

3. 일반인 소비자가 보는 것만이 전부가 아님

(1) 증기 같은 외연 기관은 교통수단의 동력원으로는 진작에 퇴출됐다. 허나, 외연 기관 자체는 증기 터빈의 형태로 지금까지도 엄연히 현역이다. 지금 세계에서 생산되는 전기의 압도다수는 증기 터빈 발전기를 돌려서 생산된 것이다. 화력이든, 원자력이든.

(2) 선박은 비행기에 밀려서 대륙 간 장거리 여객 교통수단으로는 완전히 퇴출됐다. 그러나 화물을 살펴보면?? 선박이 없이는 세계 물류가 돌아갈 수 없다. 운하가 하나 틀어막히기만 해도 어떤 일이 벌어지는지를 우리는 얼마 전에 목격한 바 있다.

(3) 인터넷을 통해 지구 반대편으로 정보 전송이 가능한 것은 압도다수가 인공위성이 아니라 해저 케이블 덕분이다.

(4) 8비트 CPU는 성능이 너무 떨어지기 때문에 사람이 직접 다루는 PC나 게임기용으로는 수십 년 전에 진작에 퇴출됐다. 그러나 그 정도로 높은 성능이 필요하지 않고 최소한의 제어만 하면 되는 기기들.. 밥솥, 자판기, 전광판 이런 데서는 저렴한 가격에 낮은 전력 소모 등 유용한 구석이 많다.
그렇기 때문에 임베디드용으로 세계에서 여전히 수십억 개씩 생산되고 있다~! 다른 분야에다 비유해 보면 거의 척추동물(PC)과 무척추동물(임베디드..)의 개체수 차이와 비슷할 정도이다.;; 오히려 이도 저도 아니고 어중간한 16비트가 콩라인이 됐을 뿐..

(5) 오늘날 카세트 테이프는 컴퓨터에서나 오디오에서나 모두 한물 가고 퇴출됐다. 그러나 테라/페타바이트 급의 초 거대 용량의 백업 보관용으로 가장 우월한 저장 매체는 여전히 자기 테이프이다. 물론 이런 건 일반인이 가정에서 취급하는 급의 물건은 아니다.

(6) 컴퓨터의 통신 수단으로서 구닥다리 전화선과 모뎀은 진작에 퇴출되었다. 하지만 서류를 주고 받는 용도로 전화선 기반의 팩시밀리는 여전히 건재하다.
디지털이나 인터넷과 동떨어져 있지만 고유한 쓸모가 있기 때문이다. 어떤 가게가 지금 영업을 하는 중인지 알아보는 제일 쉽고 확실한 방법은 카톡이고 이메일이고 나발이고 필요 없이, 그냥 전화를 걸어 보는 것이듯이 말이다.;;
복사기, 스캐너, 팩스, 프린터는 종이를 다루는 복합기로 싹 통합해 버리기에 딱 좋아 보인다.

4. 저렴해지는 것, 비싸지는 것

사용자 삽입 이미지

그랜저가 30년 전이나 지금이나 똑같이 3~4천만 원대인 걸 아시는가..??
배기량과 가격만 비슷하지 엔진 성능이나 효율, 편의 시설은 30년 전과 지금이 쨉이 안 될 것이고, 물가 상승도 쨉이 안 될 것이다.
하지만 어떻게 지내냐고 누가 물었을 때 그랜저로 답하기가 지금이 훨씬 더 쉬워진 셈이다. 물론 그 대신, 그랜저보다 더 비싼 고급차가 나오기도 했고 말이다.

1990년대 초엔 486 컴터 한 대가 3백~5백만 원이었다. 당연히 그 시절 물가 기준으로. -_-
버스비, 우유· 라면처럼 원래부터 소액이던 것은 가격이 몇 배로 무섭게 뛰었지만, 옛날에 왕창 비쌌던 고급 기계는 가격이 놀라울 정도로 변하지 않거나 더 싸졌다.

컴퓨터는 CPU뿐만 아니라 메모리도 Windows 95가 처음 나왔던 시절에 4MB를 추가로 장착하는 데 십몇만 원 이랬었다.
이러니 PC 환경에서 16비트 도스를 좀체 졸업할 수 없었다. 가상 메모리를 구현하고 현대적인 32비트 운영체제를 돌리려면 메모리를 관리하는 데 드는 메모리도 필요하고 도스보다 훨씬 고사양의 컴터가 필요하기 때문이다. x86이 구닥다리 비효율을 감수하고라도 조밀조밀 CISC 방식으로 만들어진 건 메모리를 조금이라도 더 아끼기 위해서였다.

그런데 1990년대 말~2000년대 초 사이에 메모리가 갑자기 64, 128, 256MB 이렇게 순식간에 뻥튀기 되기 시작했다. CPU 클럭 속도만 뻥튀기 된 게 아니었던 거다. 이렇게 메모리가 값싸고 풍족해진 덕분에 그 당시 Windows 9x 계열의 퇴출이 더욱 앞당겨지고 2000/XP 같은 NT 계열이 대세가 될 수 있었다!
메모리 반도체의 본좌인 삼성 전자에서 그 당시에 갑자기 외계인 고문과 공밀레를 열나게 시전해서 기술 혁신을 이뤄낸 건지는 잘 모르겠다. 무어의 법칙뿐만 아니라 황의 법칙도 거론될 정도였으니까..

세월이 지나도 변하지 않는 동안 외모처럼, 어떤 분야엔 세월이 지나도 변하지 않는 가격이라는 것도 있는가 보다. 이런 변화가 무엇을 의미하는지 한 번쯤 곱씹어 볼 필요가 있다.

5. 멀티미디어 기능

옛날에 PC가 성능이 뛰어나지 못했을 때는.. 텍스트 모드에서 한글· 한자를 찍기 위해서(!!!), 부동소수점 연산을 더 빠르게 하기 위해서, '삑삑'이 아닌 레알 사운드를 듣기 위해서 별도의 카드를 꽂고 애드온을 컴퓨터에다 장착해야 했다. 뭐, 상당수는 쌍팔년도 얘기이지만 1990년대 초중까지만 해도 동영상 재생 정도는 별도의 MPEG 카드를 꽂아서 해야 했다. 그러나 지금은..

  • 그래픽과 사운드는 기본적인 수준이야 CPU 메인보드에 이미 다 기본 내장됐다. 저 분야에서도 SoundMAX인지 인텔 비디오인지 하면서 Intel이라는 단어가 슬금슬금 보이기 시작했다.
  • 이제는 동영상 재생이 아니라 컴퓨터 화면을 실시간으로 부드럽게 녹화할 때에나 캡처보드 같은 별도의 카드가 필요한 듯하다. 물론, 평범하게 컴터를 다루는 모습이 아니라 복잡한 게임 장면을 녹화하는 것 말이다.
  • 아니면 GPU까지 빡빡 혹사시키는 high-end급 온라인 게임을 할 때, 머신러닝을 시킬 때..

  • TV 수신 카드는 요즘도 수요가 있는지 모르겠다.
  • 모니터와 텔레비전이 모두 디지털에 LCD 기반으로 바뀌다 보니, 오랫만에 켰을 때 과거의 브라운관 수상기처럼 화면이 서서히 밝아지고 상이 커지는 모습도 볼 일이 없어져 있다. 이런 모션은 이제 프로젝터를 켤 때에나 가끔 보는 것 같다.

Posted by 사무엘

2022/06/08 08:35 2022/06/08 08:35
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/2029

페르시아의 왕자와 황금도끼는 1989년에 처음으로 출시됐고 그 이듬해에 PC용도 나온 유명한 아케이드/액션 게임이다. 비슷한 시기에 출시됐고 본인도 30여 년 전의 초딩 시절에 재미있게 했던 게임이다.

전자는 미국산이지만 후자는 일본산이다.
전자는 뭔가 아크로바틱한 파쿠르 퍼즐 액션에다가 칼싸움이 보조로 가미된 정도이지만, 후자는 지형은 단순하면서 그냥 적들을 다양한 공격 기술로 죽여 없애는 전투 위주이다.

둘 다 굉장히 다양한 플랫폼으로 이식됐으며, 2편 같은 속편도 출시됐다.
그 당시의 흔한 관행이었겠지만, 둘 다 영화에서 리소스를 따 온 장면도 있다. (로빈 후드 칼싸움 / 악당들이 죽는 소리)
오늘은 이 두 게임을 나란히 비교해 보고 싶은 생각이 문득 들었다.

1. 원작 제작자

(1) 페르시아의 왕자: 잘 알다시피 Jordan Mechner라는 미국 뉴요커이다(1964년생). 어느 엄친아 영화학도가 갑자기 컴퓨터에 꽂혀서는 '아라비안 나이트'에서 모티브를 따 이런 게임을 혼자 뚝딱 만든 것이다. 그리고 제품의 유통사를 찾다 보니 브로더번드 소프트웨어와 계약을 맺었다.

사용자 삽입 이미지

단, 주인공의 동작 모션을 자기 남동생한테 연기시킨 뒤, 그걸 촬영해서 한땀 한땀 도트 노가다로 입력했다는 것,
그리고 음악 작곡은 심리학자이던 아버지가 했다는 건 유명한 일화이다. 그야말로 가족이 게임 개발에 참여한 셈이다.

(2) 황금도끼: SEGA에서 게임 개발자로 정식으로 근무하던 Uchida Makoto (마코토 우치다, 1955년생)라는 일본인이 프로젝트를 기획하고, 대여섯 명 남짓한 팀을 이끌며 개발한 게임이다. 세계관이 '코난 더 바바리안'(1982)이라는 영화의 영향을 많이 받았다.

사용자 삽입 이미지

저 사람은 현재까지도 SEGA의 중역으로 근무하고 있는 모양이다. 닛산 자동차의 CEO라 하는 1966년생 동명이인과 혼동하지 말 것.

2. 원작의 개발 플랫폼

(1) 페르시아의 왕자: 잘 알다시피 8비트 Apple II였다. 열악한 8비트 컴터에서 뭘 바라겠는가..? 화면 해상도는 320*200이 채 되지 않았고, 색깔도 끽해야 최대 4색이었다. 1980년대 말이라는 당대 기준으로도 하드웨어 환경이 후져 있었다.
그러니 얘는 원판이 아니라 후대의 이식작에서 그래픽이 훨씬 더 개선되면서 인기를 끌게 되었다.

(2) 황금도끼: 페르시아의 왕자는 태생이 PC인 반면, 황금도끼는 태생이 오락실 오락기였다. SEGA System 16이라는 1985년작 오락기 전용 16비트 CPU를 기준으로 개발됐다.
8비트 대비 16비트라는 우월한 체급에다, 아마추어 프로그래머가 아닌 전문 개발자가 만들었지, 오락기 CPU는 PC보다 그래픽도 더 특화돼 있다 보니 황금도끼는 모든 여건이 페르시아..를 능가했다. 원작부터가 PC의 VGA를 능가하는 수백~수천 컬러 그래픽을 지원했다. 이식작들은 원판에 비하면 그래픽이 퇴보하면 퇴보했지, 더 나아진 경우는 별로 없었다.

페르시아의 왕자를 오락실에서 동전 넣고 플레이 했다는 사람은 없을 것이다. ㅎㅎ
그게 오락실용이었으면 마릿수 잔기와 컨티뉴가 존재해서 죽을 때마다 press key to continue가 아니라 insert coin to continue가 됐을 것이고.. 애초에 "1시간 동안 무한대 잔기" 같은 시스템 자체가 생기지 않았을 것이다. 아니면 동전을 넣을 때마다 시간이 10분 더 추가된다거나..;;

3. PC (MS-DOS) 버전 포팅

(1) 페르시아의 왕자: Lance Groody라는 미국인 프로그래머가 작업했다. PC의 화려한 256색 VGA 그래픽은 게임의 가치를 한층 끌어올려 줬다.
타 플랫폼 중에서 SNES용은 게임 스케일이 리메이크· 마개조에 가깝게 커졌으며.. 매킨토시용은 색깔뿐만 아니라 그래픽의 해상도도 크게 향상되었다.

(2) 황금도끼: John & Ken Sanderson라는 미국인 친형제 프로그래머 2인이 작업했다. 하지만 그래픽이 단조로워진 건 그렇다 쳐도, 각종 공격 동작도 많이 삭제되고 단순화되어서 오락실 원판에 비해서 게임성과 재미가 많이 깎였다.
얘는 오락기 지향적이어서 그런지, 매킨토시용으로 포팅되지는 않았다.

한편, 저 사람들 모두 1980년대 8비트 어셈블리어 시절부터 현재의 모바일 시대에 이르기까지 3~40년째 컴터 프로그래머로 쌩쌩히 현역을 뛰고 있는 걸출한 엔지니어인 것 같다. 검색해서 사진을 보니 서로 좀 비슷하게 생겼다..;;

도스용 페르시아의 왕자는 실행 파일이 C 컴파일러로 만들어진 흔적이 보인다. 그러나 황금도끼는 내 기억이 맞다면 딱히 그런 정황이 없고 여전히 근성의 어셈블리어가 사용된 것 같다.
저 때는 16비트 컴만 해도 엄청 비싼 고급 기종이고 C 컴파일러조차 사치였으며, 메모리를 겨우 몇천~몇만 바이트를 할당하는 것에도 실패할 가능성을 따지면서 전전긍긍해야 했던 시절임을 기억하도록 하자.;;

4. 후속작

(1) 페르시아의 왕자: 2편이 나왔다. 원판 특유의 그 2D 방 기반의 진행 시스템은 2편이 마지막이었으며, 그 뒤부터는 3D로 바뀐 후속편이 더 만들어져 나왔다.

(2) 황금도끼: 2편과 3편이 나오고 3D 리메이크 및 대전 액션 에디션(duel)도 나왔다. 하지만 후속작들은 원판에 비해 그리 좋은 평을 못 들었다. 얘들은 PC와도 연을 끊었기 때문에 컴터로 즐기려면 MAME를 돌리는 수밖에 없다.

5. 여담: 페르시아의 왕자 제작자의 주변 인물들

조던 메크너가 이 게임을 만들던 당시에 그와 오랫동안 동업하면서 그에게 많은 영감을 준 지인 중 하나로는 Tomi Pierce (1953~2010)라는 일본계 미국인도 있었다. 여자이고, 조던 메크너보다 나이도 띠동갑에 가깝게 더 많았던 사람인데..
일례로, 이 누님이 그 당시 개발 중이던 페르시아의 왕자를 찬찬히 뜯어보더니 이렇게 말했다.

“이 게임은 퍼즐만 있어서는 안 될 거 같아. 더 재미있어지려면 전투가 꼭 있어야겠다. 네가 예전에 만들었던 가라테카처럼 말이야.”
“헐?? 난 그 정도로 폭력적인 건 좀.. 게다가 이제 그런 기능을 집어넣기에는 애플2에 메모리도 얼마 안 남았는걸..”
“아 됐고, 꼭 명심해~ combat, combat, combat!! ^^

조던 메크너의 회고에 따르면, 토미 누님은 그야말로 combat 노이로제에 걸릴 정도로 얼굴 마주칠 때마다 전투를 꼭 넣으라고 압박을 넣었다고 한다. (☞ 관련 동영상 링크 10분 45초 ~ 11분 사이 지점)

사용자 삽입 이미지

그렇다. 칼싸움은 원래 계획에 없다가 뒤늦게 추가된 것이었다. 이때는 동생도 멀리 떨어져 있어서 모션 촬영을 할 수 없었던지라, 로빈 후드 영화에 나오는 칼싸움 장면을 따서 스프라이트를 만들었다.
이런 일화가 있었고, 나중에 1996년경인가, 조던 메크너가 Last Express라는 대작 게임을 만들 때는 아예 저 누님과 공동으로 시나리오를 쓰기도 했다.

그랬는데 Tomi Pierce 누님은 지병이 있었는지 어쨌는지.. 2010년, 50대 중반의 나이로 세상을 떠났다.
조던 메크너의 개인 블로그를 보니.. 그 당시에 하늘이 무너지는 듯한 슬픔을 억누르며 정말 엄청난 장문의 추모글을 올렸었다. (☞ 링크)

고인은 그야말로 어린 시절부터 천재 엄친딸이었고 SAT 만점에 아이비리그 자유이용권을 끊었었는데 자기가 하고 싶은 일을 하느라 자유분방하게 살았고, 비록 문과 출신이지만 컴퓨터 게임 사업에 눈독을 들였고 어쩌구저쩌구..
투병 중에도 늘 쾌활하고 긍정적이고 유머와 위트와 센스가 넘쳤고, 나도 살아 생전에 이분과 더 오래 있으면서 지혜를 나눠 받지 못해서 아쉽다고.. 구구절절 애도의 글을 써 놨더라.

게다가 더 찾아보니 Tomi Pierce는 브로더번드 소프트웨어의 창립자인 더글러스 칼스턴(Douglas C. Carlston 1947~)이라는 사람과 결혼까지 한 사람이었다.

더글러스는 하버드 학부 출신에 모교의 로스쿨도 졸업한 수재였다. 빌 게이츠는 하버드 중퇴이지만 저 사람은 하버드 졸업생.. 그리고 조던 메크너는 예일대 졸업생..ㄷㄷㄷㄷ
그랬는데 컴퓨터라는 기계에 꽂혀서 안정된 진로를 그만두고 사업을 시작했고.. 혼자만 한 게 아니라 자기 남동생 Gary Carlston 및 여동생까지 끌어들여서 삼남매가 나란히 동업을 했다. 그래서 회사 이름도 band of brothers을 살짝 바꿔서 broderbund라고 지은 것이었다..;;

사용자 삽입 이미지

다 이런 식으로 연결되는구나.
참고로 Tomi Pierce의 여동생은 Naomi Pierce (1954~)인데.. 이 사람은 하버드 대학교의 동물학과 교수가 돼 있다.
우리나라의 옛날 석 주명 박사처럼 나비 연구 쪽으로 세계구급 전문가라고 한다.
그리고 Tomi건 Naomi건 저분들은 딱 정확하게 본인의 부모님 연배이다.. ㅎㅎ

이렇게 Tomi가 세상을 떠난 뒤, 조던 메크너는 2011인가 2012년쯤에 페르시아의 왕자 애플 2 소스를 공개했었다. 휴~
그 반면, 황금도끼는 개인이 아닌 상업용 게임 개발사의 프로젝트로 처음부터 진행돼서 그런지.. 이런 정도의 재미있는 개발 에피소드가 있는지 잘 모르겠다. 소스가 공개된 적도 물론 없었다. 아케이드 원판의 롬 파일이 돌아다니는 것만으로도 감지덕지해야 할 듯..

그래도 페르시아의 왕자 게임을 만든 조던 메크너의 동생 데이비드 메크너.. 황금도끼의 도스판을 이식한 존과 켄 샌더슨.. 그리고 브로더번드 소프트웨어를 창립한 더글러스와 개리 칼스턴.
형제지간인 사람이 이 글에서 세 쌍이나 언급된 것이 의미심장하게 느껴진다. ^^

Posted by 사무엘

2022/04/21 08:35 2022/04/21 08:35
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2011

1. 디지털 카메라

요즘은 아시다시피 스마트폰에 카메라 렌즈도 하나로 모자라서 둘 이상이 달리며, 이걸로 사람 눈과 뇌가 하는 것처럼 원근감까지 기계가 인지하는 지경에 도달했다.
하긴, 모니터와 TV는 종횡비가 진작에 다 와이드로 바뀌었는데 카메라로 찍는 사진의 종횡비는 여전히 4:3이 기본인 게 좀 답답하게 느껴진다. 카메라 렌즈의 화각이 커지고 렌즈가 여러 개 달리기까지 한다면 한번에 더 넓은 풍경을 길쭉하게 사진에 담을 수 있을 것이다.

화소 수나 후보정 기능뿐만 아니라 본인이 정말 신기하게 생각하는 기능은.. 사진의 흔들리는 걸 걱정할 일이 예전에 비해 매우 줄어들었다는 것이다. 이건 소프트웨어적인 흔들림 보정 알고리즘의 산물이다.

옛날에 덜 스마트하던 디카는 사진이 흔들려서 망치는 일이 흔했을 뿐만 아니라, 그 자그마한 화면으로는 찍었던 사진이 흔들렸다는 걸 인지하는 것조차 쉽지 않았다.
사진을 찍은 현장에서 흔들림을 감지했으면 곧장 다시 찍기라도 했을 텐데.. 여행을 마치고 돌아와서 사진을 PC로 옮겨서 큰 모니터 화면으로 본 뒤에야 흔들리는 걸 알게 됐다면 허탈함 그 자체이다. 위조지폐를 현장에서 바로 적발하지 못하고 은행에 입금할 때에야 뒤늦게 알아챈 것과도 비슷한 상황이다.

그나마 재래식 디카가 스마트폰보다 나은 점은 배터리 용량이 더 많고, 안 쓸 때는 꺼 놨다가 나중에 켤 때 부팅이 필요 없이 즉시 켜져서 ready 상태가 된다는 점, 비슷한 체급일 때 zoom 성능이 더 뛰어나다는 점 정도를 꼽을 수 있겠다.

앞으로 영상뿐만 아니라 음성도.. PC에서 마이크 꽂아서 2채널 스테레오 음향을 한번에 입력해 넣는 방법은 생길 기미가 없는지 궁금하다.

2. 휴대전화

라떼는 말이야..

  • 체크카드: 신용카드 = 피처폰: 스마트폰 과 비슷한 관계인 것 같다. 특히 둘 다 왼쪽에 비해 오른쪽(신용, 스마트..)은 영업사원들이 기를 쓰고 팔려고 안달 나 있다는 공통점이 있기도 하다.
  • 인류 역사상 전화기가 크기가 가장 작던 때는 폴더폰 시절일 것이다. 그러다가 요즘 스마트폰은 화면과 배터리 때문에 어쩔 수 없이 다시 좀 커져 있다.
  • 폴더폰 시절에는 전화기를 통째로 거치대에 꽂아서 배터리 충전을 하던 시절이 있었다~!! ㄷㄷㄷ 기억하시는가? 그리고 2000년대엔 충전 단자를 통일한답시고 한때 24핀짜리 표준 단자가 제정되기도 했었다.
  • 그렇게 전화기가 자그맣고 별 기능이 없던 시절에는 배터리를 한번 충전해서 2~3일은 기본으로 썼다. 통화를 안 하고 있으면 무려 1주일 가까이 가는 물건도 있었다.

먼 옛날에 사람들이 뭔가 자원이 남은 비율 퍼센티지를 신경 쓰던 것이 30여 년 전엔 Windows 3.x/9x의 시스템 리소스 퍼센티지였다. 그러나 지금 사람들의 최고 관심사는 폰의 배터리 퍼센티지일 것이다.;;
그 밖에..

(1) 전화기에서 스피커폰은 귀를 송수화기에다 대지 않아도 통화를 들을 수 있게 하는 무척 편리한 기능이다. 하지만 이때 기기에서 내는 수신음이 또 마이크를 통해서 송신되고, 그게 또 수신되어 스피커폰으로 들리는 현상이 무한 반복되면서 소리가 울리는 문제가 발생할 수 있다.

이건 통신 기기에서 굉장히 고전적으로 유명한 문제이다. 자기가 받은 소리가 중복 송신되어서 울리지 않게 하는 건 echo 제거(echo cancelling) 기술이라고 따로 있다. 보통은 받는 쪽에서 echo 제거를 적용해야 보내는 쪽에서 echo를 듣지 않게된다.
뭔가.. 헬리콥터에서 로터가 돌면서 동체까지 돌아가는 현상을 상쇄하는 것과 비슷해 보인다. (꼬리날개, 반대 방향 로터 등..)

(2) 내가 말하지 않고 듣고 있을 때는 내 쪽의 불필요한 소음이 상대방에게 전혀 송신되지 않게 하는 일종의 mute(마이크 끄기) 기능이 있으면 좋겠다. 내 쪽에도 상대방에게 들리기를 원하지 않는 배경 소리 같은 게 있기 때문이다. 뭔가 전화기를 무전기에 가깝게 사용하게 되는 듯하네..

(3) 자동차 번호판이 공간이 부족해서 자릿수가 하나 확장됐고, 인터넷 주소도 공간이 부족해서 IPv6가 등장했는데.. 휴대전화 번호도 마찬가지다. 010 다음의 8자리는 좀 간당간당해 보이는데 이건 어째 공간을 확장한다는 말이 없는 것 같다.

(4) 스마트폰은 앞서 언급했던 디지털 카메라뿐만 아니라 다른 여러 휴대용 전자기기들의 역할을 흡수하고 대체했다. mp3 플레이어, 전자 사전, 계산기 따위는 얄짤없지만, 그나마 독자적인 역할이 있어서 완전한 상위 호환 대체가 어려운 건 손목시계이다.
스마트폰은 이것저것 기능이 많아지다 보니 보다시피 옛날 폴더폰이나 어설픈 피처폰 시절에 비해 덩치가 꽤 커졌기 때문이다. 그러니 얘는 과거의 회중시계의 대체제이지, 이대로 손목시계를 대체하기는 난감하다. 그 분야는 스마트워치라는 물건이 따로 만들어져 나오게 됐다.

3. 소프트웨어

  • 지난 2009년은 코드소프트와 티맥스 윈도우,
    2016년은 서든어택 2 (온라인 게임), 그리고 갤럭시 노트 7 (스마트폰)이 업계 최악의 굴욕 흑역사로 기록됐다.
  • 2021년은 LG전자가 스마트폰 사업을 완전히 접고 철수한 해, 인텔에서 비운의 IA64 프로세서를 드디어 20여 년 만에 완전히 단종시킨 해, 그리고 30여 년을 존속했던 경상용차 다마스와 라보가 단종된 해가 되었다.
  • 또한, 2020년대가 되니 애플에서는 PowerPC, x86에 이어 CPU 이주를 또 시도하고 있고.. Windows와 macOS 모두 메이저 버전이 10에서 11로 올라갔다.;;

2010년대 중후반에 컴터 소프트웨어 세계에서 개인적으로 굉장히 인상깊게 느낀 변화는 다음과 같다.

  1. 플래시가 순식간에 웹에서 싹 퇴출되고 사라짐. 브라우저들에서 지원도 끊김.
  2. 왕년에 스타와 워3, 디아블로를 만들었던 그 천하무적 제작사가 정말 급속히 몰락하고 망조가 듦.
  3.  IE 브라우저가 이제 완전 퇴출 직전임. 얘 없어진 뒤에도 공인인증서 로그인과 은행 돈거래가 가능하려나..??

(1) 플래시 액션스크립트는 전부 천하무적 html5 자바스크립트로 바뀌어서 오늘날까지 건재한다. 이젠 웹브라우저가 그 자체만으로 가상 머신에 반쯤 운영체제처럼 돼 버렸다.
플래시에서 원래 주전공이던 벡터 애니메이션 대신 웬 동영상(flv)을 지원하기 시작한 것, 그리고 유튜브가 플래시 없이 html5 기반으로 바뀐 것, 인터넷 지도와 구글 어쓰가 아무런 플러그인 없이 브라우저에서 바로 구동되기 시작한 것.. 모두 굉장히 충격적이었다. 플래시는 vb6에 대응하고, html5는 vb.net에 대응하는 것 같다.

(2) 게임 업계는 정말 영원한 강자란 없는 것 같다. 이드 소프트, 세가의 스즈키 유, 오리진의 울티마 만들었던 그 우주먹튀 뭐시기.. (아! 리처드 개리엇) 등등.. 한때의 스타 개발자가 언제까지나 계속 스타이지는 못한 것 같다.
지금은 FPS고 RTS고 나올 거 다 나오고 나서 새로운 게 뭐가 있을까? 이젠 현질 아이템 장사 말고 다른 돈 버는 방법이 남아 있을까..?? 궁금하다.
뭐 몇 년 전에 리니지 M은 돈을 빗자루로 긁어모으면서 그렇게도 성공했다고는 하더라;;

(3) 20여 년 전엔 마소 IE의 독점 불공정 끼워넣기 때문에.. 수장인 빌 아저씨는 평생 먹을 욕을 이 시기에 다 쳐먹었다. 카피레프트 안티 마소 진영으로부터는 완전 뿔 달린 악마 취급까지 받았다.
사실 더 옛날에, 1994~95년경엔 빌 아저씨가 msn으로 세계를 정복할 생각까지 했었다. 하지만 어림없는 얘기. 인터넷의 물결을 막을 수 없으니 다음으로 브라우저 독점을 생각했었으나 그 계획은 2004년 파이어폭스 0.8, 2008년 크롬과 함께 완전히 물 건너갔다. 넷스케이프가 이루지 못한 일을 쟤들이 대신 해냈다.

그리고 지금이야.. 웹브라우저 점유율을 제일 많이 떼어간 건 모바일이다. 마소가 범접하지 못한 완전히 다른 플랫폼..

Posted by 사무엘

2021/12/03 08:34 2021/12/03 08:34
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1960

바야흐로 2021년에 또 30여 년 전의 고전 게임인 페르시아의 왕자를 소재로 글을 써 올리게 되다니.. 감격스럽기 그지없다.
이번에는 이 게임에서 주인공의 적으로 등장하는 검객, 경비병들에 대해 외국 사이트에서 분석한 데이터를 본인의 경험과 곁들여서 소개하고자 한다. 갑자기 이 주제로 글을 쓰고 싶어졌다.

페르시아의 왕자 게임에는 가시, 칼날, 절벽처럼 주인공의 체력을 깎아먹거나 주인공을 즉사시키는 트랩들이 여럿 존재한다. 검객은 그런 트랩들과 달리 유일하게 생명체이다.
조던 메크너가 열심히 코딩을 하다가.. 게임이 더 다이나믹하고 재미있기 위해서는 '전투'라는 요소가 필요하다는 걸 뒤늦게 깨닫고 검객을 구현했다고 한다. 이건 유명한 일화이다.

본인은 어린 시절에 이들을 knight를 연상시키는 기사라고 부르곤 했다. 하지만 얘들에 대한 공식 명칭은 guard(s), 즉 경비병에 가깝다. 검객이라고 하니까 무슨 일본 시노비나 암살 자객 같은 느낌이 들고.. 앞으로는 그냥 간단하게 적병이라고 부르도록 하겠다.

페르시아의 왕자 게임은 칼싸움 동작을 "휘둘러 찌르는 공격 아니면 막기"라는 두 종류로 극도로 단순화시켰다. 남의 공격을 평범하게 막으면 대미지를 입지 않는 대신, 찌르는 사정거리 밖으로 살짝 후퇴도 하게 된다. 물론 칼빵을 맞아도 후퇴..

막으면서 잽싸게 공격을 시도하면 뒤로 밀려나지 않으면서 적에게 반격을 할 수도 있다. 그런데 적도 그걸 막으면서 반격하고 나도 또 막고 반격하면.. 뭔가 그럴싸한 칼싸움이 연출된다. 자신과 상대방이 거리가 어느 정도 되는지도 이 싸움의 진행에 영향을 끼친다.
그렇게 공격과 방어를 반복하다 보면 언젠가 컴퓨터 적병이 반드시 맞고 뒤로 밀려나는 것으로 순환이 끝난다. 재미를 위해 알고리즘이 주인공의 필승으로 귀결되게 구현돼 있는 것 같다.

이 게임이 무슨 대전 액션 시뮬레이션은 아니니, 현실의 칼싸움처럼 이동과 공격을 동시에 한다거나, 상하 좌우 다양한 방향으로 칼을 휘두르고 기상천외한 부위를 찌르고 서로 칼날을 부딪친 채로 힘싸움을 하는 건 존재하지 않는다.
하지만 그 시절에 칼싸움이라는 걸 이렇게 단순화된 형태로 구현한 것만으로도 굉장히 참신한 시도가 아닐 수 없다. 플랫폼 아케이드 장르의 게임에 공격뿐만 아니라 '방어'라는 기동이 존재하는 물건 자체가 매우 드무니까 말이다.

게다가 이 게임은 적병들의 AI를 나름 다양한 난이도로 구현하는 섬세함까지 보였다.
1편에서 레벨 1에 나오는 적병, 그리고 2편에서도 레벨 1, 궁전 옥상에서 마주치는 적병은 난이도가 최하이다. 칼을 휘둘러 찌르는 것만 반복하고 있으면 알아서 다가와서 칼 맞고 꽥~ 죽어 준다. 그러나 이렇게 너무 쉬운 적병은 그 다음 레벨부터는 결코 다시 등장하지 않는다.

그 다음 레벨부터 나오는 적병들은 내가 칼을 쉬지 않고 휘두르는 동안에는 나에게 다가오지 않는다. 조금 뜸을 들여야만 접근하며, 그렇게 다가올 때 공격을 몇 번 성공시키면 적병이 죽는다. 페르시아의 왕자 1편은 대부분의 적들을 이 테크닉만으로 해치울 수 있다.

그런데 레벨 4쯤 되면 적이 약간은 더 똑똑해진 것 같다. 내 공격을 호락호락 맞아 주지 않고 막는 빈도가 유의미하게 높아져 있다. 그리고 아주 가끔은 막고 나서 내게 반격도 한다.
게다가 레벨 6에 나오는 그 '뚱보', 그리고 최종 보스인 Jafar는 공격 키만 사용해서는 해치우기가 거의 불가능하다. 내 공격을 90% 이상의 확률로 막고는 반격을 하기 때문이다. 나도 '막기'와 '공격'을 뒤섞으면서 난전을 벌여야만 놈을 때릴 수 있다.

이런 것들이 내부적으로는 어떻게 구현돼 있을까?
페르시아의 왕자 게임은 소스가 공개되어 있다지만 너무 옛날 애플 II 어셈블리어여서 분석이 상당히 난감하다.
하지만 제작자가 이것 말고도, 타 플랫폼 포팅 작업 때 참고하라고 내부 알고리즘 기술 문서를 만들었던 것도 공개한 게 있어서 큰 도움이 된다. 얘는 2000년대 이후부터는 이미 레벨 에디터까지 다 만들어져 있다.

이것들을 분석한 자료에 따르면 적병들의 AI는 다음과 같은 형태라고 한다. (☞ 문서)

사용자 삽입 이미지

  • 레벨 1에만 나오는 제일 쉬운 적병의 skill은 0
  • 나머지 레벨 2에서 11 사이에 나오는 일반적인 적병들의 skill은 1부터 4까지 4등급으로 나뉜다. 참고로 레벨 3에서 등장하는 해골의 skill은 2로, 그냥 평범한 편이다.
  • 레벨 6에 나오는 뚱보의 skill은 5이다.
  • 레벨 8의 첫 부분에만 나오는.. 스스로 공격을 절대로 하지 않는 특이한 적병의 skill은 7이다.
  • 레벨 12에서 등장하는 그림자 인간/도플갱어의 skill은 3이다.
  • 그리고 최종 보스인 쟈파의 skill은 9이다.
  • 0부터 11 사이의 skill 코드 12개 중, 나머지 값들은 쓰이지 않았다. (6, 8, 10, 11)

저 문서에서는 게임의 인트로 화면을 가만히 지켜보고 있을 때 잠깐 등장하는 데모 플레이의 칼싸움도 5, 즉 레벨 6 뚱보의 skill이라고 말한다. (무슨 근거로?)
하지만 내 생각은 다르다. 데모에서 왕자(주인공)와 적병의 스킬이 각각 10과 11, 또는 11과 10이 아닐까 생각한다.
왜냐하면 일단 페르시아의 왕자 원판 소스에서 "10: kid (demo) / 11: enemy (demo)"라는 문자열을 볼 수 있기 때문이다. 저 10과 11이 AI 인덱스를 가리키는 게 아닐까..?

또한, 데모를 오랫동안 지켜보고 있으면 주인공과 적병의 칼싸움 결과는 그때 그때 다르다(난수를 잘 사용하는군!!). 하지만 주인공은 이길 때보다는 질 때가 훨씬 더 많다. 주인공은 적병보다 반격을 당해 칼빵을 맞는 경우가 더 잦으며, 심지어 계속 뒤로 밀려나다가 절벽에서 떨어져 처참하게 죽기도 한다. 최소한 이 두 사람의 skill이 동일해 보이지는 않는다.

이런 이유로 인해 본인은 skill 테이블에서 정말로 미사용인 것은 6과 8 둘뿐이라고 생각한다만.. 이 역시 추측일 뿐이다.

적병의 AI를 결정하는 변수들은 다음과 같다. 어떤 건 직관적으로 이해가 되지만 어떤 건 제대로 문서화돼 있지 않아서 알기가 어렵다. 제일 이해하기 쉬운 방어 관련 변수부터 소개하면 다음과 같다.

  • 방어 확률(blockprob): 주인공의 공격에 얻어맞기만 하는 게 아니라 막을 확률. 레벨 1의 적병은 그런 게 전혀 없어서 우리의 공격에 반드시 당한다. skill 1,2에서는 150/255(대략 60%), 3,4는 200/255(78%)이라고 한다.
    뚱보와 쟈파는 100%로 무조건 막는다. 그래도 가끔은 쟤들에게 막기 없이 공격을 성공시키는 경우도 있는데, 그건 살짝 멀리 떨어진 상태에서 쟤들이 이동이 덜 끝나고 미처 방어 기동을 하기 전에 찌르기가 먹혔기 때문에 그렇다.

  • 방어 후의 재반격(restrikeprob) 확률: 우리 역시 막기 기동을 쓰지 않을 수 없게 하고 칼싸움의 체감 난이도를 크게 끌어올리는 변수이다. skill 0~2의 적병은 재반격을 전혀 하지 않으며, 3,4는 극히 드문 빈도로 재반격을 한다. 그 반면, 뚱보와 쟈파는 매우 높은 확률로 재반격을 하며, 쟈파는 100% 반드시 반격한다.

다음으로 공격 관련 변수이다.

  • 공격 영역에 들어올 확률(advprob): 주인공을 향해 사정거리 안으로 진격해 올 확률..이라기보다는 속도이다. 이건 적병들의 난이도별로 딱히 유의미한 차이가 없는데, 딱 하나 튀는 놈은 바로 레벨 8에 유일하게 등장하는 그놈이다. 얘는 확률이 0이기 때문에 절대로 먼저 들어오지를 않는다. 주인공이 칼을 완전히 집어넣어야만 들어오기 때문에 이때 다시 칼을 꺼내서 공격하거나, 아니면 우리가 치고 들어가서 공격을 막고 반격해야 한다.

  • 공격 확률(strikeprob): 주인공이 사정거리 안으로 가까이 들어왔을 때 공격을 할 확률 내지 속도이다. 이것도 딴 적병들은 비슷한 반면, 레벨 8의 그 특이한 적병만이 이번엔 반대로 유난히 높은 값을 갖고 있다. 이 값이 높은 적병하고는 앞으로 돌진해서 좌우 자리를 교체하거나 가까이에서 2연타 콤보 공격을 하기 몹시 어려울 것이다.

그 외에도 이런 게 있다.

  • 칼 맞은 뒤의 refractory 시간(refract timer): 공격을 당하고 나서 움찔 하는 시간으로, 얘 역시 그렇게 유의미한 동작 차이를 만들지는 않는다. 얘가 10으로 설정된 적병은 20으로 설정된 적병보다 칼에 맞은 뒤에도 좀 더 빨리 앞으로(하지만 주인공의 칼에 맞지는 않는 거리로) 다가온다.

  • 방어가 impair되는 확률(impblockprob ??): 제일 미스터리한 놈이다. 심지어 기술 문서나 소스 코드에 설명도 전혀 되어 있지 않고 대놓고 존재감이 없다. 상급 몬스터로 갈수록 값이 커지는 걸 보니 뭔가 좋은 속성 같은데, impaired block이라는 말은 핸디캡을 나타내는 부정적인 의미인 것도 이해되지 않는다.

아까도 얘기했다시피 제일 쉬운 skill 0짜리 적병은 주인공이 제자리에서 방어 없이 칼을 휘두르고만 있어도 알아서 달려와서 칼 맞고 죽어 주는 유일한 놈이다. 언뜻 보기에 여기에 해당하는 듯한 특성은 advprob이 최대치인 255인 것이다. 그런데 얘는 뚱보, 쟈파 등 다른 악당들의 AI도 최대치 255이기 때문에 유일한 변별 요소가 되지 못한다. 쟤만 blockprob이 완전히 0인데 여기에 그 동작 특성도 포함돼 있는 건가 궁금해진다.

아 그리고 impblockprob 말이다. 문득 드는 생각은.. 주인공과 적병이 계속 막고 치고 난전을 반복하고 있다가 결국 적병이 힘이 밀려서 맞고 나가떨어질 확률과 관계가 있어 보인다. 값이 클수록 오래 버티는 걸까..?? 즉, 쟈파나 뚱보 정도는 돼야 의미를 지니는 변수라 하겠다. 이건 외국의 페르시아의 왕자 해킹 커뮤니티에도 나와 있지 않는 내 추측이다.

게임에 칼싸움도 모자라서 이 정도로 다양한 적병 skill을 대여섯 개 남짓한 변수값의 조절만으로 구현한 거라면 정말 대단하지 않을 수 없다.

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

(페르시아의 왕자 1의 데모 진행 장면. 이 데모 레벨은 실제 게임에서는 존재하지 않는다.
한편, 2편도 게임 실행 후 키를 누르지 않고 스토리를 끝까지 지켜보고 있으면 플레이 데모가 나오기는 한다. 얘는 실제 게임의 레벨 1에서 시작하는데, 왕자는 얼마 가지도 못하고 그 쉬운 적에게도 거의 자살 급으로 칼에 맞아 허무하게 죽어 버린다. 2편이 데모의 퀄리티가 1편의 것보다 더 부실하다.)

페르시아의 왕자 1편은 보스급 몬스터인 뚱보와 쟈파만이 막고 치는 고급(?) 스킬이 필요한 반면, 2편은 빨간 궁전에 나오는 새대가리 적병들이 모두 그 정도 스킬을 보유하고 있다.
2편은 한 화면에 적병이 여러 명 한꺼번에 등장할 수도 있고, 싸우다가 자리를 바꿔서 회피하는 게 거의 불가능해졌고, 막고 치면서 싸우다 보면 서로 가까워지다가 좌우 자리를 바꾸기도 하는 등.. 전투 요소가 1편보다 훨씬 더 강화되었다. 그리고 최종 보스는 칼싸움이 아니라 장풍을 맞혀서 죽이는 것으로 게임 진행 방식이 달라졌다.

끝으로, 저 문서에서 special color와 one extra health는 칼싸움 skill과 무관한 boolean 값이며 큰 의미는 없다.
페르시아의 왕자 1편의 경우, 각 레벨별로 모든 적병들의 기본 HP가 정해져 있어서 동일한데, one extra health가 true인 skill이 지정된 적병은 HP가 그 기본값보다 1 더 많게 된다.
이 비트가 true인 skill은 4가 유일하다. 즉, 보스가 아닌 졸개 중에서 칼싸움을 약간 잘하는 놈이 HP도 1 더 많은 것이다.

그래서 레벨 4에서는 후반부에 HP가 4인 적병이 처음으로 등장하며(기본값 3), 레벨 5에서는 HP가 4부터 시작했다가 나중에 5로 늘어난다.
skill 4인 적병은 던전 레벨에서는 전혀 존재하지 않고 궁궐 레벨에만 존재한다는 것이 흥미로운 점이다. 레벨 4~5, 10~11 말이다.

Posted by 사무엘

2021/11/07 08:35 2021/11/07 08:35
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1951

1. open이라는 타이틀이 붙은 유명 라이브러리들

  • OpenGL: 3차원 그래픽. (DirectX만이 직접적인 경쟁자로 남아 있는 듯..)
  • OpenCV: 2차원 래스터 그래픽에서의 영상 처리. 뽀샵질 보정, 사물 윤곽 인식 따위
  • OpenMP: 병렬처리 프로그래밍. 단순히 함수· 클래스만 제공하는 게 아니라 프로그래밍 언어 자체의 확장까지 수반한다.
  • OpenSSL: 각종 보안/암호 키 교환 프로토콜 구현, 해시· 암호화 함수들과 제반 연산 기능(큰 정수) 컬렉션

또 뭐가 있을까?
얘들은 각자 자기 분야에서 유구한 역사와 압도적인 인지도를 자랑하는 데다, 엄청 방대한 기능들을 무료로 덥석 제공한다. 다양한 언어와 플랫폼을 지원할 뿐만 아니라 최신 알고리즘이 수시로 반영되어 추가되고, 최신 하드웨어의 명령어에 맞게 최적화와 검증도 잘 돼 있다. 그야말로 더 바랄 게 없는 상태이다.

그렇기 때문에 개인적으로 내부 동작 원리를 공부를 하는 게 아닌 이상, 누군가가 현업에서 저런 기능들을 굳이 처음부터 다시 구현할 필요는 없다. 방대한 라이브러리의 사용법을 익혀야 한다는 최소한의 부담만이 있을 뿐.

유닉스에 대해서 누가 말했던가..? "유닉스를 쓸 줄 모르는 사람은(grep 등의 각종 명령어와 유틸리티, 정규 표현식 따위..), 유닉스가 제공하는 기능을 결국은 스스로 직접 또 만들게 될 것이다"라고..;; (reinvent the wheel) 그런 것처럼 말이다.

다만, Open이라는 단어가 붙었고 사용이 무료라고 해서 반드시 오픈소스이기까지 하지는 않은 것 같다. 가령, OpenGL이 오픈소스이고 git 저장소가 있다는 얘기는 난 못 들었다.
그리고 폰트 렌더링 분야의 본좌 라이브러리는 이름이 FreeType이다. OpenType은 라이브러리가 아니라 폰트 파일 포맷 규격의 명칭이다.

지금 국내의 오픈소스 진영엔 libhangul이라고 한글 입력 오토마타를 구현해 놓은 라이브러리가 있고 그걸 유수의 공개 한글 IME들이 사용하고 있다. 얘들은 초창기에 이름이 '열린 한글 프로젝트'였던 것 같은데 지금도 그러한지 궁금하다.

한때 '열린 한글'은 1990년대 말에 아래아한글이 개발 중단 위기에 처했을 때 "우리 다같이 힘을 합쳐서 아래아한글의 클론을 오픈소스 형태로 밑바닥부터 만들어 봅시다~!!" 이런 프로젝트의 명칭으로 쓰이기도 했었다..;; 거의 IMF 금 모으기 운동 같은 발상이었다.

이제는 마소에서 개발한 제품조차도 about이나 acknowledgement 화면에.. 제품 내부에 사용된 각종 오픈소스 프로젝트들 목록이 뜨는 날이 올 것 같은데... 격세지감이다. (하지만 나는.. 정작 내 한글 입력기부터가 오픈소스가 아니며 기존 오픈소스를 사용하는 것도 전혀 없다..;; )

2. GWBASIC 소스 공개!!

작년에는 마소에서 GWBASIC의 원본 소스 코드를 공개했다. 오오 +_+ (☞ 링크)
마소에서는 진작부터 MS-DOS와 Word의 옛날 초창기 버전의 소스를 공개한 바 있다. 하지만 그것들은 본인이 직접 써 본 기억이 없는 너무 옛날 버전이어서 그다지 감흥이나 공감이 없다.

그에 비해 GWBASIC은 본인의 어린 시절의 경험이 잔뜩 깃든 물건이고, 프로그램을 만들어 돌리는 프로그램이다 보니 접하는 느낌이 다른 제품들의 소스와는 사뭇 다르다.

  • Syntax error, Missing operand, Illegal function call, FOR Without NEXT (한글판은 "문법이 틀렸읍니다, 피연산자가 없읍니다, 기능호출 사용이 잘못되었읍니다" 등등..) 같은 친숙한 에러 메시지 문자열들은 GWDATA.ASM에 있다. 전설적인 Ok 프롬프트 값도 저기에 정의돼 있다.
  • 그래픽 모드에서 이차차분 알고리즘으로 원을 그리는 함수, 재귀호출로 flood fill을 수행하는(PAINT 문) 함수는 ADVGRP.ASM에 구현돼 있다.
  • MOTOR문은 하는 일 없이 에러만 내뱉는 것 같았는데, GIOCAS.ASM을 보니 실제로도 그러하다. 저건 카세트 테이프의 잔재일 뿐, 16비트 PC용인 GWBASIC에서는 하는 일이 원래 없다.

  • F1에 LIST부터 시작해 TRON, TROFF, KEY, SCREEN 0,0,0을 기본 배당하는 테이블은 GWRAM.ASM에 있고..
    Alt+A에 AUTO부터 시작해 BSAVE, COLOR, ... 등을 배당하는 테이블은 IBMRES.ASM에 있다.
  • 소스를 저장할 때 SAVE에다가 P 옵션을 줘서 어설프게 암호화 프로텍션을 거는 부분은 GIODSK.ASM, DISKCOM.ASM을 참고하면 될 듯하다.
    암호화된 파일과 그렇지 않은 파일이 첫 바이트 0xFE 또는 0xFF로 구분된다는 것을 확인 가능하다.
  • PLAY문에서 A~G 등 각종 문자열들을 해석하는 부분은 GWSTS.ASM을 보라. "MUSIC MACRO LANGUAGE"라고 주석이 돼 있다.

  • 부동소수점 연산?? 요즘처럼 전용 CPU 명령어 한 방으로 끝나는 시절이 아니었으니 전부 자체 구현이다.
    빌 게이츠가 왕년에 직접 고안했다는 MBF 부동소수점의 구현부가 바로 MATH1/2.ASM에 있다. 삼각함수, 로그도 내부적으로 테이블을 내장해서 소프트웨어적으로 직접 계산한다.
  • 난수를 생성하는 RND 함수의 공식은 MATH1/2.ASM에 있다. 그 유명한 Donald Knuth 아재의 책을 참고해서 구현했다고 주석에 적혀 있다.

아아.. 옛날 추억이 새록새록~~~
어셈블리어 코드를 읽을 수 있다면 흥미로운 유물들이 넘쳐날 것이며 아는 만큼 보일 것이다. 내가 읽을 수 있다는 뜻은 아님..;;
GWBASIC은 아무래도 정상적인 소프트웨어 개발 도구와는 좀 동떨어진 구석이 있지만, 그 옛날에 대화식 프로그래밍 환경이라는 걸 만들 생각을 한 건 충분히 참신하다고 볼 수 있다.

2000년대 이후에 태어난 뉴비 프로그래머들을 위해서 FAQ를 아주 자상하게 써 놨다. 이런 질문의 답변까지..;;

  • 아니, 오픈소스라면서 확장자가 C/CPP인 파일이 왜 하나도 안 보이나요?
  • C 파스칼 놔두고 왜 이렇게 알아보기 어려운 언어로 코딩을 했나요?

저 때는 고급 언어 컴파일러들이 엄청나게 비쌌고, 생성하는 코드의 성능이 좋지 못했다.
빌 게이츠와 그 일당들은 20대 나이 때, 지금보다 컴퓨터가 훨씬 더 열악하고 비싼 기계이던 시절에 여느 평범한 프로그램이 아니라 딴 프로그램을 만들고 돌리는 가상 머신급의 프로그램을 한땀 한땀 어셈블리어로 코딩해서 돌리고 납품하고 팔아먹었다는 거다.
그리고 한 언어의 인터프리터로서의 기능이 다 들어있던 GWBASIC.EXE의 크기는 실행 파일 압축 따위 없이도 겨우 6만 바이트 남짓밖에 안 했다는 거다.

이건 16비트 x86이 다른 CPU 아키텍처와 비교해 봐도 명령어 배치가 이례적으로 굉장히 조밀하기도 했기 때문에 가능한 일이다. 메모리 아끼기 위한 CISC 방식의 승리인 셈이다.

Posted by 사무엘

2021/07/27 19:36 2021/07/27 19:36
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1914

« Previous : 1 : 2 : 3 : 4 : 5 : 6 : ... 14 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/11   »
          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

Site Stats

Total hits:
2988798
Today:
358
Yesterday:
1477