Demo
Mais ações
Uma demo, abreviação de demonstração, é uma gravação de configurações e comandos dentro do jogo que permite reconstituir uma jogatina com precisão perfeita. O formato de demo, porém, é muito suscetível a mudanças no motor (engine) ou no mapa/nível. Por isso, o ZDoom não oferece compatibilidade retroativa de demos: se uma demo foi gravada com uma versão do ZDoom antiga demais, o programa informará que não consegue reproduzi-la.
O ZDoom também não é compatível com o formato de demo do vanilla Doom e, portanto, não reproduzirá o loop de demos dos vários IWADs suportados. Por causa da falta de compatibilidade retroativa, não é recomendado colocar lumps de demo embutidos em um mod para ZDoom, já que eles podem se tornar obsoletos. Em vez disso, pode-se usar um TITLEMAP com script.
A variável de console chasedemo pode ser usada para assistir demos no modo chasecam.
O formato de demo do ZDoom é baseado no
Interchange File Format. Ele contém um chunk FORM do tipo ZDEM. Em seguida, há vários chunks, que podem ser dos seguintes tipos:
- ZDHD: Cabeçalho de demo do ZDoom. Contém a versão do engine, o rótulo do mapa e a semente do gerador de números aleatórios.
- VARS: Variáveis. Armazena o estado das variáveis de console críticas para a demo.
- UINF: Informações do usuário. Contém dados sobre cada um dos jogadores registrados na demo.
- NETD: Demo de rede. Não contém informação, mas sua presença marca a demo como multijogador.
- WEAP: Armas. Contém a lista de armas disponíveis no jogo durante a demo e em qual slot elas ficam.
- BODY: Corpo. Contém a maior parte da demo: os comandos emitidos a cada tic por cada jogador. Este chunk pode ser comprimido com
zlib. - COMP: Compressão. Contém o tamanho total dos dados do chunk BODY quando descomprimidos.
Variáveis de console críticas
As variáveis de console críticas para demo são aquelas que possuem a flag CVAR_DEMOSAVE ou a flag CVAR_SERVERINFO. Elas incluem:
- alwaysapplydmflags
- compatflags
- compatflags2
- deathmatch
- dmflags
- dmflags2
- forcewater
- fraglimit
- gameskill
- genblockmap
- genglnodes
- gennodes
- infighting
- splashfactor
- sv_aircontrol
- sv_cheats
- sv_corpsequeuesize
- sv_disableautohealth
- sv_dropstyle
- sv_fastweapons
- sv_gravity
- sv_smartaim
- sv_unlimited_pickup
- teamdamage
- teamplay
- timelimit
- var_friction
- var_pushers
Atualmente, o chunk VARS pode armazenar até 32 variáveis de console.
