papyDeck¶
papyDeck est une console d'inspiration arcade programmable en Lua. Le matériel : trois RP2350B genlockés, 640 × 480 à 60 Hz, 8 bits par pixel palettisé, une palette de 256 entrées et une table de mélange, un budget de sprites compté par scanline.
Un jeu s'écrit une fois et tourne à deux endroits : dans le simulateur, dans le navigateur, et sur la carte. Les deux exposent la même API, gfx, pad, sys, phy et require, au même modèle de coût : une ligne trop chargée s'affiche périmée, un sprite pas encore dans le pool manque une trame, dans l'un exactement comme dans l'autre. Un jeu qui tourne dans le simulateur tourne sur la carte.
Par où commencer¶
- Un premier jeu : un jeu est un dossier, un squelette de deux fonctions, un sprite qui suit la croix directionnelle, une plateforme en 75 lignes.
- Les règles : les cinq règles qui gouvernent toute l'API, le bac à sable, entiers et flottants.
- L'App : là où vivent les projets, les bundles d'art et les jeux publiés.
La conception du matériel et du firmware est documentée sur www.papydeck.eu.
Déterminisme¶
Une partie doit se rejouer au bit près : un score est une trace, la suite des entrées d'une partie, et le serveur du classement ne croit aucun score sur parole, il rejoue la trace et doit retrouver le même chiffre. C'est pour cela que la trame logique est l'appel à _update() plutôt que l'horloge, que le moteur travaille en entiers, et que les fonctions transcendantes n'y sont pas.
Licence¶
Firmware et logiciel sous MIT, matériel sous CERN-OHL-P.