요약
1990년대 DOS 데모를 C로 옮겨 브라우저에서 원본 코드 그대로 돌리는 프로젝트가 나왔습니다.
GitHub 이용자 treylorswift가 공개한 demoscene-recomp입니다. 데모신(그래픽과 음악으로 프로그래밍 실력을 겨루는 컴퓨터 예술 문화)의 1990년대 초반 대표작을 CPU 에뮬레이터 대신 미리 번역한 코드로 브라우저에서 실행합니다.
왜 중요한가
- 녹화 영상이나 다시 만든 작품이 아니라, 원본 실행 파일의 코드가 브라우저에서 직접 화면을 그립니다.
- 하드웨어만 소프트웨어로 흉내 내고, 로더와 음악 재생기, 효과 코드는 1992~1993년의 것을 그대로 씁니다.
핵심 내용
- x86 에뮬레이터로 데모를 끝까지 돌리며 CPU가 실제로 실행한 코드 블록을 모두 기록합니다.
- 기록한 명령어를 하나씩 C로 옮기고, 타이머·VGA·Sound Blaster 모델과 함께 WebAssembly로 컴파일합니다.
- 결과는 인터럽트, 포트 접근, 프레임 시점까지 에뮬레이터와 하나하나 대조해 검증했다고 밝혔습니다.
- 퓨처 크루의 Unreal과 Second Reality, 트리톤의 Crystal Dream II 등 네 편을 원본 파일 그대로 실었습니다.
- 원작이 VGA 70Hz 기준이라 70Hz나 140Hz 이상 화면에서 가장 부드럽게 보인다고 안내합니다.
HN 반응
- 30년 가까이 데모신에서 활동한 이용자가 AI를 데모신에서 떨어뜨려 달라고 하자, 사람의 실력이 핵심이라는 동의와 AI도 도구라는 반론이 길게 맞섰습니다.
- 클록 단위까지 정확히 흉내 내는 에뮬레이션과 무엇이 다르냐는 질문에는, 당시 PC는 기종마다 성능이 20배 넘게 달라 큰 의미가 없다는 답이 나왔습니다.
브라우저에서 옛날 데모를 돌려볼 수 있다는 게 좋을 수 있다는 건 이해하고, 그 자체는 괜찮습니다. 하지만...
제발 AI는 데모씬에서 떼어 놓아 주세요.
저는 데모씬에서 거의 30년을 활동했고, 제 삶의 큰 부분입니다. AI로 도구를 만들고 데모를 코딩하는 사람들이 데모씬이 흥미로운 바로 그 이유를 없애 버려서 결국 데모씬을 망치게 될까 봐 정말 걱정됩니다. 저는 실제 사람들의 지식과 기술, 창의성에 감탄하고 싶습니다. 프롬프트를 잘 쓰는 능력에 감탄하고 싶은 게 아니고요.
특히 AI 리마스터 옵션이 정말 싫습니다. 원래는 그런 모습이나 소리로 만든 게 아니었으니까요.
저는 둘 다 설 자리가 있다고 봅니다. 툴 지원(TAS) 게임 스피드런과 도구 없이 하는 스피드런이 공존하는 것처럼요.
물론 둘 중 하나를 다른 쪽인 것처럼 속이지 않는 것이 똑같이 중요합니다.
그리고 '리마스터'는 게임에서도 그렇듯 (만드는 쪽과 보는 쪽 모두) 취향의 문제입니다.
"손대는 것마다 금이 된다"는 능력에서 금을 똥으로 바꿔 놓고는 "그래, 이거 괜찮은 능력이네" 하는 꼴이네요.
거꾸로 된 미다스의 손이네요.
'미에르다스(Mierdas)의 손'이라고 부르는 사람도 있겠죠.
거기에 안목까지 없으니 금보다 똥을 더 좋아하는 거죠.
왜 진입 장벽을 세우나요? 데모씬은 늘 기술로 불가능한 걸 해내는 일이었잖아요. 지금의 기술은 AI고요.
데모씬도 AI를 받아들여야 합니다.
제 원래 글에서 꽤 분명히 말했다고 생각합니다.
핵심은 사람이 기술로 불가능해 보이는 일을 해내는 것이지, 기술이 기술로 가능한 일을 해내는 게 아닙니다. AI를 쓰면 AI에게 시킨 것밖에 한 게 없고, 저는 그런 건 결코 인상적으로 느낄 수 없습니다.
그리고 데모파티 경연에서는 어떻게 투표하실 건가요? 쓴 토큰 수로요?
대부분의 파티는 제작에 AI를 쓰는 걸 엄격히 금지하지만, 그 규칙을 지킬 만큼 정직하지 않은 사람이 있을까 봐 걱정됩니다.
어떤 도구를 썼느냐에 따라 왜 투표를 다르게 해야 하죠?
AI로 만드는 건 AI 없이 만드는 것만큼 인상적이지 않으니까요.
그렇긴 한데, 모두가 AI를 쓰면 기준선도 모두에게 같이 올라가지 않을까요? 더 빨리 더 많이 만들어 낼 수 있으니 인상적이라고 느끼는 기준이 훨씬 높아질 테고요.
무작위로 반반 나눠서 절반은 AI를 쓰고 절반은 안 쓰게 한 뒤 블라인드로 심사해서 결과가 어떻게 나오는지 보는 것도 재미있겠네요.
데모씬은 전부 기술 실력을 뽐내는 일입니다.
AI를 쓰는 데에는 기술 실력이 거의 필요 없습니다.
이게 핵심입니다.
문제는 당신이 데모씬을 그냥 화려한 영상 정도로만 생각한다는 점인 것 같습니다. 실제로는 심한 제약을 지키면서 화려한 영상을 만드는 일입니다. 80~90년대 고전 데모씬에서는 그 제약이 처리 능력이나 RAM이었습니다. 요즘은 처리 능력이 엄청나니까, 실행 파일 크기에 상한을 두는 식으로 사람들이 일부러 제약을 만듭니다.
제약 안에서 데모를 만드는 데 AI를 쓰는 건 그냥 인상적이지 않습니다.
AI는 디버거나 컴파일러, IDE 같은 도구와 성격이 다릅니다. 오히려 일을 다른 사람에게 맡겨 놓고 자기가 만든 것처럼 공을 가로채는 것에 가깝습니다.
내가 Claude에게 시켜서 똑같은 걸 만들 수 있는데, 바이브 코딩으로 만든 데모를 왜 신경 써야 하죠?
AI가 만든 데모와 사람이 만든 데모를 나란히 놓으면, 사람이 만든 쪽이 곧바로 더 흥미롭습니다. 언젠가 나도 이르고 싶은 높은 수준의 기술을 보여 주니까요. AI가 만든 데모는 프롬프트를 쓴 사람만큼이나 기억에 남지 않습니다. 그 사람의 실력을 보여 주는 게 아니니까요.
기계가 수천 년 전부터 누구보다 무거운 걸 들 수 있었는데도 우리가 역도 선수를 대체로 대단하게 보는 것과 같은 이유입니다.
그렇다고 대부분의 사람이 지루한 작업이나 정보 검색에 AI를 쓰는 걸 싫어한다고 생각하지는 않습니다. 역도 선수가 스미스 머신으로 말도 안 되게 무거운 중량을 안정시켜 들어도 대부분 여전히 감탄하는 것과 비슷하죠.
Claude에게 시켜서 똑같은 걸 만들 수 있다면, 어떤 코드 결과물이든 왜 신경 써야 하죠? 지금 많은 사람이 씨름하고 있는 질문입니다.
도구 사용을 제한하는 대회도 늘 있을 거고, 제한하지 않는 대회도 늘 있을 겁니다. 어느 쪽이든 예는 많습니다.
요점은 당신이 아무것도 만들어 내지 않는다는 거라고 생각합니다. CRUD 앱이라면 그래도 괜찮겠지만, 애초에 기술 실력을 뽐내는 게 목적인 활동에서는 꽤 무의미해 보입니다.
그건 좀 말이 안 되지 않나요? 봇이 파티에 나타나서 발표할 계획을 짜는 게 아니잖아요. 기계를 다루는 건 사람이고, 사람이 없으면 결과물도 없습니다.
내가 AI로 누군가의 기술 실력을 이길 수 있다면, 그 사람의 기술 실력은 어떤 가치가 있을까요? 지금 많은 사람이 씨름하고 있는 질문입니다.
사람이 AI 없이 더 잘 풀 수 있는 문제를 내놓을 수 있다면 흥미로운 대회가 될 테고, 거기서는 어떤 도구를 썼는지가 크게 중요하지 않을 겁니다.
물론 "AI 없이 가장 좋은/작은/빠른 앱을 누가 개발하나" 같은 대회라면 전혀 문제없습니다. "낫으로 풀을 누가 제일 많이 베나" 같은 대회도 있고, 참가자는 모두 무엇에 나서는지 알고 즐겁게 즐기잖아요. 그건 아무 문제 없습니다.
저도 체스 대회에 체스 기계를 들고 나가서 상대들을 이길 수 있겠지만, 그건 체스 대회의 취지가 아니죠.
당연히 그걸 막는 규칙이 있죠. 데모씬에서 AI를 금지하는 규칙을 둘 수 없다거나 "데모씬은 AI를 써야 한다"고 말하는 사람은 아무도 없습니다. 체스 프로가 기계와 겨루는 시범 경기도 있고요.
이건 체스 프로가 기계와 겨루는 이야기가 아닙니다. 어떤 사람이 대회에 나가겠다고 해 놓고 실제로는 체스 프로그램을 돌려서, 자기가 체스 프로와 대국해서 이겼다고 주장하는 이야기입니다.
예술가가 도구와 결과물을 얼마나 통제하느냐의 문제입니다. 복사기와 연필은 둘 다 사진을 복제하는 데 쓸 수 있는 도구입니다. 복사기가 연필보다 훨씬 빠르고 결과도 아주 정확하지만, 예술적 가치가 있는 건 연필로 그린 쪽뿐입니다. 결과물의 예술적 가치는 창작 과정을 나타내는 증표입니다.
한쪽은 자기 지식과 창의성으로 무언가를 만드는 것이고, 다른 쪽은 도둑질한 지식과 도둑질한 창의성을 가장 크게 모아 놓은 것을 이용해 무언가를 만드는 것입니다.
맞습니다. 하지만 AI로 "해내는" 건 실제로 해낸 게 아니잖아요? 뭔가가 만들어지긴 했겠죠. 그렇지만 결과물이 데모씬의 목적이었던 적은 없습니다. 완성품은 그저 작업 증명(proof-of-work)이었을 뿐입니다.
어디까지 가자는 겁니까? 분명 많은 데모는 0과 1로 쓰이지 않았고, 코더들은 대부분 컴파일러와 어셈블러로 바이너리를 만들었을 겁니다. 파일을 손으로 합치는 대신 링커도 썼고요. 많은 사람이 책으로 배웠으니, 그건 책에서 읽은 걸 되풀이한 것일 뿐입니다.
AI도 팀원에게 일을 맡기는 것과 다르지 않습니다. 중요한 건 비전과 실행입니다.
참 이상한 논리네요. 이런 말을 진지하게 하는 사람이 있다는 게 믿기지 않습니다. 컴파일러, 어셈블러, 링커, 책은 AI를 쓰는 것과 같지 않습니다. 둘 다 도구이니 동등하다는 게 아니에요. 한쪽은 자기 머리를 써서 지식을 얻고 원리를 배우는 것이고, 다른 쪽은 누군가에게 만들어 달라고 부탁하는 겁니다. 그래도 이 문제로는 서로 합의하지 못할 것 같네요.
내가 다른 사람에게 일을 맡겼다면, "내 비전과 실행" 덕분이라며 내가 만들었다고 주장할 수는 없습니다.
글쎄요. 기업은 늘 그렇게 합니다. 비전을 만들고, 직원을 고용해 그걸 현실로 만들게 하면 그게 회사의 비전이자 실행이 되죠. 데모도 보통 기여한 개인이 아니라 데모씬 그룹 이름으로 발표되고요.
많은 사람이 AI가 자기들에게 무엇을 줬는지 헷갈려 하는 것 같습니다. 바로 보스가 될 수 있는 능력입니다. 예전엔 부자에게나 허락되던 일이죠. 이제는 수천, 수백만 달러를 들이지 않고도 "팀"을 꾸려서 머릿속에 있는 아이디어는 뭐든 내놓을 수 있습니다.
그리고 대부분의 사람은 보스가 실제로 얼마나 기여하는지 직접 겪어 봐서 알죠.
물론 직접 사업을 시작해서 알아볼 수도 있겠죠.
아니요. 데모씬은 참가자들의 순수한 실력을 보여 주는 일이었습니다.
기술을 최대한 끌어내는 일과 크게 겹치긴 했지만, 주된 목적은 늘 (지금도) 실력을 보여 주는 것이었습니다.
AI를 도구로 쓰면서도 순수한 실력을 보여 줄 수 있습니다. 데모씬은 고생 대회가 아닙니다. 그렇지 않다면 왜 예전 데모들이 0과 1로 쓰이지 않고, 그렇게 쉽게 만들어 주는 어셈블러를 썼는지 따져 봐야 하지 않겠습니까!