Jogo de minigolfe para Palm OS
(ctrl-c.club)- 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
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
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
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
.prcdo Palm OS e ROMs homebrew.gbdo 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 appVeja 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
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 functionsLembro 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 é diferenteEu 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
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
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
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
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