本页目录

GameKit:AI 友好的 2D 小游戏工具链(TypeScript 三端构建)

gamekit · ahao0150/gamekit

GameKit 是一套用 TypeScript 编写的 2D 小游戏工具链,目标是一份源码同时构建 Web、微信小游戏和抖音小游戏三端。它采用 .ui 声明式界面与契约先行的开发方式,并设置真浏览器适配门禁。仓库 README 以一款面向 4 岁以上儿童的记忆配对...

益智解谜 休闲 无明确引擎 Kotlin 存档系统 关卡管理 游戏状态管理 动画系统 中级
★ Stars 597 Forks 424 License MIT 更新 2026-10-15

国内开发环境适配

Windows
未知
Linux
未知
macOS
AI 推断/待核验
引擎 / 框架:无明确引擎 暂无中文教程标记 未标记站长实测
构建依赖 Gradle 与 Android SDK;README 中的美术再生成流程以 macOS 为例(brew 安装 webp,并下载 macOS 版 realesrgan-ncnn-vulkan 与 vtracer),其他平台需自行准备对应二进制。国内访问 Google Maven 等仓库可能较慢,建议配置镜像,具体待核验。

中文项目介绍

Memory Game 是一款面向 4 岁以上儿童的 Android 记忆翻牌游戏,最早于 2014 年发布,仓库描述为「Simple and beautiful memory game for kids」。它的设计目标很明确:没有广告、没有账号、不收集任何数据。玩家点击 Play 后,会沿着一条由若干回合组成的「路线」前进,在计时结束前找出配对卡牌并收集星星。

README 记录了这款游戏的完整生命周期:2014 至 2019 年以 Java 编写并上架 Google Play,最后一个版本为 2019 年 2 月的 1.01.001007;2019 年 11 月因未跟上开发者政策被下架,代码随之停滞,期间 Android 平台向前推进了十二个 API 级别;2026 年项目重启,整体从 Java 迁移到 Kotlin,重构、调试、测试并准备重新发布,同时保留原有美术与玩法。

技术架构分析

技术要点

项目是一个标准的 Android Studio 工程,技术栈为 Kotlin、AndroidX、Gradle Kotlin DSL,target SDK 36,min SDK 24。README 中值得注意的工程细节包括:

  • 美术资源流水线:原始素材存放在 art/original,应用绘制的所有内容都由一个 Gradle 任务从原图生成,因此修改原图只需重跑任务并提交。
  • 卡牌矢量化:每张卡牌先用 Real-ESRGAN 放大 4 倍,再用 vtracer 描摹为路径,并按几何位置把身体、眼睛、瞳孔、阴影等部件标记进 app/src/main/assets/characters/<name>.chr。应用在 Canvas 上绘制,任意尺寸都清晰,并带有动画:正面朝上时呼吸与眨眼,配对成功时跳跃。标记错误可在 art/character-overrides.txt 中修正。
  • UI 美术:按钮、弹窗、主题卡等被转换为矢量 drawable,颜色渗入透明区域,轮廓从 alpha 通道描摹并用作裁剪路径,柔和投影变成一条半透明路径。
  • 文字与运行时绘制:图片本身不带文字,带字原图保留在 art/original/lettered,tools/erase-lettering.py 生成去字副本,应用在运行时以玩家语言绘制文字。
  • 标题与图标:标题是难以描摹的斜线纹理,保留为 WebP;英文使用手作原版,tools/generate-titles.py 以同样风格生成其他语言版本。启动图标与商店图标同样由 art/original/app_icon.png 生成。
  • 本地化:翻译是 tools/i18n 下的 Python 数据,每种语言一个字典,tools/i18n/generate.py 据此生成 values-<locale> 资源。显示字体 Grobold 只有拉丁字母,因此 @font/game 按语言解析为 Rubik、Baloo 2 或 Mitr(均为 Open Font License),中日韩使用系统字体。

如何构建

README 给出的常用命令如下:

./gradlew :app:assembleDebug        # debug 构建,可与商店版本共存安装
./gradlew :app:testDebugUnitTest    # 游戏逻辑单元测试
./gradlew :app:lintDebug            # lint,警告视为错误
./gradlew checkKeystore             # 校验签名 keystore 配置
scripts/verify-release.sh           # 生成签名 release APK + AAB 并做上传前检查

签名与 Play 商店清单见 docs/RELEASE.md,签名材料不会存放在仓库中。隐私政策由 sromku.github.io 站点仓库发布。

重新生成美术资源需要先安装 webp,并从 GitHub Releases 下载 macOS 版的 realesrgan-ncnn-vulkan 与 vtracer,然后执行:

brew install webp
./gradlew regenerateArt -Prealesrgan=/path/to/realesrgan-ncnn-vulkan -Pvtracer=/path/to/vtracer

补充说明

玩法与内容

根据 README,游戏当前包含以下内容:

  • 4 个主题:Animals(动物)、Monsters(怪兽)、Emojis(表情)与 Ocean(海洋),每个主题拥有独立进度。
  • 路线式关卡:每个主题 6 条路线,卡牌规模从 3x2 一直到 10x5,每条路线 100 回合;随着游玩推进,下一条路线会解锁。
  • 迷你游戏:每第五个回合会插入七种迷你游戏之一,包括「Who was here?」「Follow the song」「What changed?」「Shadow match」「Odd one out」「Shopping list」与「Peek and find」。
  • 回合反馈:每回合结算星星,完成时有彩纸与跳跃的小伙伴,主菜单还会出现「今日好友」。
  • 好友图鉴:每十回合有一位角色加入图鉴,点击可以按名字认识它,已收集的好友也会出现在菜单中。
  • 家长角落:入口需要长按才能打开,内含隐私政策与「重新开始」。
  • 多语言与适配:支持 21 种语言,可在游戏设置中切换;适配手机与平板,横屏,可离线运行。

变更规则与许可

Play 商店条目将该游戏声明为儿童应用,并声明符合 COPPA 与 GDPR。因此任何改动都必须保持无数据收集、无网络访问、无权限、无广告、无内购、无第三方 SDK;CLAUDE.md 对此有明确说明,checkChildSafety 任务在可判断时会令构建失败。

许可方面,代码采用 Apache License 2.0;美术资源由原作者单独授权,来源包括 GraphicRiver 上的动物合集、怪兽创作套件、游戏背景与卡通 GUI 包等条目;Rubik、Baloo 2 与 Mitr 字体采用 SIL Open Font License,详见 docs/licenses。

学习建议

这个仓库适合作为 Android 小游戏与「合规优先」儿童应用的参考样本:可以观察 Kotlin 迁移后的工程组织、Gradle 驱动的美术资源生成流水线、矢量角色与 Canvas 动画的实现方式,以及用 Python 数据源生成多语言资源的本地化流程。若关注儿童应用合规,checkChildSafety 与变更规则部分也提供了可借鉴的约束思路。

开源许可证与版权说明

许可证标识:MIT。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目