2 points par GN⁺ 2024-03-23 | 1 commentaires | Partager sur WhatsApp
  • Picotron est un environnement de création autonome permettant de concevoir, exécuter et partager des apps Lua sur un matériel virtuel, afin de gérer de petits jeux et outils au sein d’un même bureau
  • Un écran 480x270 en 64 couleurs, un système de fichiers virtuel, le format de fichiers POD, le synthétiseur audio PFX6416 et une VM Lua 5.4 par processus constituent son modèle d’exécution de base
  • Les apps, projets et bundles de distribution sont tous traités comme des cartouches et peuvent être enregistrés et partagés sous forme de fichiers texte .p64 ou de .p64.png contenant jusqu’à 256 Ko de données ROM
  • Le bureau propose des espaces de travail à onglets, un tiroir d’outils repliable et des piles de fichiers, avec des éditeurs intégrés pour le code, les graphismes, les tilemaps, la musique et les effets sonores
  • Actuellement en Beta, il prend en charge Windows, Mac, Linux et l’export HTML, et est vendu 19,99 $ avec accès aux futures mises à jour

Un environnement de création sur matériel virtuel

  • Picotron est un environnement de création autonome qui se présente comme une Fantasy Workstation et fonctionne sur du matériel virtuel
  • Les utilisateurs peuvent créer des apps Lua et exécuter ou partager leurs réalisations de plusieurs façons
    • Exécution sur le bureau Picotron
    • Partage sous forme de fichier cartouche
    • Export en HTML autonome et en distributions binaires
  • L’écran est par défaut en 480x270 64 couleurs, avec la possibilité de fonctionner aussi en 240x135 ou 160x90
  • En mode plein écran, une palette personnalisée peut être utilisée
  • L’API graphique intégrée fournit un accès bas niveau à l’affichage
    • Motifs de remplissage 8x8
    • Remplacement et blending de palette
    • Bits de stencil
    • tline3d pour la rastérisation de textures avec correction de perspective

Fichiers, audio et modèle d’exécution

  • Le système de fichiers est un système de fichiers virtuel qui n’expose que les parties nécessaires du système hôte
  • Les fichiers internes de Picotron utilisent le format POD (Picotron Object Data), qui permet d’enregistrer et de charger directement des tables Lua sur disque
    • Les données de sauvegarde ou de niveaux peuvent être regroupées dans des tables Lua et enregistrées dans un pod avec store()
  • L’audio est généré par PFX6416, un synthétiseur temps réel à 64 nœuds et 16 canaux
    • Les nœuds créent des signaux à partir de wavetables ou les modifient via modulation FM/RING, délai, filtres résonants HP/LP et waveshaping
    • La musique, y compris les instruments conçus par l’utilisateur, peut être stockée sur disque dans des fichiers de 5 à 20 Ko
  • L’environnement d’exécution utilise, pour chaque processus, une VM Lua 5.4 légèrement modifiée et distincte
    • Le CPU virtuel est réparti entre les processus et exécute jusqu’à 8 M d’instructions VM par seconde
    • Les cartouches Picotron peuvent s’exécuter à vitesse constante sur diverses plateformes
    • Si elles fonctionnent sans problème sur un ordinateur de bureau performant, elles sont conçues pour offrir globalement un rendu similaire dans l’environnement web d’un ancien netbook

Un mode de distribution centré sur les cartouches

  • Les applications, projets et bundles de distribution sont tous traités comme un même type appelé cartouche
    • Chaque cartouche fonctionne comme un dossier ordinaire et contient les fichiers source et ressources nécessaires à l’exécution du programme
    • Sur le système hôte, elle est enregistrée sous la forme d’un fichier texte unique .p64, dans la limite de ce qui tient en RAM
    • Le format PNG partageable .p64.png peut contenir jusqu’à 256 Ko de données ROM

Bureau et outils intégrés

  • Le bureau Picotron propose des espaces de travail à onglets et un tiroir d’outils repliable (tooltray) accessible depuis tous les espaces de travail
  • Le tiroir d’outils agit comme un second bureau donnant accès aux fichiers et widgets fréquemment utilisés
  • Il est possible de déposer des fichiers les uns sur les autres pour créer des piles organisées, et de parcourir ces piles avec la molette de la souris
  • Les éditeurs fournis par défaut couvrent le code, les graphismes, les tilemaps, la musique et les effets sonores
    • Ces éditeurs sont eux-mêmes créés avec Picotron
    • La pile d’annulations illimitée, l’interface graphique et la gestion des fichiers utilisent les bibliothèques standard de /system/lib
  • Les utilisateurs peuvent créer des fonds d’écran animés, économiseurs d’écran, icônes et widgets, et organiser leur workflow comme ils le souhaitent

Pipelines, plateformes prises en charge et prix

  • Picotron est construit sur des pipelines graphiques et audio étroitement intégrés
    • Les pipelines graphiques et audio peuvent fonctionner sur des machines hôtes peu puissantes ainsi que sur le web
    • Ils fournissent une API simple pour les tâches courantes, comme dessiner des sprites avec des couleurs modifiées ou déclencher des effets sonores
    • Les données sous-jacentes et l’état de la machine sont exposés dans la RAM virtuelle
  • Le projet est actuellement en Beta
    • Les fonctions Windows, Mac, Linux et d’export HTML sont complètes
    • Les high scores en ligne et le partage de fichiers sont pris en charge
    • L’API ainsi que les pipelines vidéo et audio ont déjà été validés
    • Les évolutions prévues peuvent être consultées dans la roadmap de Picotron
  • Le prix est de 19,99 $, et les acheteurs auront accès aux futures mises à jour
  • Les clients existants de PICO-8 et Voxatron peuvent bénéficier d’une mise à niveau à tarif réduit

1 commentaires

 
GN⁺ 2024-03-23
Avis sur Hacker News
  • Je me suis bien amusé avec PICO-8 et son attrait essentiel est toujours là, mais je suis désormais passé à une nouvelle génération de « vrai » matériel rétro comme le CX16, le Mega65 et l’Agon Light
    Quand il y a une conception de carte, des puces et des ports d’entrée/sortie, les spécifications deviennent plus solides, et de nouvelles machines comme Picotron peuvent pousser assez loin, sans trop de compromis, ce qu’il est possible de faire dans les limites des spécifications d’E/S
    On peut aussi émuler, accéder directement au matériel, et faire tourner le langage de son choix, BASIC, C, Forth, etc.
    Comme avec la famille Pico, Lua peut être trop lent à interpréter sur du vrai 8 bits, mais si on s’en sert plutôt comme base pour un cross-compiler, cela devient un autre type de défi de programmation
    L’idée va dans le sens de : « et si on créait l’environnement de développement ultime, capable de générer exactement le code nécessaire à ce projet ? » ; on le voit aussi dans des jeux PICO-8 très optimisés ou de nouvelles démos pour C64, Spectrum et A800, qui utilisent de grosses machines au service des anciennes et ignorent ainsi les clichés des deux côtés

    • J’aimerais que ces machines ne restent pas toujours sur les mêmes CPU rétro, Z80, 6502, 8080, ou des copies de VDP en FPGA
      Je veux des machines d’inspiration rétro, basées sur la 2D/le blitting, mais avec du matériel plus évolué, comme du Cortex-M, du Z8000, du 68000 ou du RISC-V bon marché
      Qu’elles mettent BASIC dans la ROM de boot, mais qu’elles laissent de la marge pour grandir à la manière des années 90
      Je comprends l’envie de retrouver la magie du Commodore 64, mais personnellement, l’époque de bidouille autour de l’Amiga, de l’Atari et de la BeBox me paraît bien plus brillante
    • J’ai vraiment passé de bons moments avec mes enfants sur Pico-8, à créer de petits jeux et à apprendre la géométrie de base
      La communauté issue de Pico-8 implémente déjà dans Picotron cat/wget/grep[1] et, bien sûr, Minesweeper[2]
      Tout ce que Joseph White/zep crée ravive l’époque du Web des débuts et d’IRC, où tout le monde fabriquait, partageait et s’amusait sans complexe
      Grâce à zep, l’informatique redevient amusante même pour les gens ordinaires
      [1]: https://www.lexaloffle.com/bbs/?tid=140771
      [2]: https://www.lexaloffle.com/bbs/?tid=140678
    • Je ne suis pas sûr que Lua soit forcément beaucoup plus lent que BASIC à interpréter sur du vrai 8 bits
      Sa conception est très compacte et orthogonale
  • Je l’ai essayé une trentaine de minutes et je souris encore. C’est tout simplement vraiment amusant
    Comme j’ai beaucoup utilisé Pico-8 par le passé, il a été facile de me mettre tout de suite à créer quelque chose ; Pico-8 fait partie, avec Aseprite, Blender et Propellerhead ReBirth, des quatre logiciels que je mets dans mon panier des logiciels qui procurent de la joie
    Pico-8 a bénéficié d’un soin énorme dans ses objectifs et ses limitations volontaires, et jusqu’ici Picotron donne le même sentiment d’amour et de réflexion
    C’est adorable, et je n’ai pas envie d’arrêter de créer avec
    J’ai essayé beaucoup de clones de Pico-8, mais tous m’ont donné l’impression de passer à côté de l’essentiel. Ils « améliorent » les limitations, mais sans être satisfaisants
    Fait amusant, j’ai moi-même essayé trois fois de créer une version JavaScript façon « Pico-8 avec plus de fonctionnalités » pour prototyper lors de game jams, mais à chaque fois, comme les clones, elle était assez fonctionnelle sans pour autant inspirer, et j’ai abandonné
    Je ne sais pas qui crée Pico-8 et Picotron, mais je salue ces formidables personnes pour avoir créé des logiciels aussi attachants

    • Je mets aussi Aseprite dans cette catégorie, mais pour moi le plus important, c’est Godot
      Après plusieurs années à créer des projets OpenGL depuis zéro et à avoir un peu touché à Unity, je me suis plongé à 100 % dans Godot vers 2020, et c’est depuis le logiciel qui me procure le plus de joie
    • Personnellement, je préfère largement TIC-80
      J’aime davantage son meilleur ratio d’écran, la possibilité d’utiliser d’autres langages, et le fait de ne pas devoir utiliser une bibliothèque standard Lua personnalisée
  • En voyant que « les applis Picotron peuvent être créées avec les outils intégrés et partagées avec d’autres utilisateurs dans un format spécial de cartouche PNG de 256 Ko », on remarque une tendance actuelle des logiciels indés à distribuer des ressources dans des fichiers PNG. Pourquoi donc ?

    • Il y a aussi le côté amusant d’avoir un jeu/programme exécutable dans une image, mais PNG est un format sans perte, utilise un algorithme de compression comme ZIP, et dispose de bibliothèques d’encodage/décodage dans de nombreux langages
      Cela en fait donc un bon candidat comme format de données applicatives
    • Picotron est créé par la même personne que PICO-8 et, à ma connaissance, PICO-8 a popularisé la console fantasy
    • C’est amusant et facile à partager
    • C’est surtout pour le fun. De plus, les PNG ont un canal alpha bien pratique pour stocker des données
      Pour autant que je sache, c’est la précédente console de ce développeur, PICO-8, qui a lancé cette tendance
  • C’est un petit objet amusant, mais il faut rester prudent. Il y a encore des bugs et des plantages, ainsi que des aspérités
    On voit à peu près ce que vise Zep, mais beaucoup de choses restent assez mystérieuses, et la documentation de l’API est presque inexistante
    En pratique, les gens affichent toutes les tables Lua globales pour essayer de comprendre comment faire certaines choses
    Ce n’est pas aussi grave qu’en 0.1a, mais il reste encore des points à polir pour la 0.1c

  • Pico-8 a été l’un des logiciels les plus agréables que j’aie jamais utilisés, et j’ai hâte de voir ce que la communauté va créer avec Picotron.
    La machine elle-même, qu’il s’agisse de Pico-8 ou de Picotron, est propriétaire, mais on peut consulter le code source des programmes utilisateurs, même s’ils ne sont pas open source.
    C’est vraiment excellent sur le plan pédagogique, et j’aime beaucoup.
    Il y aura sûrement des implémentations compatibles, mais les outils de Pico-8 étaient tellement soignés, et le prix si bas, qu’il n’y avait aucune raison de ne pas donner 10 dollars.
    Une implémentation open source peut se contenter d’exécuter les programmes, mais ne fournira pas forcément tous les petits outils adorables qui vont avec, comme l’IDE, les éditeurs de sprites/maps en pixel art ou le tracker musical.
    Ça valait largement son prix, et Pico-8 est l’un des rares logiciels que j’ai achetés sans jamais le regretter.
    En résumé, Pico-8 est excellent, la communauté et les programmes gratuits le sont aussi, donc je pense que Picotron le sera également. Je suis fan depuis longtemps.

    • J’aimerais que quelqu’un explique pourquoi Pico-8 est tellement meilleur que les autres consoles fantasy.
      En particulier, WASM-4 m’a récemment semblé intéressant, et TIC-80, que quelqu’un d’autre a mentionné, a l’air bien aussi.
      Je me souviens aussi avoir lu des choses sur Pyxel et en avoir tiré de l’inspiration.
      Les trois ont l’avantage d’être gratuits ; alors pourquoi payer pour Pico-8 ?
    • Pico-8 est excellent, mais https://tic80.com/ est vraiment génial aussi.
    • Je suis d’accord pour dire que Pico-8 est l’un des logiciels les plus agréables qui soient, mais j’ai un reproche que j’ai vraiment du mal à laisser passer : la police de l’éditeur est trop difficile à lire.
      J’ai essayé de m’y habituer, mais je n’y suis pas arrivé.
      Cela dit, les jeux sont très jouables, amusants, inspirants, et la communauté pourrait difficilement être meilleure.
  • Je me demande si le chiffre « CPU : 8 millions d’instructions de VM Lua par seconde » est une approximation, ou s’il s’agit d’une limite fixée pour garantir la cohérence.
    L’entrée « Quelle est la vitesse du CPU ? » de la FAQ dit seulement qu’il est rapide et plus rapide que celui de PICO-8.

    • C’est une vitesse limitée, et les détails exacts sont encore en cours d’ajustement.
      En pratique, comme l’écran est beaucoup plus grand, la marge n’est pas énormément supérieure à celle de PICO-8.
      Pour faire quelque chose de vraiment gourmand en CPU qui ne passerait pas sur PICO-8, il faudra utiliser un mode d’affichage basse résolution.
    • PICO-8 fait aussi comme ça, donc ça doit être une vitesse limitée : https://pico-8.fandom.com/wiki/CPU
  • Personnellement, je trouve que ça a vraiment une bonne vibe.
    Même si Pico-8 est un excellent logiciel, il me paraît un peu trop rétro et brinquebalant ; Picotron se rapproche beaucoup plus de mes sensations d’enfance.
    J’ai hâte de pouvoir jouer avec.

  • Ce serait génial de le faire tourner sur l’un de ces appareils Clockwork : https://www.clockworkpi.com/shop?page=2

    • J’ai essayé pico-8 sur un Clockwork emprunté, et ça fonctionnait bien dans la plupart des applications.
    • Le uConsole met en avant la prise en charge de pico-8, donc on dirait que ce genre d’usage était prévu dès le départ.
  • Ce serait bien d’avoir une dimension physique, comme un QR code sur un morceau de carton à glisser sous la fente d’un lecteur bon marché.
    Pour vraiment rendre l’esthétique 8-bit, on ne peut pas totalement éviter une certaine sensation matérielle. Avec un écran basse qualité et de gros boutons à marteler.

  • Je suis un peu déçu que ce ne soit apparemment pas entièrement compatible avec PICO-8.
    J’imaginais que ce serait l’environnement parfait pour créer des jeux PICO-8.

    • Je serais curieux de savoir sur quels points. À ce stade, ça peut peut-être encore changer.