Microsoft Comic Chat: O IRC que falava em banda desenhada (e agora é open source)
30 anos depois, o código do chat que ajudou a lançar o Comic Sans e que transformava conversas IRC em banda desenhada está aberto ao mundo. Em 1996, a Microsoft lançava o Internet Explorer 3.0. Vinha com Outlook Express, NetMeeting, e uma pequena aplicação que parecia saída de um
30 anos depois, o código do chat que ajudou a lançar o Comic Sans e que transformava conversas IRC em banda desenhada está aberto ao mundo.
Em 1996, a Microsoft lançava o Internet Explorer 3.0. Com ele chegou uma pequena aplicação que parecia saída de uma dimensão paralela: o Microsoft Comic Chat. Em vez de linhas de texto monótonas, o Comic Chat transformava conversas IRC em bandas desenhadas geradas em tempo real, com personagens que expressavam emoções e balões de fala dinâmicos.
A 16 de julho de 2026, a Microsoft libertou o código fonte do Comic Chat no GitHub sob licença MIT, juntamente com patches para compilar em sistemas modernos. O objetivo, segundo o blog de Open Source da Microsoft: "preservar uma peça importante da história do software e dar à comunidade a oportunidade de explorar, aprender e construir sobre ela."
⬆ Microsoft Comic Chat versão 2.5. As personagens foram criadas pelo artista Jim Woodring.
O projeto de investigação por detrás
O Comic Chat não foi um produto comercial qualquer. Começou como projeto de investigação no Microsoft Research, liderado por David Kurlander no Virtual Worlds Group. A equipa apresentou um paper no SIGGRAPH '96 — a conferência top de computação gráfica — onde descreviam os algoritmos de construção automática de ilustrações.
A ideia era ambiciosa: criar um sistema que imitasse as técnicas de ilustração de um artista de banda desenhada — o lendário Jim Woodring, que desenhou todas as personagens e cenários originais. O sistema escolhia automaticamente:
- A posição e gestos das personagens
- Expressões faciais (controláveis pelo utilizador com uma "emotion wheel")
- Layout e construção de balões de fala
- Enquadramento tipo BD, com vinhetas dinâmicas
Como funcionava a tecnologia
O Comic Chat implementava avatares 2D (não 3D, ao contrário do que alguns lembram — o V-Chat é que era 3D) com expressões pré-renderizadas. Cada personagem tinha um conjunto de poses e expressões em sprites. O cliente escolhia a combinação certa com base no tom da conversa (detetado por palavras-chave) ou pela emoção selecionada no "emotion wheel".
Funcionava sobre IRC standard (RFC 1459), mas estendia o protocolo com códigos especiais no início de cada mensagem para comunicar a expressão da personagem aos outros clientes Comic Chat. Utilizadores com IRC clients normais viam esses códigos como lixo — um prenúncio do que hoje chamamos vendor lock-in via protocolo proprietário.
Curiosidade: O Comic Chat ajudou a lançar o Comic Sans. Sim, essa mesma. Segundo a Microsoft, a font foi desenhada em 1994 pelo tipógrafo Vincent Connare e encontrou no Comic Chat a sua primeira grande casa; mais tarde foi incluída no projeto Core Fonts for the Web e no Windows, tornando-se uma das fonts mais amadas e odiadas da história do design.
O repositório open-source
O repositório está em github.com/microsoft/comic-chat, sob licença MIT, e contém:
- Snapshots do código fonte de toda a história do projeto: uma pré-versão de agosto de 1996, a versão 1.0, a 2.1 beta (fevereiro de 1998) e a 2.5 beta 1 (junho de 1998), escritos em C++ com MFC para Windows
- Duas pastas
*-modern(v1.0-pre e v2.5-beta-1) com «tentativas de modernização» feitas com ajuda de IA: compilam com o Visual Studio atual, têm ecrã adaptado a monitores de alta resolução e ligam a servidores IRC modernos (a v1.0-pre-modern com TLS nativo opcional) - Uma pasta
artifacts/com o SDK, ferramentas auxiliares, o JChat (cliente Java) e documentação - Builds modernas não oficiais da v1.0 e da v2.5b1, para quem só quer experimentar
A Microsoft descreve as versões modernizadas como exemplos, não como relançamentos polidos.
Como compilar hoje
Segundo o README do repositório, todas as versões visam Win32 (x86) e usam Visual C++ 4.x com MFC e NMAKE. Para a versão modernizada:
- Clona o repositório:
git clone https://github.com/microsoft/comic-chat - Abre uma linha de comandos com o ambiente do Visual Studio 2022 para x86 (
vcvars32.bat) - Entra em
v1.0-pre-moderne correnmake /f chat.mak CFG="chat - Win32 Debug" - Executa e liga-te a um servidor IRC (o README remete para uma lista de servidores que funcionam com o Comic Chat)
Aviso: as versões originais não suportam TLS nem IRCv3. Só a modernização da v1.0-pre acrescenta TLS nativo opcional, por isso, com as outras, precisas de um servidor sem SSL ou de um proxy como o stunnel. Para experimentar nostalgia pura, também podes descarregar as builds modernas não oficiais.
Lições 30 anos depois
Olhar para o código do Comic Chat hoje é fascinante por várias razões:
- C++ pré-STL — o código usa patterns e estruturas de dados que hoje fazemos com std::vector e std::string, mas que na altura eram implementados à mão.
- Graphical IRC — uma ideia que renasceu em plataformas como Discord, mas que na altura estava décadas à frente do seu tempo.
- UI research em produto — é raro vermos código de investigação académica a chegar a um produto comercial. O Comic Chat foi um caso raro de transferência direta de research para shipping.
- Retrocompatibilidade — a decisão de usar IRC standard em vez de criar um protocolo novo foi o que permitiu ao Comic Chat funcionar com a rede existente. Uma lição sobre integração vs. invenção.
Conclusão
O Microsoft Comic Chat é um artefato de uma era em que a Microsoft se atrevia a experimentar. Não era perfeito, não era prático, mas era criativo. Trinta anos depois, o código aberto permite-nos estudar, aprender e talvez ressuscitar algumas daquelas ideias — com protocolos modernos, cifras e fonts melhores que Comic Sans.
Se és fã de história do software, IRC, ou simplesmente curioso sobre como se fazia UI nos anos 90, o repositório merece uma visita. Quem sabe não sai daí um Comic Chat para a era do Matrix?
Recursos adicionais
Partilhar
Comentários 0
Ainda sem comentários — sê o primeiro.