Estou tentando descobrir o básico do desenvolvimento de jogos em C64, além do BASIC, e poderia usar alguns conselhos sobre algo muito básico, mas importante: o que é realmente tudo isso na tela e como desenhá-lo?
Dê uma olhada em Katakis / Denaris :
Há pelo menos 9 coisas diferentes na tela:
- A barra de pontuação, com fontes diferentes
- O próprio navio
- Um satélite conectado ao navio, destacável
- Projéteis de Armas Secundárias
- Projéteis de Arma Primária
- Objetos em movimento (podem ser naves inimigas)
- A barra de status, com uma imagem do navio, o número de vidas e três seções que podem preencher
- A barra de carga da arma principal, pode ser preenchida até o fim
- Um campo de estrelas de rolagem em segundo plano
- (não numerado na tela) Objetos sólidos, como pedras ou paredes de metal que fazem parte do plano de fundo
O C64 suporta apenas 8 sprites por linha de varredura horizontal, então não acho que tudo no meio da tela possa ser um sprite? Suponho que qualquer coisa que exija uma colisão seria um sprite (já que posso obter detecção de colisão de hardware com sprites), mas mesmo assim atingi rapidamente o limite de 8 sprites. Além disso, minhas armas podem disparar muito mais que um projétil - minha nave, o satélite e 6 balas já seriam 8 sprites seguidos (observe cerca de 50 segundos no vídeo).
Além disso, qual modo gráfico seria usado em um jogo como esse? O Manual de programação lista o modo de mapa de bits que modifica essencialmente a memória da tela diretamente. É nesse modo que eu normalmente deveria estar trabalhando? Como eu comporia todos os elementos não-sprites juntos para exibi-los na tela?
Muitas coisas na barra de pontuação e status são estáticas ("Área: 01" ou "quadro"), então acho que vou preenchê-las apenas uma vez quando o nível começar. O que precisa ser atualizado - a pontuação, as barras de carga na parte inferior - seria atualizado preenchendo a memória da tela com preto e desenhando a nova pontuação a cada quadro?
Ou tenho que desenhar a tela inteira em todos os quadros?
fonte
Li um artigo há algum tempo na revista alemã C64. As balas são personagens que agem como sprites como alguém já apontou. Navio e inimigos são sprites.
Os níveis são feitos de personagens também, mas com um toque. Como os níveis são enormes e a memória é preciosa, Trenz escreveu seu próprio conjunto de ferramentas para agrupar caracteres em módulos.
Para que ele possa usar módulos maiores e compor esses. Além disso, ele usaria certos módulos de correção para obter uma interseção agradável e limpa.
Em suma, é um tipo de compactação, onde os níveis são descritos como blocos de construção em vez de char por char.
Você também deve ter notado que, nos Katakis, alguns níveis têm paralaxe.
Isso é feito com um padrão para preencher o plano de fundo, composto principalmente de caracteres 2x2 ou 3x3, e a animação (troca de bits) na direção da rolagem. Por exemplo, o nível rola 2 pixels para a esquerda, o padrão de fundo é rolado 1 pixel para a direita e, portanto, parece ser rolado em um ritmo mais lento.
espero que ajude
Mais uma coisa que você pode ver de fato nos módulos individuais aqui https://archive.org/details/64er_1989_10/page/n27 role para a página 24
fonte