Let's play: proposal to upstream picogame
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- c
- Ambito
- embedded-iot
Direzione di ricerca
The issue proposes upstreaming the picogame C module but does not name CircuitPython files, tests, or an implementation entry point. First read the linked picogame engine overview and review the repository's process for adding C modules and board build options. The immediate outcome is a maintainer decision on scope, ROMFS and Core1 requirements, and distribution; implementation work is not yet defined.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
It's been a year since I started working on the picogame game engine https://picogame.makerclass.cz/.
In my opinion, it is ready for the next step. Over the last two months I haven't had to change anything in its core API except adding new primitives for the 3D helpers, so I consider it stable - and by now dozens of users have run it on their own boards, some have built their own games with it. I'd like to discuss integrating the C module into CircuitPython.
I also need help deciding a few details about how to finalize the engine, and what requirements would Adafruit have for it.
Two features still need a direction:
-
Core1: on SPI boards this adds about 30 % performance for pseudo-3D scenes; on the Fruit Jam without USB host it generally adds about 50–70 % for full-motion games. In reality this is primarily a benefit for 3D scenes, which picogame wasn't originally designed for. The question is whether it makes sense to keep improving this aspect.
-
ROMFS asset partition: for games with large assets, a small flash partition (e.g. 32–96 kB carved from the CIRCUITPY drive) that the engine can blit from directly - assets then cost zero RAM, which unlocks much better-looking games. It requires a partition layout change, so I'd like to hear how you'd prefer that to be handled.
I'd also like to discuss distribution. I would enable picogame on the PicoPad board I maintain (https://circuitpython.org/board/pajenicko_picopad/), and I think it makes sense enabled on other gaming boards and the Fruit Jam. It's useful on a bare Pico too, but there it probably shouldn't be on by default - for those maybe a separate build variant, similar to how the Zephyr builds, should be nice.
A few details: the whole C module costs about 37 kB of flash on a PicoPad with optimized compile flags (~6 kB of that came with 3D). The C module is fully usable on its own - see https://picogame.makerclass.cz/concepts/engine-only/ - the rest of the engine is 30+ Python libraries that would stay a normal library bundle outside the tree: they abstract the hardware (GPIO buttons, USB gamepads/keyboards and I2C pads all behave the same), audio and other conveniences, configured through settings.toml so boards and peripherals can be tuned without touching game code. The engine is covered by a desktop simulator, a browser (WASM) build and a benchmark suite, and 40+ existing games and demos serve as a regression corpus - all of which I intend to keep maintaining.
What should be the next step?
- Lingua principale
- C
- Stelle
- 4.6k
- Fork
- 1.4k
- Merge medio
- 1g 6h
- PR unite (30g)
- 163
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di adafruit/circuitpython
-
board breaks api
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
adafruit/circuitpython#11099 · 4 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Support SDIO cards as a second USB mass-storage LUNForse già presa @ladyada l’ha presa oggi. Apertarp2 sdcardio storage supervisor usb
adafruit/circuitpython#11564 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
bug sdcardio storage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 43/100
adafruit/circuitpython#11562 ·
I maintainer di solito rispondono entro 1 giorno
-
storage usb zephyr
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
adafruit/circuitpython#11531 ·
I maintainer di solito rispondono entro 1 giorno
-
Move silabs to ZephyrApertasilabs
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
adafruit/circuitpython#11507 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di adafruit/circuitpython
Issue simili
-
type: feature
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 77/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
FujiNetWIFI/fujinet-firmware#1932 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
I maintainer di solito rispondono entro 1 giorno
-
stdlib
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100