2 points par GN⁺ 2024-09-12 | 1 commentaires | Partager sur WhatsApp
  • En 2024, un nouveau jeu de mini-golf pour Palm OS, Captain's MiniGolf v0.6, a été publié après moins de deux mois de codage intermittent
  • Son point clé est une structure permettant aux joueurs de créer eux-mêmes des bases de données de packs de niveaux, de les exporter et de les partager avec d’autres utilisateurs
  • Même sans appareil Palm OS réel, il peut être lancé directement dans le navigateur via l’émulateur cloudpilot
  • C et l’ancien environnement Palm OS remettent en évidence des contraintes de développement comme les fuites mémoire, le débogage des polygones et des trajectoires, et le manque de documentation
  • Le code source est publié sous licence GPL3 et peut servir de ressource de référence à d’autres personnes souhaitant créer des jeux Palm OS

Publication de Captain's MiniGolf v0.6

  • Captain's MiniGolf v0.6 est un nouveau jeu de mini-golf pour Palm OS créé en 2024
  • Il a commencé comme projet secondaire estival et a été publié après moins de deux mois de codage intermittent
  • Sa principale particularité est de permettre aux utilisateurs de créer eux-mêmes des bases de données de packs de niveaux
    • Les packs de niveaux créés peuvent être exportés et partagés
    • Voir les parcours que d’autres utilisateurs créeront reste l’un des éléments attendus
  • Même sans appareil Palm OS, il peut être exécuté dans le navigateur via l’émulateur cloudpilot

Expérience de développement Palm OS et ressources publiées

  • En développant un jeu pour Palm OS en C, l’auteur a de nouveau constaté qu’en l’absence des garde-fous des langages modernes, de petites erreurs peuvent entraîner des problèmes plus importants
  • Les fuites mémoire sont survenues plus souvent que prévu, et le débogage des formes polygonales et de la trajectoire de la balle n’a pas été simple non plus
    • Un build de débogage visualisant la logique interne a beaucoup aidé à identifier les problèmes
  • Palm OS manque de documentation, ce qui rend le développement plus difficile, et les ressources suivantes ont servi de références
  • Les bugs connus sont le problème de la balle qui se coince dans un mur et celui où, lorsqu’un polygone mural fermé est créé à l’intérieur du champ de jeu principal, l’arrière-plan ou la couleur du parcours ne sont pas traités correctement
  • Les améliorations prévues incluent la suppression et le déplacement de niveaux, la suppression et le partage de packs de niveaux, ainsi que la prise en charge d’une résolution dynamique selon la taille de l’écran
    • La résolution actuelle est fixée à 160x160
    • Sur les appareils Palm OS 5 haute résolution, il fonctionne en 320x320
  • L’ensemble du code source est publié sous licence GPL3
  • Le brouillon a été rédigé sur un Palm Zire 72

1 commentaires

 
GN⁺ 2024-09-12
Avis de Hacker News
  • Dans les années 1990, j’ai commencé deux fois à créer un jeu de mini-golf pour Macintosh, mais je n’ai jamais réussi à le terminer ni à le sortir.
    Récemment, j’ai récupéré le code source vieux de près de 35 ans et je suis en train de créer des images disque utilisables dans un émulateur. La première tentative de MiniGolf en noir et blanc est ici : https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...
    La deuxième tentative était une version couleur, faite quand j’avais de meilleures compétences en programmation, et elle figurera dans le Volume 2. Je suis en train d’assembler cette image disque

    • Glider était une franchise emblématique de l’époque des Mac 68k. C’est vraiment émouvant de le voir retravaillé
    • Les graphismes sont vraiment superbes. J’aime beaucoup le style
    • Enfant, j’ai énormément joué à Glider. Comme c’est sans doute la seule occasion que j’aurai de le dire, merci beaucoup d’avoir créé ces jeux
    • Merci John. Ce dépôt contient un peu de tout ce que j’aime : art, ingénierie, histoire, et surtout beaucoup d’art. C’est vraiment inspirant
  • Génial !
    Je me demandais si tu avais envisagé d’ajouter une animation de la balle qui tombe dans le trou. Dans la vidéo, on dirait que le nouveau niveau se charge dès que la balle et le trou se chevauchent suffisamment.
    Côté utilisateur, voir la balle entrer réellement serait beaucoup plus satisfaisant. Ça donnerait aussi davantage un sentiment d’accomplissement avant le chargement du niveau suivant

    • Je vais maintenant y réfléchir, merci
  • Excellent travail, et merci !
    Ces temps-ci, je commence à me dire que Palm OS ou d’autres formats d’exécutables homebrew rétro pourraient avoir une utilité réelle au-delà de la nostalgie.
    Des fichiers comme les .prc de Palm OS ou les ROM homebrew .gb sur itch.io peuvent tourner sur desktop, iOS, Android et sur de vraies consoles portables ; ils sont efficaces hors ligne, sans distractions et sans risque d’achats intégrés.
    Prenez Apotris, par exemple : j’ai acheté beaucoup de versions officielles de Tetris au fil des années, et je continuerai probablement, mais celle-ci est une implémentation très soignée qui tourne sur toutes les consoles. Grâce aux émulateurs GBA basés sur WASM comme RetroArch Web et à la prise en charge native des manettes dans les navigateurs modernes, on peut y jouer sur presque n’importe quel ordinateur sans installation.
    Et puis il y a une certaine tranquillité à posséder un exécutable autonome, avec de bonnes chances de pouvoir encore le lancer dans 1, 10 ou 20 ans. Je ne pense pas que ce soit le cas de beaucoup de jeux iOS ou de jeux indés web que j’aime

    • J’adorerais avoir un téléphone Palm OS moderne qui conserve la philosophie d’interface d’origine et puisse lancer tous les anciens titres. Même via émulation, ce serait super
  • Vers 1999, j’ai écrit du code pour PalmOS. Ce dont je me souviens particulièrement, c’est la façon de tester les applications.
    Je crois que c’était une fonctionnalité de l’émulateur : il envoyait continuellement des événements au logiciel. J’ai oublié les détails, mais par exemple, si l’application tenait 1 000 événements c’était passable, 10 000 c’était bien, et 100 000 c’était excellent.
    Je me considérais comme un programmeur C++ plutôt correct, mais en utilisant cet outil, j’ai été choqué de voir à quelle vitesse mon application plantait. C’était une expérience assez humiliante et très révélatrice.
    Je repense souvent à l’efficacité d’un outil aussi simple pour révéler les bugs, même si j’imagine que la même approche ne fonctionnerait pas telle quelle sur les appareils multitâches connectés à Internet d’aujourd’hui.
    Je me souviens aussi que CodeWarrior a été le premier IDE où j’ai vu une liste déroulante affichant toutes les fonctions du fichier source courant. C’était un vrai gain de productivité.
    Au passage, en 2010, quand j’étais au Japon, j’utilisais encore un Palm Tungsten. Il existait une application de dictionnaire japonais très simple pour Palm : une fois les règles de base de l’ordre et de la direction des traits assimilées, on pouvait imiter au stylet le caractère qu’on voyait et rechercher les kanjis correspondants. En recopiant les kanjis inconnus sur les panneaux, j’ai pu me débrouiller assez souvent pour m’orienter

    • > drop-down box with all the functions
      Je me souviens des #pragma - qui servaient à séparer les fonctions. On n’a plus vraiment ça aujourd’hui. Il y a bien #pragma region pour replier des blocs de code, mais ce n’est pas pareil
    • J’ai imaginé quelqu’un en train de porter Rust sur PalmOS. J’espère que ça n’arrivera pas
  • Je me demandais si on pouvait faire tourner ça sur du vrai matériel, puis je me suis rendu compte que je n’avais absolument aucune idée de ce qu’était devenu mon Palm LifeDrive quand je suis passé à BlackBerry.
    Ce petit PDA épais me manque. Pour l’époque, c’était vraiment impressionnant.
    https://en.wikipedia.org/wiki/LifeDrive

    • La semaine dernière, en faisant du rangement, j’ai retrouvé mon vieux Palm Tungsten E2. Si je retrouve le chargeur, je lancerai ça et je vous dirai
    • Le LifeDrive était vraiment un Palm étrange.
      D’un côté, je le détestais à cause des temps de chargement agaçants par rapport aux appareils précédents. L’OS avait été conçu pour tout garder en RAM/ROM et, au départ, il n’avait tout simplement pas de notion de mémoire fondée sur des fichiers ou des blocs ; du coup, presque chaque accès mémoire inattendu réveillait le disque dur. Il était aussi relativement volumineux.
      D’un autre côté, il avait 4 Go. On pouvait y mettre plus de deux films entiers. C’était aussi le premier Palm avec Wi-Fi, ce qui était appréciable.
      Au final, pour moi, il symbolisait le fait que Palm était en train de décrocher rapidement des tendances modernes. Par exemple, Symbian n’était absolument pas comparable à Palm OS en matière d’ergonomie, mais du point de vue de l’OS il était bien plus avancé, et ensuite sont évidemment arrivés l’iPhone et Android
  • J’adore vraiment, surtout la direction artistique. Excellent travail.
    Personnellement, la chose que je changerais, c’est que déplacer la souris dans la direction opposée pour viser me semblerait plus naturel. Beaucoup d’anciens jeux de mini-golf de Miniclip fonctionnaient comme ça.
    Si vous aimez les jeux libres et open source, je recommande Neverball et Neverput. Neverput est un simulateur de golf 3D avec des graphismes corrects

    • À l’origine, le Palm utilisait un stylet, donc contrairement aux téléphones tactiles au doigt, il ne masquait pas le point visé. Il est aussi possible que cela permette de garder plus d’espace du côté de la direction du tir
  • Magnifique ! Grâce à ça, mon IIIxe me manque
    À travers le filtre rose et imprécis de la nostalgie, c’est peut-être l’objet qui s’est le plus approché du sommet de la productivité sur appareil portable. Il avait juste assez de fonctionnalités pour me rappeler les choses dont je me souciais et que je gardais toujours sur moi, mais il manquait totalement de notifications distrayantes
    Il m’a fallu un moment pour faire taire mon iPhone afin qu’il arrête de m’importuner en permanence, alors que sur Palm, par défaut, tout était opt-in. Si on ne lui demandait pas explicitement de signaler quelque chose, il restait silencieux
    Je n’y reviendrais pas réellement si on me le demandait, mais d’un autre côté, ça me manque

    • Même sentiment. J’adorais vraiment mon IIIxe
      Si j’y revenais aujourd’hui, je serais peut-être horrifié par l’expérience utilisateur, mais à l’époque, ça m’a énormément aidé à être plus productif. Le langage de saisie manuscrite était aussi vraiment excellent. J’ai même rédigé des rapports avec
      Pouvoir écrire dans le bus ou en déplacement sans transporter d’ordinateur portable, c’était formidable. C’étaient des appareils incroyables
    • Le contrôle des notifications est l’une des fonctionnalités d’expérience utilisateur les plus puissantes qui soient. Pour les rares notifications que j’autorise, j’utilise beaucoup les modes de concentration basés sur le lieu et l’heure
  • J’aime beaucoup ! Petite suggestion : avant de charger le niveau suivant, ce serait bien de laisser un peu de temps pour montrer le moment où la balle entre dans le trou. Priver le joueur de cette satisfaction peut être frustrant

  • Projet intéressant. Les problèmes comme les fuites mémoire ou le débogage sont bien plus courants qu’on ne le pense dans le développement de jeux
    Les moteurs de jeu comme Unreal, Unity ou Godot en ont abstrait une bonne partie, mais si l’on développe un jeu en C, avec OpenGL et des contraintes mémoire, on peut rencontrer les mêmes tâtonnements initiaux, surtout quand le matériel impose ces limites
    L’éditeur de niveaux est un bon élément. Je suis curieux de voir comment il est implémenté ; la série Tony Hawk avait aussi une fonctionnalité du même genre, qui a mené à Tony Hawks Pro StrCpy : https://icode4.coffee/?p=954
    Cela dit, le jailbreak ou l’exécution de code arbitraire semblent bien plus faciles à obtenir sur PalmOS qu’un projet perso de mini-golf

  • Je l’ai essayé dans l’émulateur intégré au navigateur et le jeu est vraiment amusant. J’ai failli me faire totalement happer par le mode entraînement
    J’aimerais bien voir un portage ou une version inspirée pour Android, iOS et navigateur. C’est vraiment fun