Vamos fazer um jogo de MSX – Começando agora!

Depois de estudar, ler e brincar muito com código assembly no MSX, finalmente decidi começar a desenvolver um jogo próprio.

Como Voltaire disse uma vez – “O perfeito é inimigo do bom”, e tentar obter o melhor conhecimento possível sobre o assunto terminaria em uma busca que poderia levar anos e eu realmente quero ter algo para entregar agora, então teremos que comece com o que temos agora e melhore à medida que avançamos.

Por favor, tenha em mente que até agora temos 0 jogos desenvolvidos e publicados, então esta será uma busca de aprendizado tanto para os escritores quanto para os leitores da série de artigos. A vantagem é que vamos falar a linguagem nos mesmos níveis que qualquer pessoa com zero conhecimento de desenvolvimento de jogos, mas também significa que podemos falar muita besteira e usar métodos ineficientes de design, codificação, criação de ativos e qualquer outro aspecto envolvido no desenvolvimento de jogos. Provavelmente precisaremos adicionar um desenvolvedor profissional no processo, mas, ao mesmo tempo, queremos manter o conteúdo disponível gratuitamente, o que pode impedir que isso aconteça em breve. Vamos continuar observando o resultado dos artigos nos próximos meses e voltar a esse assunto no futuro, se necessário.

Isso significa que tentaremos criar esses artigos com a intenção de fornecer a melhor e mais didática maneira de ajudar quem quer criar um jogo no MSX hoje. No futuro vamos evoluir o conhecimento e incluir as plataformas MSX 2 e 2+ também, então no final, também poderemos incluir outras plataformas semelhantes no processo, como ZX Spectrum, Amstrad e outras.

Nossos objetivos e restrições

Durante os últimos meses, estudamos vários compiladores, ferramentas, bibliotecas e códigos de exemplo para descobrir qual seria a maneira mais conveniente de criar um jogo para MSX para qualquer pessoa interessada no assunto.

Como nem todo mundo pode ter uma máquina MSX real com todo o hardware moderno e periféricos básicos para começar a codificar sem muita dificuldade, simplesmente evitamos usar esta opção. Um bom ambiente de desenvolvimento exigiria pelo menos um driver de disco completo, um programa de montagem em uma ROM ou rodando em um mapeador ou cartucho MegaRAM, e possivelmente uma interface SD ou até mesmo algumas peças de unobtanium para pessoas comuns, como o GR8NET. Para iniciantes em desenvolvimento de jogos, isso pode ser muito caro e difícil de justificar o investimento.

Também estamos evitando ferramentas que exijam qualquer sistema operacional específico por enquanto. Existem alguns compiladores, ferramentas e IDEs excelentes por aí que não estão disponíveis para todas as plataformas e às vezes não são atualizados para as versões mais recentes do sistema operacional, e instalar e manter o ambiente funcionando pode exigir muito esforço que poderíamos usar para aprender e criar coisas com a linguagem assembly, então neste momento estamos evitando qualquer coisa que envolva qualquer tipo de instalação.

Então o que sobrou para nós? Quaisquer ferramentas online baseadas na web e há o suficiente delas para iniciar o processo de aprendizado e pelo menos gerar uma ROM de jogo completa de 32Kb, que é nosso objetivo inicial para esta série de artigos. Também queremos manter o custo o mais baixo possível, portanto, ferramentas gratuitas e abertas são as nossas preferidas até que se torne inevitável, o que pode acontecer em algum momento no futuro. Como bônus, podemos identificar oportunidades perdidas para desenvolver novas ferramentas e resolver isso durante o processo, o que significa que, se não houver uma ferramenta disponível para uma tarefa específica, podemos criá-la. Isso pode soar como uma meta agressiva, mas com tempo e paciência, podemos chegar lá eventualmente.

Selecionando e afiando as ferramentas

Até agora rodamos nosso código no MSXPen ferramenta online muito, pois é muito fácil de usar, fornece uma emulação rápida com várias máquinas e complementos de hardware, e simplesmente funciona. Mas à medida que usamos a ferramenta começamos a perceber algumas coisas que poderiam nos impedir de cumprir as metas apresentadas anteriormente:

  • Todos os programas são compilados como um arquivo BIN que pode ser executado a partir do disco virtual, e não há opção disponível para gerar arquivos ROM no momento.
  • O código desaparecerá assim que você recarregar a página ou fechar o navegador. Existe uma opção de compartilhar o código para que possamos salvar o link que ele cria para abrir o código novamente no futuro, mas isso pode não ser algo à prova de futuro e não a melhor maneira de fazer backup do nosso trabalho
  • A ferramenta Inspector é útil para ver os valores de cada um dos registradores Z80 durante a execução do código, mas isso é tudo. Sem mapa de memória, sem opção de pausar o código ou qualquer outra ferramenta avançada.
  • Navegar no código torna-se realmente complicado à medida que o tamanho aumenta, e encontrar seções e comandos pode ser bastante demorado e irritante.

Não me interpretem mal, não estou tentando desmerecer a ferramenta aqui, principalmente porque sou um grande fã deste aplicativo, e continuarei usando-o como campo de testes para os programas criados, como veremos a seguir. futuro.

Então, o que podemos usar no lugar do MSXPen? Eu escolhi a ferramenta online 8bitworkshop IDE 8BitShop para a tarefa.

O IDE 8BitShop: o que é isso?

O IDE 8BitShop é criação de Steven Hugg, que entre outras coisas incríveis também publicou alguns livros sobre desenvolvimento de jogos para diferentes plataformas usando sua própria ferramenta, tem uma conta no Twitter onde podemos acompanhar as últimas novidades, e também disponibilizamos todo o código da ferramenta em GitHub caso alguém queira ajudar a melhorar o aplicativo ou executá-lo localmente. Eles também aceitam doações através de Patreon e Paypal, então não se esqueça de enviar a ele um “obrigado” em forma de valores monetários caso seu jogo se torne um sucesso multimilionário!

Acessando o site pela primeira vez nos levará à seção de desenvolvimento do Atari e um pequeno tour pelas principais seções do IDE, sobre as quais falaremos com os detalhes do modo adiante.

Faça um breve tour pelo IDE 8BitShop

A quantidade de plataformas disponíveis é impressionante, mas por enquanto, estamos focando no computador MSX usando a opção BIOS.

É importante notar que o emulador do sistema não fornece nenhuma ROM comercial de MSX, e usa o C-BIOS a fim de evitar problemas de direitos autorais com os proprietários da propriedade. Há também a opção de usar o LibCV/LibCU biblioteca que permite o desenvolvimento usando C com interação mínima do BIOS, mas nenhuma opção para usar ambientes DOS ou Disk Basic até o momento.

Após selecionar MSX (BIOS) como ambiente desejado, o programa “Hello World” será carregado automaticamente no IDE.

No menu superior esquerdo, também conhecido como "menu de hambúrguer“, podemos selecionar a opção “Novo Projeto” para iniciar nosso trabalho. É importante seguir um padrão para os nomes dos arquivos para que não criemos uma estrutura confusa e tornemos todo o processo de desenvolvimento uma bagunça completa (já estive lá, já fiz isso).

Vamos sugerir um padrão de nomenclatura durante a série que pode facilitar o trabalho do código. Como vamos começar do zero aqui, no final, todos estarão familiarizados com o conteúdo de cada arquivo.

MyGame.asm parece um bom nome, mas será que vai vender?

Outras opções do menu que merecem destaque são o “Arquivo”, onde é possível adicionar, renomear e deletar arquivos no projeto; o “Download” que permite transferir o projeto como arquivo fonte, imagem ROM, ou o projeto completo como ZIP; e também a opção “Compartilhar” para criar um vídeo ou até mesmo um link jogável do projeto.

Mas a opção mais interessante para mim é a opção “Sync”, que abre a possibilidade de puxar e enviar o código para o Github.

Durante os artigos, usaremos o Github o máximo possível para que possamos ao mesmo tempo proteger nosso trabalho, observar a evolução do código e também retornar às versões anteriores caso quebremos algo, o que provavelmente faremos muito.

Se você não tem uma conta no Github, agora é um bom momento para crie uma, e é grátis! Depois de criar a conta ou apenas fazer login em uma existente, basta clicar em “Sign in to Github…” e seguir as instruções fornecidas na nova janela, e os serviços estarão conectados.

A primeira coisa que você vai querer fazer a seguir é usar o “Publicar Projeto no Github…”, e para isso, há algumas coisas que precisamos definir nesta etapa. Se você não quer permitir o acesso público ao seu código então é necessário mudar o tipo de repositório para “Privado”, e o tipo de licença é uma escolha pessoal, então não vamos tocar nesse assunto aqui.

Publicando o projeto no Github

Outra vantagem de ter o código publicado no Github é que você pode usar outro IDE para continuar desenvolvendo o código como VSCode localmente, sincronize seu código local com o repositório remoto e puxe o código atualizado do repositório para o 8BitShop IDE para testes. Se você tem outra pessoa trabalhando no código ou até mesmo uma equipe completa, o repositório do Github é mais do que necessário.

Toda jornada começa com um primeiro passo

Agora que temos nosso encontro inicial com a ferramenta web IDE e também aprendemos um pouco sobre ela e suas possibilidades, podemos considerar como iniciada nossa busca de desenvolvimento de jogos. No próximo artigo, vamos pular direto para o código assembly e discutir mais sobre as funcionalidades do 8BitShop IDE e do Github, bem como as outras ferramentas online que usaremos durante o processo. Espero que você esteja tão empolgado com esta jornada quanto nós, e convidamos você a fornecer seus comentários e sugestões sempre que sentir vontade.

Depois de estudar, ler e brincar muito com código assembly no MSX, finalmente decidi começar a desenvolver um jogo propriamente dito. Como disse uma vez Voltaire – “O perfeito é inimigo do bom”, e tentar obter o melhor conhecimento possível sobre o assunto terminaria numa busca que poderia levar anos e…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

pt_BRPortuguês do Brasil