domingo, 23 de março de 2025

Criar o Manager de Futebol 2025 para ZX Spectrum (parte 3)

Finalmente, depois de termos deixado a parte 2 do diário de Manager de Futebol 2025 (ver aqui), deixamos agora a terceira e última parte. O jogo foi desenvolvido por Mário Armão Ferreira, autor da excelente página PCManias (ver aqui).

Criar o Manager de Futebol 2025 para ZX Spectrum (parte 2)

Basicamente o 128KB tem incluído um sistema de gestão de ficheiros chamado RAMDISK. Este sistema faz uma gestão 100% automática da restante memória, tratando o enviado como sendo ficheiros no explorador do Windows. Basicamente, uma vez os dados lá colocados, eles podem ser chamados para a memória base. E isto sem precisar de criar qualquer código de transferência de dados, e apenas usando os comandos exclusivos do 128 KB para isto.

Imediatamente fiz severas alterações ao código, e passei a usar a RAM Drive, mantendo o assembler apenas para o áudio (impossível ter três canais usando Basic). 

Diga-se que estou a usar mais 38 KB acima dos 64 KB, o que totaliza 99 KB. Por outras palavras, podia ainda usar mais 29 KB. Quase a memória livre de um Spectrum 48 KB.

Com este uso, outras zonas do jogo, foram melhoradas Como o menu principal que passou disto:


Para isto:


Para o olho menos treinado a coisa pode parecer até bastante semelhante em algumas partes… mas não é!

O menu de cima era todo obtido usando comandos PRINT e gráficos definidos nos caracteres, bem como comandos PLOT e DRAW no campo. O desenho do menu era lento bastante visível e ocupava RAM na memória base. 

O segundo ecrã é todo ele grafismo. Gasta zero de linhas de código na memória base, aparece de forma instantânea, e está melhorado.

Reparem num pequeno pormenor. A bola entre os jogadores!

Pode parecer um detalhe insignificante, mas mostra bem os limites que estava a ter antes. Vou explicar melhor!

A imagem que se segue mostra a etapa de concepção desse grafismo, usando caracteres definidos pelo utilizador.


Repare-se que para definir o jogador eu precisaria de um total de 21 caracteres 8x8 definidos. Na realidade 20, pois como veem, tive o cuidado de deixar o centro das costas vazio para poder inserir um número usando a fonte do Spectrum. A isso acrescentaria um caractere extra para a bola, ou seja, 21, ao que precisaria de acrescentar mais 4 caracteres com os jogadores usados nas jogadas, ora virados para um lado, ora para o outro. Um total de 25!

A questão é que o Spectrum apenas permite definir caracteres nas letras A a U, ou seja 21 caracteres. Temos aqui quatro caracteres a menos do que o preciso.

Infelizmente, o T e o U, apesar de indicados no manual como acessíveis, na realidade não o são, pelo menos de forma directa. E isto reduz o número de caracteres para 19. São menos seis do que o desejado.
Um caractere adicional pode ser ganho com a parte central da cabeça. Dado ser totalmente negra posso dispensar ali mais um. Mesmo assim estamos com cinco a menos do que o preciso.

Se olharem com atenção para as duas imagens do menu vão notar duas diferenças entre os jogadores antes de depois. Uma é no topo do cabelo, que na imagem de cima é mais liso, e onde usei um símbolo metade preto, metade branco já existente, que apesar de cortar um pouco à cabeça, permite poupar um outro caractere. E a outra é na gola, onde ao cortar a mesma, e igualmente um pouco nos ombros, liberto mais um caractere.

Estamos com três em falta, e dado ter decidido cortar a bola, ficaram apenas dois em falta.

Para os dois que faltam, não encontrei solução, pelo que a coisa resolveu-se guardando os valores do gráfico em duas variáveis, e redefinindo-o sempre que se entra ou no jogo, ou no menu. 

Uma solução que quase remove o limite de caracteres, mas que não só acrescentava mais algum tempo de processamento ao desenho do menu, que já não era rápido, como me gastava um pouco mais da RAM que eu tanto procurava poupar.

A imagem resolveu-me todos os problemas, e mais ainda, poupa-me memória nos 64 KB base.
E com isto tudo resolvido, o jogo, tal como o concebi estava pronto.

Expus a situação no Facebook do canal do The Spectrum e eis que Mark Doney, YouTuber Inglês do canal “Doughnut Doney”, e que tinha feita uma análise ao jogo original de 1989, me pede para dar uma vista de olhos ao jogo antes dele ser lançado.

O seu feedback foi precioso. Não só ele deu com algumas bugs, como deu um feedback relevante. Devido a ele, acrescentei nomes de média dimensão às equipas (Antes só tínhamos o nome todo por extenso e a sigla de três letras), e criei lesões de duração variável, e a indicação dos marcadores dos golos da nossa equipa.

Desde essa altura o jogo foi polido, e livre de todas as bugs conhecidas. O espírito mantém-se o mesmo do original: Conhecer a equipa, as características dos jogadores, as suas necessidades, o estado financeiro… e gerir tudo.

O dinheiro é curto e obriga a vendas, pois arrancar uma jornada no negativo dá um incumprimento do Fair Play financeiro que leva à expulsão do campeonato. Depois é gerir e melhorar a equipa evitando a despromoção, e sendo campeão, o que poderá não ser conseguido em apenas uma época.

Apenas como nota, o jogo possui muita aleatoriedade. Mas no entanto, o seu funcionamento base é apoiado em metodologias estatísticas. Não seria porém correcto que as mesmas fossem rígidas garantido sempre a uma equipa melhor, o melhor resultado, e nesse sentido foi acrescentado o elemento que permite os resultados surpresa. Num jogo são atribuídas 10 jogadas a cada equipa sendo que em cada uma se faz a análise estatística de probabilidade de marcar. Algumas das jogadas, incluído todas as de golo, são depois mostradas no minuto respectivo.

Vermelhos, lesões, multas e novos patrocínios são fatores a se ter em conta na gestão. E há que se ter em conta igualmente que a cada quatro jornadas os salários tem de ser pagos, sendo que, melhores jogadores, salários mais altos (O valor individual dos salários não é indicado no jogo, mas cada jogador ganha de acordo com o seu nível).

Outra das novidades é o factor casa, que fornece algumas hipóteses adicionais de um brilharete.
O mercado foi uma das situações completamente remodeladas. Ele funciona a cada quatro jornadas, começando na jornada 4, e uma vez abandonado, as ofertas são retiradas. Ao contrário do jogo inicial que apresentava ofertas para compra muitas vezes sem interesse, aqui as ofertas para as compras são sempre determinadas pelo scout da equipa, que propõem apenas jogadores que se possam enquadrar na equipa. 

As ofertas para compra dos nossos jogadores podem incluir qualquer jogador do plantel.
Verifiquem os valores pedidos e ofertados, e façam a vossa gestão, idealmente tentando vender às melhores ofertas e comprar bom e barato.

Aproveito o texto, e agradeço a todos os que jogarem e desfrutarem do jogo, o tempo que lhe dispensaram.

Sem comentários:

Enviar um comentário