2015년 11월 30일 월요일

설계된 인간(The Schematic Man) - 프레드릭 폴(Frederik Pohl)

플레이보이 SF 걸작선 (The Playboy Book of Science Fiction) 1권에 실린 매우 짧은 단편 작품이다.

10페이지 분량도 되지 않는, 말 그대로 장편(掌篇) 소설이고, 어쩌면 소설이라기 보다는 백일몽이나 스쳐 지나가는 상상 한 조각 정도?

주인공은 컴퓨터를 전공으로 하는 교수.

당시(1969년)에는 컴퓨터의 활용 범위가 복잡한 수학 계산에 주로 이용되었지만, 작가는 자기 자신을 모델링하여 컴퓨터에 입력하고 시뮬레이션 하는 작업에 몰두하게 된다.
(인공지능과 유사하지만, 범용 인공지능이 아닌, 일 개인의 행동 양상을 예측하는 시스템)

동료 교수가 왜 그런 일을 하냐고 묻자, 앨런 튜링의 튜링테스트에 대한 언급을 한다.

이 때 "무엇이 '나'인가?"라는 질문이 나오고, 주인공은 튜링 테스트를 언급하며, 외적인 부분을 제외한다면 나와 시스템을 분간하지 못할 것이라고 말한다.

- 공각기동대 극장판에서도 이와 같은 질문이 나온다.
- 무엇이 과연 나를 만드는가. 얼굴, 목소리, 기억......
- 타인으로 하여금 나를 구분하게 만드는 특징은 위와 비슷하겠지. 기억은 바로 그 타인과의 공유하는 기억으로 한정되겠지만....
- 나 자신에게 인식되는 나는?
- 철학적인 문제가 되는가? 종교적인 문제가 되는가? 나라는 본질이 존재하기는 할 것인가?

- 모인사가 말하길, 나는 누구인가, 하는 질문의 답을 찾고자 한다면, 내 주위에 있는 사람들과의 관계를 통해서만 답을 찾을 것이라 했다.
- 한편으로는 이와 같은 심리적인 작용이 아주 자연스러운 것이다.(비판받기 쉽기도 하지만)
- 흔히들 한국의 주부들이 자가 자신을 누군가에 소개할 때 하는 방식이 이와 같다.
- 남편이 누구고 무엇을 하며, 자식이 몇명이고, 자식들이 무엇을 하며, 시댁이 어떠하고 친정이 어떠하고....
- 어린이들도 마찬가지....아버지가 뭐하고 어머니가 뭐하고 형제관계가 어떻고....
- 하지만 서양의 어린이들은...좋아하는 색깔이 뭐고, 즐겨하는 놀이가 뭐고, 싫어하는 음식이 뭐고....


여튼....
소설의 주인공은 자신을 시뮬레이션 하는 시스템을 만들어가며, 이상한 증세에 시달린다.
시스템이 완성되어 갈수록 자신의 기억은 점점 사라지게 되는 것.
마치 자신의 기억들이 시스템으로 이동하는 듯한.....

그리고 마침내는 자신 또한 하나의 시스템이 아닐까 하는 의문.
수학적 모델로 표현된 자신을 컴퓨터 프로그램으로 만들지만, 그 모델이 완벽해질 수록, 자신과 프로그램의 차이는 줄어들고, 과연 내가 프로그램과 무엇이 다를까라는 자아의 혼란.



이 소설은, 특별한 사건이나 갈등 전개 결론 없는, 그저 상상의 한 조각과 같지만, 읽으면서 자꾸 나를 또 다른 상상에 빠지게 만드는....영감을 불어 넣는 작품이었다.

언뜻, 내가 좋아하는 사람을 영원히 곁에 두기 위해, 일종의 시뮬레이션 시스템을 만드는 작업도 어렵지만 재미있겠다 싶다. 시스템의 이름은 미믹(Mimic)이면 어떨까?

아마도 이런 시스템이 일반화 된다면, 사람들의 관계가 점점 폐쇄적으로 흘러가서 인간적인 교류가 없는 이상한 사회가 되지 않을까도 싶다.
어쩌면 이렇게 인류가 멸망하게 될지도....

또...시스템의 발전으로 특정 개인과 매우 흡사해진다면 과연 누가 진짜이고 누가 가짜인지, 그리고 이런 과정에서 진짜와 가짜를 구별하고자 하는 노력이 있을 것이고, 인간 본질에 대한 접근과 성찰이 활발해지지 않을까?

2015년 4월 26일 일요일

MAME에 대한 궁금증

시간이 날 때에 아무 생각 없이, 부담 없이 즐길 수 있는 게임으로 MAME 만한 것이 없다.

MAME는 Multiple Arcade Machine Emulator의 약자로 업소용 게임기의 게임 에뮬레이터이다.

대부분 과거 십수년이 지난 게임들이기에 저작권에 대한 문제도 그리 민감하진 않고 (그렇다고 저작권이 없다는 뜻은 절대 아니다. 그러기에 게임 하나마다 게임에 대한 사용권리를 가지고 있는지 주의를 환기시키는 문구가 포함되어 있다.),
플레이 시간이 비교적 짧아서 부담도 적다.

그런데 그 많은 게임들을 대체 어떻게 에뮬레이팅을 하는 것일까?

게임기에 대한 큰 분류가 있어서 동일한 기종에서 돌아가는 게임들이 아주 많고, 그런 게임기들 몇가지를 에뮬레이팅 해 주면 되는 걸까?
설마 각 게임마다 각각 에뮬레이팅을 해 주는 것일까?
간혹 롬파일이 없다는 문구도 보이던데, 그럼 롬파일에 대한 정보도 모두 가지고 있는 걸까?

딥스위치에 대한 정보는 어떻게 알고 있으며, 입력 장치의 수정은 어떻게 하고 있으며, 자동연사기능은 왜 없어진걸까?


궁금증은 많지만, 의문을 풀고 싶은 욕구는 적었던가 보다.
수년 이상을 가졌던 의문을 풀지 않고 그냥 지내 온 것을 보니.....

그래서....마음만 먹으면 얼마든지 구할 수 있는게 소스코드이니 소스를 구해서 저런 궁금증 만이라도 풀어보기로 했다.


최신 소스코는 다음에서 받을 수 있다.
http://www.mamedev.org/release.html

0.160b인데, MAME와 MESS의 소스코드가 묶여 있다. (대략 55MB ~ 79MB)

살펴보니, 이미 다운로드 받았던 0.149 소스가 있어서 이것을 풀어 보았다.

MAME 소스의 디렉토리 구조

대략적인 소스의 디렉토리 구조는 위와 같았다.
0.149 버전에서도 MAME와 MESS의 소스가 함께 존재했다.
에뮬레팅에 대한 핵심적인 부분은 emu 폴더에 있지 않을까 싶다.


소스가 너무 방대하기에 소스인사이트를 이용해서 살펴보기로 하고
프로젝트를 만들어 파일들을 프로젝트에 등록하고 싱크로나이즈 해 주었다.

전체 소스들이 정렬되어 나타난 브라우징 창이 다음과 같았다.

MAME의 소스들
이 창에서 7번째부터 익숙한 이름이 보인다.
1942.*, 1943.*
캡콤의 유명한 슈팅게임들이다.
두개의 C 파일과 하나의 헤더 파일.
drivers라는 폴더와 video라는 폴더, includes라는 폴더에 각각 위치하고 있음을 볼 수 있다.

잠깐 살펴보니 drivers폴더에 있는 내용이 알아보기 쉽다는 것을 알게 되었다.


잠시 MAME를 직접 구동해서 게임을 하나 골라서 해 보았다.

슈퍼 보블보블

우리에겐 보글보글로 알려진 게임인데, MAME에서의 이름은 Super Bobble Bobble이다.
윈도우 타이틀바에 표기된 [sboblbob]가 소스 파일의 이름일지 모르겠다는 생각이 들었다.
하지만 찾아보니 그런 파일은 없었다.

조금 더 찾아보니, Bublbobl.c(drivers 폴더)라는 파일에 다음과 같은 부분이 보인다.

보글보글 게임에 대한 매크로

위 소스의 밑에서 두번째 줄을 보면,
GAME( 1986, sboblbob,   bublbobl, boblbobl, sboblbob....
라고 되어 있다.

그리고 GAME이라는 매크로는 다음과 같이 정의 되어 있다.
PARENT가 보글보글(bublbobl)인 게임의 몇가지 버전들이 위와 같이 주~욱 나열되어 있는 듯하다.


이렇게 보니 MAME는 엄청난 노력이 들어간 에뮬레이터였다.
처음의 시작부터 현재의 모습까지 오는 과정에는 엄청난 노력과 발전이 있었음을 미루어 짐작할 수 있다.
아마도 지속적인 발전을 해 오면서 공통되는 부분을 묶고, 기능을 공유할 수 있도록 일반화 하는 과정이 있었을 것이며, 그럼에도 각 게임 하나 하나의 에뮬레이션도 직접 손대야 하느 번거로움까지....


아주 아주 맛보기만 보았지만, 시간이 나면 나머지 의문들도 하나 둘씩 파헤쳐 볼 수 있기를 바래본다.