Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Let's play: proposal to upstream picogame

未关闭
#11,198 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
活跃
技术栈
c
领域
embedded-iot

调研方向

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.

由索引模型根据 Issue 内容生成。

描述

advanced api displayio enhancement

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?

主要语言
C
星标
4.6k
派生
1.4k
平均合并
1 天 8 小时
30 天内合并 PR
155

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

adafruit/circuitpython 的其他 Issue

查看 adafruit/circuitpython 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。