Skip to content

Add the picogame game engine module - #11199

Open
lynt-smitka wants to merge 1 commit into
adafruit:mainfrom
MakerClassCZ:add-picogame
Open

Add the picogame game engine module#11199
lynt-smitka wants to merge 1 commit into
adafruit:mainfrom
MakerClassCZ:add-picogame

Conversation

@lynt-smitka

Copy link
Copy Markdown

First step of #11198: the picogame core C module.

The module itself is self-contained (shared-bindings/picogame, shared-module/picogame, optional port backends in common-hal/picogame). Outside of it this PR only touches:

  • py/circuitpy_mpconfig.mk / py/circuitpy_defns.mk / ports/raspberrypi/Makefile - build wiring, gated by CIRCUITPY_PICOGAME (off by default).
  • pajenicko_picopad - enables the engine. To fit it next to the Wi-Fi stack the board drops peripherals it physically lacks (_EVE, qrio, picodvi) and switches from -O3 to -O2 plus a few measured loop flags (engine kernels within ±1 % of -O3, ~150 KB smaller). 87.9 % of the firmware region used.
  • adafruit_fruit_jam - enables the engine with the RAM-framebuffer target (DVI/HSTX scanout). 92.2 % used.
  • locale/circuitpython.pot - regenerated.

Left out for follow-up PRs (per the issue discussion): core1 rendering and the ROMFS asset region.

Both board builds, sphinx docs and translations pass locally.

Retained-mode 2D engine for writing games in CircuitPython: a Scene
with dirty-rect rendering over Sprite/Tilemap/Canvas/StripDraw/
Particles/Triangles layers, plus collision, noise and text helpers -
and enough pseudo-3D primitives (project, raycast, mode-7, triangle
batches) for simple 3D games. Renders portably through any
BusDisplay; optional port backends add an async-DMA SPI path
(raspberrypi, espressif) and a RAM-framebuffer target for DVI/HSTX
scanout boards. Gated by CIRCUITPY_PICOGAME (off by default);
enabled on pajenicko_picopad and adafruit_fruit_jam.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant