A Demoscene

Assembly 2009

Demoscene é uma subcultura da arte computacional especializada na produção de demos, apresentações áudio-visuais não-interativas, que são executadas em tempo-real em um computador.

Wikipedia

A definição acima descreve bem resumidamente o que era a Demoscene, mas minha intenção nesse post é falar sobre como a conheci, além de lembrar um pouco do contexto da época e do porque considerar as demos algo especial que merece ser lembrado.

Contexto

No final da década de 1980, início da década de 1990, o poder computacional dos microcomputadores era muito, mas muuuuito mais limitado do que qualquer smartphone atual! No Brasil, o mercado de microcomputadores era basicamente composto por clones do Apple II (fabricados pela CCE, Dismac, Microdigital, etc) e por IBM/PC’s (fabricados pela Prológica, Itautec, etc), além de algumas outras marcas/plataformas menos importantes (fãs dos MSX vão querer me matar). Os Apple II (obrigado Steve Wozniak), eram basicamente usados em cursos introdutórios de informática, onde se aprendia os conceitos básicos de programação utilizando o próprio Basic nativo. Os cursos mais “avançados” usavam os PCs (XT, AT, 286, 386) para ensinar dBase/Clipper, Supervisicalc (o avô do Excel), Wordstar (avô do Word), etc.

Quem tinha um pouco mais de dinheiro podia se dar ao luxo de fugir desses PCs nacionais “meia-boca” e montar seus próprios PCs, geralmente com peças trazidas do Paraguai pelos “muambeiros”. Era comum os chamados “foguetões”, ônibus fretados que saíam em direção à Ciudad del Este numa sexta-feira, percorrendo milhares de km, chegavam lá no sábado de manhã, deixavam o pessoal fazendo compras para voltar logo em seguida. Trazia-se de tudo! Desde alho, roupas, brinquedos, até impressoras, monitores (de tubo), placas mães, cpus, gabinetes, placas de video, memórias, etc. Isso porque a reserva de mercado tornava praticamente impossível importar computadores fabricados no exterior (tudo para fomentar a indústria nacional… nem preciso dizer que não deu certo)!

Solution 16
Solution 16, da Prológica

Um PC “top” da época seria um 386DX de 40Mhz, com 4MB de RAM, placa SuperVGA, monitor Samsung Syncmaster 3 ou 4, modem USRobotics, etc. Percebeu que até agora não usei a palavra GIGA pra nada?! Pois é! Processadores de 40 MEGAHertz, 4 MEGAbytes de RAM, etc… inacreditável, não?!

A internet era para poucos! Na verdade, a maioria das pessoas nem sabia que ela existia. Basicamente, no Brasil, a internet só existia em algumas universidades públicas. Ainda assim, a World Wide Web (WWW, ou simplesmente Web) era uma recém-nascida e desconhecida por nós. Usar a internet significava basicamente usar programas específicos para executar funções específicas: ftp para troca de arquivos, nntp para grupos de discussão, IRC para chat ao vivo, Telnet para conectar computadores remotos, etc. Com a popularização da Web, ela acabou se tornando quase que um sinônimo para a internet (obrigado Mosaic e Netscape).

Nessa época, comecei um estágio na ESALQ/USP, onde tive o primeiro contato com a rede mundial de computadores. Eu já era SysOp da WarmBoot BBS, e acessar a internet abriu um mundo novo de possibilidades para obtenção de arquivos para disponibilizar aos usuários do BBS. Até então, os acervos de arquivos dos BBS eram baseados em CDs de shareware ou no envio de arquivos pelos próprios usuários. Com a internet, mais especificamente com o FTP e sites como o Simtel 20, ficava muito mais fácil e rápido ter acesso à programas e novidades das mais variadas! Foi numa dessas “zapeadas” pelos FTPs da vida que vi um diretório de arquivos chamado “demos“. Baixei alguns pra ver do que se tratava, e foi aí que meu interesse pela Demoscene nasceu.

Demos?

As demos eram programas, geralmente codificados em linguagem C e/ou assembly (linguagem de máquina), onde o objetivo era criar animações gráficas explorando ao máximo os recursos (limitados) dos hardwares disponíveis, gerando objetos em 3D, chamas, sombreados, etc.

Uma boa demo era aquela que conseguia reunir as seguintes características:

  • Maior suavidade nos movimentos
  • Boa resolução
  • Trilha sonora original (geralmente arquivos MOD nas Demos, e MIDI nas Intros)
  • Efeitos gráficos
  • Muito “3D”
  • O menor tamanho de executável possível

Hoje em dia é normal assistirmos filmes repletos de efeitos especiais e cenários que só existem digitalmente. Essas cenas são todas renderizadas (desenhadas) por softwares executados em computadores “fodásticos”, que no final geram uma sequência de imagens que vão compor as cenas do filme. Esse processo pode levar horas, dias, semanas ou meses, dependendo da complexidade dos objetos na cena, duração, resolução e nível de detalhamento desejado, etc.

O fantástico das demos era que praticamente tudo que você estava assistindo estava sendo calculado e desenhado em tempo real, usando hardwares extremamente variados e limitados! Diferente de um filme que já tem todas as cenas produzidas anteriormente, as demos calculam e geram as animações na hora!

Geralmente eram produzidas por várias pessoas, entre programadores (coders), artistas gráficos, compositores, etc. Algumas se juntavam e criavam um DemoGroup, como, por exemplo, Future Crew, Twilight Zone, Renaissance, Triton, etc.

Assembly 2009
Assembly 2009

A maioria desses DemoGroups eram compostos por pessoas dos países nórdicos, especialmente finlandeses. A impressão que dava era que quanto mais gelado o país, melhores eram as demos… talvez seja um efeito de não poder sair pra badalar devido ao frio intenso 😀

Com o passar do tempo, campeonatos anuais de demos começaram a ser organizados, como o Assembly e a The Party. Esses campeonatos reuniam diversos integrantes de vários DemoGroups, onde as demos eram apresentadas e avaliadas para se eleger as vencedoras. Criou-se até mesmo categorias de competição: 1K Intros, 4K Intros, 64K Intros, PC Demos, etc.

Unreal

Vencedora do campeonato Assembly’92, produzida pela Future Crew. Além de uma trilha sonora excepcional (© Purple Motion), tinha todos os quesitos que compõem uma boa demo. Não foi a toa que ganhou o concurso! Essa foi a primeira demo que realmente me encheu os olhos! Na época, chegamos até a exibi-la publicamente (através de um datashow) em uma palestra que demos no Colégio Piracicabano.

Li em uma entrevista, há alguns anos atrás, que o compositor (Purple Motion) havia criado toda a trilha sonora direto no computador, um Commodore64, sem ter nem ao menos um piano ou sintetizador pra ajudar! Para isso eram usados os trackers, programas que permitiam compor músicas diretamente no computador, geralmente no padrão MOD ou alguma variação dele.

Second Reality

Após ganhar o primeiro lugar no Assembly em 1992 com a Unreal, a Future Crew apresentou no Assembly’93 a Second Reality (ou Unreal 2), sua mais nova criação, trazendo gráficos e efeitos ainda mais elaborados. Algumas das ideias eram claramente uma evolução de partes da Unreal, assim como alguns objetos 3D. Ganharam o primeiro lugar, de novo!

O código fonte da Second Reality foi aberto e publicado no Github em 2.013, em comemoração ao aniversário de 20 anos!

As demos no Brasil

Infelizmente, desconheço a existência de um DemoGroup brasileiro, muito menos de algum campeonato nacional de demos. Como já comentei, naquela época a internet era para pouquíssimos, sendo mais comuns os BBS como forma de “comunidade digital” para troca de mensagens, arquivos, etc. Como SysOp, comecei a disponibilizar na WarmBoot BBS as demos que eu baixava da internet. Não demorou muito para que esses arquivos fossem parar em outros BBS do país, e com isso mais pessoas passaram à aprecia-las!

A internet também me possibilitou entrar em contato com alguns DemoGroups por e-mail, e assim a WarmBoot BBS passou a ser distribuidora oficial da FutureCrew, Renaissance e Twilight Zone, no Brasil!

Naquela época ainda tinha tempo para brincar com diferentes linguagens de programação e técnicas “baixo nível”, como programação VGA, etc. chegando inclusive a criar uma pequena intro escrita em Assembly para ser distribuída com todos os arquivos do WarmBoot BBS, a Great2!, que fazia uso de técnicas de refresh da VGA para simular uma tela kickando suavemente, enquanto uma música era tocada em background juntamente com um “VU meter” em tempo real. A música eu peguei pronta na internet, bem como o código do midi player que à executava. O executável final ficou com 6KB, apesar que “trapaceei” usando um compressor, visto que provavelmente só os dados da música já ocupavam mais que isso.

IBM/PCs não são legais…

Pelo menos não para as demos 😉 O fato é que IBM/PCs não foram projetados com a intenção de serem “centrais de entretenimento”. Na época, existiam computadores muito mais “demo friendly”, sendo o Amiga o mais conhecido… bom, pelo menos lá fora, já que não existia fabricação nacional de “clones” do Amiga, portanto, era uma raridade encontrar um por aqui.

Amiga 4000

O Amiga veio de um projeto que originalmente visava ser um video game, portanto, sempre foi focado em gráficos e som, um paraíso para os demo makers! Com isso, conseguia realizar tarefas gráficas muito mais rapidamente do que um IBM/PC. O Amiga já de cara nasceu com um sistema operacional gráfico, e usava CPUs da Motorola, os mesmos que a Apple usou no Macintosh durante um bom tempo.

Enfim, com a proliferação mundial dos micros compatíveis com IBM/PC, os demo makers acabaram desenvolvendo também demos para essa arquitetura, felizmente para nós!

Enfim, era isso que tinha pra falar… post recheado de velharia e saudosismo. Muitos irão matar saudades, outros provavelmente vão descobrir coisas que nunca ouviram falar.

Espero que a leitura tenha sido divertida e que tenha despertado a curiosidade sobre as demos. Visitem os links e terão muito mais informação sobre o assunto!

Share and Enjoy !