2 pontos por GN⁺ 2024-09-12 | 1 comentários | Compartilhar no WhatsApp
  • Em 2024, foi lançado o novo jogo de minigolfe para Palm OS Captain's MiniGolf v0.6, concluído com menos de cerca de dois meses de programação intermitente
  • O ponto principal é uma estrutura em que o próprio jogador pode criar e exportar um banco de dados de pacotes de fases para compartilhar com outros usuários
  • Mesmo sem um dispositivo Palm OS real, é possível executar diretamente no navegador com o emulador cloudpilot
  • C e o antigo ambiente do Palm OS voltam a expor limitações de desenvolvimento como vazamentos de memória, depuração de polígonos e trajetórias, e escassez de documentação
  • O código-fonte foi publicado sob a licença GPL3 e pode servir como material de referência para outras pessoas criarem jogos para Palm OS

Lançamento do Captain's MiniGolf v0.6

  • Captain's MiniGolf v0.6 é um novo jogo de minigolfe para Palm OS criado em 2024
  • Começou como um projeto paralelo de verão e foi lançado após menos de dois meses de programação intermitente
  • Seu maior diferencial é que o usuário pode criar seu próprio banco de dados de pacotes de fases
    • Os pacotes criados podem ser exportados e compartilhados
    • A expectativa de ver que tipos de percursos outras pessoas vão criar continua sendo um atrativo
  • Mesmo sem um dispositivo Palm OS, ele pode ser executado no navegador por meio do emulador cloudpilot

Experiência de desenvolvimento para Palm OS e materiais publicados

  • Ao criar um jogo para Palm OS em C, ficou claro mais uma vez que, sem as proteções das linguagens modernas, pequenos erros podem virar problemas maiores
  • Vazamentos de memória ocorreram com mais frequência do que o esperado, e depurar o formato dos polígonos e a trajetória da bola também não foi simples
    • Um build de depuração para visualizar a lógica interna ajudou bastante a identificar os problemas
  • Como o Palm OS tem pouca documentação, o nível de dificuldade do desenvolvimento foi alto, e os materiais abaixo serviram de referência
  • Os bugs conhecidos incluem a bola ficar presa na parede e o problema de fundo ou cor do percurso não serem processados corretamente quando se cria um polígono de parede fechado dentro do campo principal de jogo
  • Entre os itens planejados para melhoria estão exclusão e movimentação de fases, exclusão e compartilhamento de pacotes de fases, e suporte a resolução dinâmica conforme o tamanho da tela
    • No momento, a resolução está fixa em 160x160
    • Em dispositivos Palm OS 5 de alta resolução, funciona em 320x320
  • O código-fonte completo foi publicado sob a licença GPL3
  • O rascunho inicial foi escrito em um Palm Zire 72

1 comentários

 
GN⁺ 2024-09-12
Comentários do Hacker News
  • Nos anos 1990, comecei duas vezes a criar um jogo de minigolfe para Macintosh, mas nunca cheguei a terminar nem lançar
    Recentemente recuperei o código-fonte de quase 35 anos atrás e estou criando imagens de disco para usar em emuladores. A primeira tentativa de MiniGolf em preto e branco está aqui: https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...
    A segunda tentativa foi uma versão colorida feita quando minhas habilidades de programação já tinham melhorado, e deve entrar no Volume 2. Estou montando essa imagem de disco agora

    • Glider era uma franquia emblemática da era dos Macs 68k. É realmente emocionante ver você trabalhando nisso de novo
    • Os gráficos são muito bonitos. Gosto do estilo
    • Joguei muito Glider quando era criança. Talvez esta seja minha única chance de dizer isso, então muito obrigado por ter criado esses jogos
    • Obrigado, John. Este repositório tem um pouco de tudo que eu gosto: arte, engenharia e história — e, acima de tudo, muita arte. É realmente inspirador
  • Que legal!
    Fiquei curioso se você já pensou em adicionar uma animação da bola caindo no buraco. No vídeo, parece que um novo nível é carregado assim que a bola e o buraco se sobrepõem o suficiente
    Do ponto de vista do usuário, acho que seria muito mais satisfatório ver a bola realmente entrar. Também daria uma sensação maior de conquista antes do próximo nível carregar

    • Vou considerar agora, obrigado
  • Excelente trabalho, obrigado!
    Ultimamente comecei a pensar que Palm OS e outros formatos de executáveis homebrew retrô talvez tenham usos reais além da nostalgia
    Coisas como .prc do Palm OS e ROMs homebrew .gb do itch.io podem rodar em desktop, iOS, Android e em hardware real de jogos; são eficientes offline, sem distrações e sem possibilidade de compras dentro do app
    Veja o Apotris, por exemplo: comprei muitas versões oficiais de Tetris ao longo dos anos e provavelmente continuarei comprando, mas esta é uma implementação muito polida que roda em praticamente todos os consoles. Graças a emuladores de GBA baseados em WASM, como o RetroArch Web, e ao suporte nativo a gamepads em navegadores modernos, dá para jogar em quase qualquer computador sem instalar nada
    Além disso, há uma tranquilidade em ter um único arquivo executável independente e saber que, com alta probabilidade, ele ainda poderá rodar daqui a 1, 10 ou 20 anos. Acho que isso provavelmente não vale para muitos jogos de iOS ou indies web de que eu gosto

    • Eu adoraria ter um telefone Palm OS moderno que mantivesse a filosofia original de UI e conseguisse rodar todos os títulos antigos. Mesmo que fosse por emulação
  • Escrevi código para PalmOS por volta de 1999. O que ficou especialmente na memória foi a forma de testar aplicações
    Acho que era um recurso do emulador, que ficava jogando eventos continuamente no software. Esqueci os detalhes, mas, por exemplo, se ele aguentasse 1.000 eventos, passava; 10 mil era bom; 100 mil era excelente
    Eu me considerava um programador C++ razoavelmente bom, mas fiquei chocado ao ver como minha aplicação morria rápido ao usar aquela ferramenta. Foi uma experiência bem humilhante e reveladora
    Penso com frequência em como uma ferramenta tão simples era eficaz para expor bugs, embora eu imagine que esse método não se aplique do mesmo jeito aos dispositivos multitarefa e conectados à internet de hoje
    Outra coisa de que me lembro é que o CodeWarrior foi o primeiro IDE que vi com uma caixa suspensa mostrando todas as funções do arquivo-fonte atual. Foi um avanço considerável em produtividade
    Além disso, em 2010, quando eu estava no Japão, ainda usava um Palm Tungsten. Havia um app de dicionário japonês muito simples para Palm; depois de aprender as regras básicas de ordem e direção dos traços, dava para imitar com a stylus o caractere que eu via e pesquisar o kanji correspondente. Consegui me virar bastante na navegação copiando kanjis desconhecidos de placas

    • > drop-down box with all the functions
      Lembro do #pragma - que separava funções. Hoje em dia não existe mais algo assim. Como alternativa há o #pragma region, que dobra blocos de código, mas é diferente
    • Veio à mente a imagem de alguém tentando portar Rust para PalmOS. Espero que isso não aconteça
  • Eu estava pensando se seria possível rodar isso em hardware real, e percebi que não faço a menor ideia do que aconteceu com meu Palm LifeDrive quando mudei para BlackBerry
    Sinto falta daquele PDA pequeno e gordinho. Para a época, era realmente incrível
    https://en.wikipedia.org/wiki/LifeDrive

    • Na semana passada, fazendo uma limpeza, encontrei meu antigo Palm Tungsten E2. Se eu achar o carregador também, vou testar e aviso
    • O LifeDrive era um Palm realmente estranho
      Por um lado, eu o odiava pelos tempos de carregamento irritantes em comparação com os aparelhos anteriores. O sistema tinha sido projetado originalmente para manter tudo em RAM/ROM e, no início, nem sequer tinha o conceito de memória baseada em arquivos/blocos; por isso, quase todo acesso inesperado à memória acabava acordando o disco rígido. Ele também era relativamente grande
      Por outro lado, tinha 4 GB. Dava para guardar mais de dois filmes inteiros. Também foi o primeiro Palm com Wi-Fi, o que era ótimo
      No conjunto, para mim ele parecia simbolizar como a Palm estava perdendo rapidamente o ritmo das tendências modernas. Por exemplo, o Symbian não se comparava ao Palm OS em usabilidade, mas, do ponto de vista de sistema operacional, estava muito à frente; depois, claro, vieram o iPhone e o Android
  • Gostei muito, especialmente do design de arte. Ótimo trabalho
    Pessoalmente, a única coisa que eu mudaria é que, ao mirar, me parece mais natural mover o mouse na direção oposta. Muitos jogos de minigolfe antigos da Miniclip faziam isso
    Se você gosta de jogos livres e open source, recomendo Neverball e Neverput. Neverput é um simulador de golfe 3D com gráficos decentes

    • No Palm original, usava-se uma stylus, então, ao contrário de telefones com toque dos dedos, ela não cobria o ponto de mira. Também pode ter havido o fator de deixar mais espaço no lado da direção da tacada
  • Lindo! Graças a isso, fiquei com saudade do meu IIIxe
    Passando pelo filtro cor-de-rosa impreciso da nostalgia, talvez tenha sido um dos dispositivos portáteis em que a produtividade chegou mais perto do auge. As funções eram suficientes para me ajudar a lembrar das coisas que eu carregava comigo e com as quais me preocupava o tempo todo, mas faltavam completamente notificações que desviassem a atenção
    Levou um tempo para eu deixar o iPhone silencioso o bastante para ele parar de me incomodar o tempo todo, mas no Palm o padrão era opcional. Se você não mandasse explicitamente ele avisar algo, ele ficava quieto
    Na prática, eu não voltaria para ele, mas, por outro lado, sinto saudade

    • Mesma sensação. Eu realmente adorava meu IIIxe
      Se eu voltasse agora e olhasse de novo, talvez ficasse horrorizado com a experiência de usuário, mas na época ele aumentou muito minha produtividade. A linguagem de entrada por escrita à mão também era excelente. Cheguei a escrever relatórios com ela
      Era ótimo poder escrever no ônibus ou em deslocamentos sem carregar um notebook. Eram dispositivos incríveis
    • Controle de notificações é um dos recursos de experiência do usuário mais poderosos que existem. Para as poucas notificações que permito, uso intensivamente modos de foco baseados em localização e horário
  • Gostei! Uma sugestão rápida: antes de carregar o próximo nível, seria bom dar um tempinho para mostrar o momento em que a bola entra no buraco. Tirar essa satisfação do jogador pode ser frustrante

  • Projeto interessante. Problemas como vazamentos de memória e depuração são muito mais comuns em desenvolvimento de jogos do que se imagina
    Uma boa parte desses problemas foi abstraída por engines de jogos como Unreal, Unity e Godot, mas, se você desenvolve jogos com C, OpenGL e restrições de memória, especialmente quando o hardware impõe essas limitações, pode passar pelas mesmas tentativas e erros iniciais
    O editor de níveis é um bom elemento. Fiquei curioso sobre a implementação; a série Tony Hawk também tinha um recurso de uma linhagem parecida, que acabou levando ao Tony Hawks Pro StrCpy: https://icode4.coffee/?p=954
    Dito isso, jailbreak ou execução arbitrária de código parecem muito mais fáceis de conseguir no PalmOS do que um projeto paralelo de minigolfe

  • Testei no emulador baseado em navegador e o jogo é realmente divertido. Quase fui sugado pelo modo de treino
    Seria ótimo ter um port ou uma versão inspirada para Android, iOS e navegador. É muito divertido