Microsoft Comic Chat, 오픈 소스로 공개
(opensource.microsoft.com)- IRC 대화를 캐릭터·말풍선·표정이 담긴 만화 패널로 자동 변환하던 Microsoft Comic Chat의 소스 코드가 공개
- 1995년 개발을 시작해 Visual C++ 4.0과 MFC로 제작했으며, 대화 단서를 해석해 자세·표정·제스처·패널 배치를 실시간으로 결정한 뒤 1996년 Internet Explorer 3와 함께 출시
- Vincent Connare가 1994년 디자인한 Comic Sans는 손글씨 같은 비격식체가 말풍선 대화와 어울리면서 Comic Chat에서 처음 실질적인 사용처를 얻음
- 저장소에는 원본 스냅샷과 함께 최신 Visual Studio에서 빌드하고 현대 IRC 서버와 고해상도 Windows 환경에서 실행하기 위한 AI 기반 현대화 시도가 포함되지만, 완성된 재출시판이 아닌 작동 사례임
- 24개 언어로 현지화되고 Windows 98에 포함됐던 Comic Chat의 공개는 1990년대 인터넷 실험의 역사를 보존하는 동시에 개선·포팅·새로운 시각적 채팅 개발의 기반을 제공함
IRC 대화를 만화로 바꾼 채팅 클라이언트
- Microsoft Comic Chat은 Internet Relay Chat(IRC) 대화를 삽화 캐릭터, 말풍선, 표정이 포함된 만화 패널로 자동 구성하는 채팅 클라이언트임
- 텍스트가 화면을 가득 채우던 1990년대 중반의 인터넷 채팅과 달리, 참가자를 캐릭터로 나타내고 대화가 여러 만화 패널에 걸쳐 전개되도록 설계함
- 입력된 문장에서 대화 단서를 찾아 캐릭터의 자세와 표정을 선택함
- “I like that”이라고 입력하면 캐릭터가 자신을 가리킬 수 있음
- 분노를 암시하는 텍스트에는 찡그린 얼굴이나 팔짱 낀 자세를 적용할 수 있음
- 오늘날 메시징 앱에서 익숙한 반응, 스티커, GIF, 아바타, 영상, AI 생성 콘텐츠보다 앞선 시기에 시각적 온라인 소통을 실험함
Comic Sans가 처음 자리 잡은 소프트웨어
- Microsoft 타이포그래퍼 Vincent Connare가 Comic Sans를 1994년에 디자인함
- 비격식적이고 손으로 쓴 듯한 글자 형태가 Comic Chat의 말풍선 대화와 어울리면서 이 글꼴이 처음으로 실질적인 사용처를 얻음
- Comic Chat은 telnet, Usenet, IRC 같은 기술에서 시각적 웹으로 넘어가던 초기 인터넷 시대를 기억하게 하는 소프트웨어로, 스크린샷과 타이포그래피 논쟁을 통해 알려진 Microsoft 역사의 일부이기도 함
대화 단서를 해석한 자동 만화 구성
- Microsoft Research의 Virtual Worlds Group에서 일하던 David “DJ” Kurlander가 대화 기록을 시각적으로 표현하는 방식을 구상하고 1995년 개발에 착수함
- Visual C++ 4.0과 MFC로 제작됐으며, 1996년 Internet Explorer 3 웹 브라우저와 함께 출시됨
- 단순히 IRC 위에 만화 형태의 인터페이스를 덧씌운 것이 아니라, 텍스트의 대화 단서를 해석해 적절한 시각 요소를 선택함
- 캐릭터의 자세와 얼굴 표정
- 제스처와 말풍선
- 대화 흐름에 맞는 패널 배치
- 메시지를 표시하는 데 그치지 않고 대화가 만화로 어떻게 보이고 느껴져야 하는지 실시간으로 편집 결정을 수행함
- DJ Kurlander, Tim Skelly, David Salesin은 이 기술을 자동 삽화 구성 및 배치 실험으로 정리해 SIGGRAPH ’96에서 발표함
Jim Woodring이 만든 시각적 세계
- Comic Chat 특유의 캐릭터와 시각적 스타일은 독립 만화가 Jim Woodring이 제작함
- 개발팀은 실제 채팅 세션의 대화 기록을 Jim Woodring에게 전달해 삽화로 만들게 한 뒤, 그 결과를 바탕으로 전체 아이디어를 계속 추진할 가치가 있는지 판단함
원본 코드와 AI 기반 현대화 사례
- Microsoft는 Comic Chat을 소프트웨어 역사로 보존하고 커뮤니티가 탐구·학습·확장할 수 있도록 소스 코드를 공개함
- 저장소에는 원본 소스 스냅샷과 몇 가지 AI 기반 현대화 시도가 함께 들어 있음
- 1990년대 C++ 및 MFC 코드를 최신 Visual Studio 도구로 빌드함
- 현대 IRC 서버에 연결함
- 오늘날의 고해상도 Windows 시스템에서 읽기 쉬운 형태로 실행함
- 현대화 결과물은 다듬어진 재출시판이 아니라, 기존 Comic Chat이 현대 시스템에서도 살아날 수 있음을 보여주는 작동 사례임
- 커뮤니티는 이를 기반으로 코드 개선, 다른 환경으로의 포팅, 기술 실험, 새로운 형태의 시각적 채팅을 시도할 수 있음
초기 인터넷의 실험성을 보존한 타임캡슐
- 인터넷이 어떤 모습으로 발전할지 정해지지 않았던 시기에 “채팅방이 만화처럼 보이면 어떨까?”라는 아이디어를 실제 제품으로 구현함
- 출시 후 24개 언어로 현지화됐으며 Windows 98에도 포함됨
- 프로젝트에 참여한 DJ Kurlander, Tim Skelly, David Salesin, Jim Woodring과 개발팀의 결과물은 약 30년이 지난 뒤에도 기억되고 실행되고 있음
- 장난스럽고 관습을 벗어난 창의적 아이디어도 실제 소프트웨어로 제작·배포될 수 있음을 보여주며, 공개된 소스는 1990년대 Microsoft 역사를 연구하거나 2026년의 시각적 채팅을 새로 구상하는 출발점이 됨
댓글과 토론
Hacker News 의견들
- 많은 도움을 받아 이 일을 성사시킨 Robert Standefer임. Comic Chat 오픈소스 공개가 이처럼 환영받아 기쁘고, 실제로 적절한 시간과 장소에 있었기에 가능했던 6년에 걸친 흥미로운 사연이 있음
Scott Hanselman과 함께 공개를 추진했지만 원 개발자는 내가 아니라 DJ Kurlander이며, 그도 이 프로젝트를 적극적으로 지지하고 반겼음- Comic Chat은 Jerk City 만화로만 접했음. 직접 써보지는 않았지만 늘 참신한 발상이라고 생각했음
- Comic Chat은 2008년에 시작한 첫 스타트업 Chogger에 영감을 줬기에 각별함. Chogger는 만화 제작 웹 앱이었고, 학생들이 재미있게 이야기를 쓰도록 하려던 초중고 교사를 중심으로 월 사용자 3만 명까지 성장했음
제작 도구는 Adobe Flex(Flash)와 정적 타입 JavaScript 같은 ActionScript 3.0으로 만들었으며, 말풍선 꼬리를 끌어 움직이는 동작을 제대로 구현하는 데 정말 많은 시간을 썼던 기억이 남
한 교사가 제작한 사용 영상도 있음: https://www.youtube.com/watch?v=YKT70TBw1vw- 으악, 너무나 ActionScript다운 UI다. 대체 왜 UI에서 그런 느낌이 나는지는 상상조차 하기 어려움
- Comic Chat은 인터넷 역사의 한 조각이지만, 2002년 무렵 IRC 활동을 시작했을 때는 상당히 미움받고 있었음. 이미 수년간 실제로 써본 사람이 거의 없었으니 일종의 문화적 기억 때문이었던 듯함
Comic Chat은 문맥만으로 만화 캐릭터의 모습과 감정을 추론하는 대신, 이를 명시적으로 표시하도록 IRC 프로토콜을 확장했음. 모든 메시지에 의미 불명의 문자열을 붙여 다른 Comic Chat 사용자는 해독할 수 있었겠지만, 나머지에게는 스팸성 잡음처럼 보였음
직접 내려받아 확인했기에 그런 문자열이 붙었다는 사실은 확실하지만, 기본 설정이었는지는 기억나지 않음- 내가 관리하던 IRC 서버에서는 이런 메시지가 전송되면 자동 퇴장시키도록 설정했음. 호기심에 Comic Chat을 설치한 정상 사용자도 있었기에 즉시 차단 대신 세 번 퇴장당하면 차단하는 방식으로 바꿔야 했음
이들은 IRC와 인터넷 문화를 거의 모르거나 기술에 완전히 문외한인 경우가 많았는데, 어떻게든 Comic Chat을 실행해 우리가 운영하던 외딴 서버까지 찾아온 이들을 골려주는 재미도 있었음 - 예를 들면
Appears as TIKI (#G010E010M1)같은 문자열이었음 - 특히 당시에는 이런 방식이 Microsoft의 전형적인 관행이었음
- 맞다, 기본 설정이었음. 아무 설정도 바꾸지 않았는데 채팅방에 들어갈 때마다 미움받았던 기억이 남
- 내가 관리하던 IRC 서버에서는 이런 메시지가 전송되면 자동 퇴장시키도록 설정했음. 호기심에 Comic Chat을 설치한 정상 사용자도 있었기에 즉시 차단 대신 세 번 퇴장당하면 차단하는 방식으로 바꿔야 했음
semantic.cpp77번째 줄에 흥미로운 이스터 에그가 있음:if (CheckWord(words, "OXio")) {
텍스트에OXio가 들어가면 “양 끝은 둥글고 가운데는 hi인 것은?”이라는 수수께끼가 실행됨- 관련 논문: https://dl.acm.org/doi/pdf/10.1145/237170.237260
개발자들이 레이아웃 엔진 설계를 다룬 논문을 썼음 cmx.js라는 웹 앱과 라이브러리를 이용하면 XKCD 스타일 만화를 쉽게 만들 수 있음
https://orsenthil.github.io/cmx.js/
https://senthil.learntosolveit.com/posts/2026/06/17/xkcd-dia...- https://bonequest.com/
- Rands는 실제로 프로그래머이자 제품 관리자임: https://randsinrepose.com/
HAGHLUABLABG라니, 이게 아직도 계속되고 있다는 게 믿기지 않음- 영국에서는 접속 차단되어 있음
- “누가 연석 맛을 보고 싶은 모양이군!”
https://achewood.com/2007/07/05/title.html - 미국 국민 여러분, 우리의 오랜 국가적 악몽이 끝났습니다
- GitHub 저장소 바로가기: https://github.com/microsoft/comic-chat