惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
博客园 - 司徒正美
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
量子位
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
博客园 - Franky
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Threat Research - Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fox-IT International blog
T
ThreatConnect
A
Arctic Wolf
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
李成银的技术随笔
Project Zero
Project Zero
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Register - Security
The Register - Security
F
Full Disclosure
H
Hacker News: Front Page
雷峰网
雷峰网
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
SegmentFault 最新的问题
S
Schneier on Security
T
Tor Project blog
博客园_首页
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
S
Securelist
C
Comments on: Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Attack and Defense Labs
Attack and Defense Labs
IT之家
IT之家
博客园 - 叶小钗
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events

V2EX

[问与答] 你们有没有觉得,用了 AI 后,收入没增长,开销却变大了? 有一张好卡和一个好 IP,支付订阅确实非常丝滑 DigVPS 测评 - AkileCloud(AK)新增 JP 原生 IP 产品详评数据: IP 还行,不是大路货。 有 WeChat 换微信的吗? [出售]smarthost 黑色星期五,折扣款,新加坡年付 10.95 美元小鸡 寻找内测用户 – InkPDF Android PDF 批注应用(互测欢迎!) 阿里云 tokenplan 和 百度 codingplan 慎买 鹅厂取消组长负责制;拉勾网破产; Meta 裁员补偿曝光! chatgpt 代充现在还稳吗? 用同一个手机订阅 Claude 或用同一个 IP 使用 Claude 被连坐的概率大吗? [免费赠送] 住宅 IP 流量 CDK,新用户专享,手慢无 Claude API 企业中转,新用户直接送 10 美元额度 京东实名下出现非本人账号,两年了 [出售]Colocrossing CCS LEB 特供款 10 刀/年小鸡!支持 WIN 系统(目前官网无货) [Claude] 用 Google 礼品卡订阅 Claude 方案可行吗? [问与答] 春风若有怜花意 可否许我再少年 萌新的第一台软路由上 N5105 是不是有点奢侈? Stsrship v3 首飞无意外, payload 达到 100T 怎么给 AI 提供代码?我不会给 AI 表达说话? AeonRiddles 中文名定为“诡案迷踪” 个人长期买一些 U, USDT 或 USDC 都可以 AI 音频降噪在线工具 [OpenAI] 整了个让 Claude Code、Codex、Cursor 共享记忆的小工具 分享一个自己写的私有化 ngrok 类工具:量子隧道 千万别更新 OneDrive 26.078.0426 [实习] Casbin 开源社区《Talent 2026》远程研发实习生招募中! [分享发现] 看完给给阿嬷的情书了. 只有我觉得非常中式恐怖吗? windows11 通行密钥出现问题 感觉 GPT 5.5 最近降智实在离谱 alt-tab 在版本 11.0 正式升级为 alt-tab pro 版 [分享创造] 精选 X 上的图片提示词开源社区 - Open Prompts [编程] 被 composer 2.5 震撼了 它们怎么突然长良心了? [程序员] Claude desktop 求助 [请教] 怎么把 OpenCode 的 Go 订阅提供给 ClaudeCode 用? copilot pro 已不给新学生用户使用 [Claude] 听说 Claude Code 可能要通过视频监控程序员,防止程序员离开电脑前了 大家用了 cursor composer 2.5 吗?感觉又快又强啊 求教,Google 账号地区怎么修改(不是 Google Play 里的地区) [生活] [记录]-2026-05-22 藏龙卧虎的邻居 支付中台系统,基于 jeepay 重构了 2 天,目标是做企业部署发行版遇到的问题分享 富途,老虎,长桥被罚,以后买港股美股只能在链上购买了吗? 月底继续卖自家产今年新茶,评论抽奖 [FK Claude] 一个只做 Claude 的中转站 [Apple] 解决新美区 Apple ID 登录后变国区的问题 [分享创造] AI 会员账号店铺导航 [分享创造] vibe 了一个 v 站皮肤,喜欢的老哥可以试试 #员工被骂滚后遭开除获赔近 16 万# IOS 有哪些去广告的方案, quanx 的去广告 微信图片卡的不行 寻找长录音会议音频的总结软件,想要本地化有安全保障的 codex 怎么设置防询问? PHP 全栈(主要是小程序), 二开功能, 需要对接支付和开发商家功能. 有兴趣接活的联系, 有要求 听说裁员又开始了? DeepSeek api 改成永久打折了 openclash 限制不能打开某些网站 [Surge] 6 折转 Surge 车位 用 mac 连接 Windows RDP,没有 udp, windows 却有 [分享发现] vanyosapce.com 跑路了? [自然语言处理] Humanize-Text 4 步把 AI 文本变成人类写作: DeepSeek×2 + Google + Niutrans [☕Vibe Coding🤖] 大家觉得 OpenCode 和 Claude Code 哪个更好用呢 技术岗的领导完全不懂技术,真想跑路 [推广] ai 账号店铺 专营 gpt Claude gemini 成品号 卡密直冲 [西安] 有没有携程常订五星级酒店的大佬,有兴趣可以来免费体验一下小店 [分享创造] 非科班零基础, vibe 了一个基于 telegram 公开群组生成新闻网站的项目 有没有听说过这种买断政策的公司? 前几天看到 V 站老哥的「新闻雷达」,照着试着学做了个微信小程序版 为什么字节 出了 trae 又搞了个 trae cn, 阿里搞了个 qoder 又出了个 qoder cn? 一个软件搞不定吗? [问与答] Mac 和小米手机之间的互联效果咋样? 禁止境外炒股了,兄弟们怎么看 [推广] Codex 新站点 HappyCode 推广,纯 Plus 号池(0.04 倍率)活动送 75 刀额度 [TV|免费] 全功能投屏工具 - AirPlay/电脑/有线镜像/4K/H.265/30ms 极低延迟 每天上班打王者刷视频,手指都受不了了,求推荐兼职,我会开发 作为 Linux 发行版, CachyOS 性能和包丰富度表现堪称完美。 大家用 claude code 是订阅还是买 apikey 来使用啊 [投资] 20260522 大环境不好存量全死了只建议开免费的美国嘉信和盈透了 [生活] 今天我生日,可以薅 V 友一句生日快乐吗? 如果用 AI 写一个小网游,每周玩法的胜利者会直接获得跟 ai 交流的机会,就跟龙珠一样,如此循环往复,有搞头么 我觉得 AI 幻觉可能是避免不了的了,这也许就是人类工程师还存在的理由? 老虎证券的“环球账户”,即古代老虎证券和 ibkr 合作的那个,咋说? 老虎、富途被罚,除了盈透等几家美国券商,身在大陆还有其它投资美股的渠道吗 买美股的路要被彻底堵死了,富途老虎长桥被重罚,大陆存量客户只准卖不准买,怎么办 claude -p 现在到底走什么额度啊 [分享创造] 兄弟们 vibe 了一个很好用的 vim 翻译插件, 分享给大家 证监会拟决定:没收老虎、富途、长桥境内外相关主体全部违法所得,并依法严厉处罚 [分享发现] ESP32-S31 测评 老虎、富途、长桥将被罚 2 年集中整治如何影响跨境炒股投资者 [OpenAI] ChatGPT Pro 额度怎么蹬满? 我发现有了 AI 之后,很多人都在重复造轮子 读"Cursor 的 Debug 模式误删 E 盘???GB 文件"有感 哦豁,猪要养肥了杀,对老虎、富途、长桥动手了 如果问各大 AI,谁被网友们称作畜生 AI 公司公司…… [求职] 西安| AI Agent / 数字员工 / 企业 AI 工作流架构与交付方向,寻找长期发展机会 你们的 Claude Code 好了吗 从公开发言和实际行动来看, Anthropic 这家公司一直以来秉持的是不是一种 AI 门罗主义? CodeX 会员也需要验证手机号码了? [DDShub] 折扣海外模型站 Markdown 表格语法更新了? AI 时代 产品需求文档(PRD) 软件需求文档(SRS) 应该怎么写呢?有推荐的模板吗?有推荐的 SKILL 吗? 区块链开发工程师 [手写分享] 开源的项目 star 破 300 了,编程没有你想得那么重要
做了第一款 iOS 小游戏:用 SwiftUI 写了个水墨麻将连连看,送 50 个内购码
hashtome · 2026-05-23 · via V2EX

各位佬,大家好。

最近把第一款 iOS 小游戏上架了,叫 Sumi Mahjong Solitaire 。中文我自己叫它「禅艺麻将 / 水墨连连看」。它不是四人麻将,是麻将牌面的连连看 / Mahjong Solitaire:点两张相同的自由牌,如果能连起来就消掉。

App Store:

https://apps.apple.com/us/app/sumi-mahjong-solitaire/id6770823912?uo=4

这次做它其实不是想一上来做一个特别大的游戏,而是想完整跑一遍 iPhone 小游戏从开发、性能优化、内购、审核到上架的流程。因为是第一款游戏,我刻意没有选特别大的项目,也没有用 Unity 、SpriteKit 、Metal 或其他游戏框架,主实现就是 Swift / SwiftUI / SwiftData / StoreKit 2 ,加一些 Apple 系统框架自己硬写。

做之前觉得「麻将连连看」规则很简单,做完才发现游戏里的简单经常是假象。

比如牌面资源层是完整 144 张麻将牌,但手机竖屏上如果一味塞满,触控会小、画面会挤、玩家也更容易疲劳。后来默认局面反而往更舒服的牌数调,把精力放在可消对子数量、布局密度、死局重排和提示可信度上。

算法这块也比我想象中有意思。不能只是随机撒牌,因为很容易开局就无聊,或者中途卡死。最后做法更像「约束下的随机」:布局要满足堆叠和遮挡规则,开局要有足够但不过量的可选对子,还要用 Solver 去验证能不能继续玩。一个看起来很轻的小游戏,最后还是会回到核心算法和手感调参。

视觉和性能也踩了不少坑。最早我用代码实时画牌体、厚度、阴影和牌面,效果可控,但游戏里牌一多,任何一处重复绘制都会开始变贵。后面就上了烘焙流程:牌面先按图集裁切,再把代码画出来的牌体、厚度、材质烘成完整 PNG ,运行时直接用图片,帧率和稳定性会舒服很多。

音效和一些小特效也基本是自己做的。消除粒子、碰撞感、落叶飘动这些不是接现成物理引擎,而是用曲线、随机数和一些公式去调。落叶一开始只是想做氛围,后来发现它随着时间落下来会轻微遮挡棋盘,反而变成一种自然的难度;所以游戏里保留了扫叶次数,让它既是装饰也是一点玩法压力。

当前功能大概是:

  • 无广告、无账号、无第三方分析 SDK
  • 离线可玩,本地保存进度和设置
  • 水墨主题免费,核心玩法不锁
  • 提示、撤销、洗牌、落叶清扫
  • 背景音乐、音效和触觉反馈可开关
  • 一个可选内购:一次性解锁全部高级主题,不是订阅

也坦白说现在还有不少可以继续打磨的地方:

  • 玩法平衡还可以继续调,不同人对「太简单 / 太难」的阈值差很多
  • 牌面、落叶、粒子这些视觉效果在不同 iPhone 尺寸上还值得继续看
  • SwiftUI 做游戏挺有意思,但动画和性能边界需要一直盯
  • 这个 App 更像一个安静的小棋盘,不是那种有闯关、体力、排行榜、活动弹窗的手游

截图放两张,图片放在 GitHub Pages 上:

主玩法截图: https://hooosberg.github.io/Sumi-Mahjong/posters/zh-Hans/01.webp

主题截图: https://hooosberg.github.io/Sumi-Mahjong/posters/zh-Hans/03.webp 这次放 50 个内购码,想换一些真实反馈。

注意:下面这些是 Unlock All Themes 的内购 Offer Code ,不是 App 下载码。这个坑我之前在另一个 App 上踩过一次,苹果后台把外层 Promo Codes 和内购 Offer Codes 分得特别绕,真的很容易点错。这次是在 In-App Purchases 里的内购商品下面生成的。

兑换方式:

  1. iPhone 打开 App Store
  2. 点右上角头像
  3. 选择「兑换礼品卡或代码」
  4. 粘贴下面任意一个兑换码

如果兑换成功,麻烦回复一下用了哪个编号,方便后面的人少试重复码。

01. FW8NR6KMT4YY4WJT7W
02. TEXK4A63A4FKRH6F3N
03. FPKJAWXJX368KWMKYK
04. 66M4KAA4HJT8TMP7FJ
05. TNP7ERJWXPRN878K33
06. N7HW4PWXW3NMFJWKLA
07. YEKXELENPMFYA34K4Y
08. W8RFHXN7R7AK4LRMEE
09. EJKHRTYYF7FW6T4E4N
10. T8743LLPNNFW7X3HR8
11. 67LN47348M6MW6R6EK
12. NWK4NT6JAEHNF347RP
13. XNEL8MMYKFTLEYJRF8
14. WE8EYK7HE6HE3WLPXY
15. 6E47AKXPJM3HRAMFAH
16. HEMJ67E78RL8XX8N8K
17. KF3EWEX33JWAN7FK6X
18. T7RXMWWEPMEAH4EL67
19. 3LPPR3LAWJJ7YE43RW
20. XKLL63EJPTA8PJFW33
21. 6AT7NEY6HX3KW3TLXJ
22. L8HY7HE3ALAXW8TLWF
23. PH3A8WJJHLTW3X6HKK
24. MTE4KA8736TNXFN4L3
25. E846MJMLNA8M7WKHTP
26. NTT36RTJA6E34WLA4M
27. HYJAFXTEYFRF76KH7T
28. FJJA63NNPEF8MH6Y3A
29. L6N7JHKFM8Y6JNKT4L
30. PPL8XANNRMJKP4RFEE
31. M4JF3YHMKAXK8JKRN6
32. 6J7RE7HJYF3E68F733
33. LNE8NXM86XMWFP6X8F
34. T67NJM33K37W3RPNME
35. LHRXWHFLKJLAKPKTLE
36. AL4EETX6N6KK7E3M63
37. KLFH7P8X8KANH7WH6R
38. WTTAH84LA3XRWWLT3J
39. HK6YAH6E6MLPXH6XFL
40. 46HM4JF3K6AJ83T3PL
41. AHNJH8KN7FMWW4EKYP
42. LAHKY84HE7MH6HFJFY
43. JHYYWY6RPPRRHJKR46
44. RHKFR67KKH78PLKAMM
45. NRX3MTMLM8Y7PK8A3F
46. E8TN3XXJ3FMRXEXHK4
47. 34Y4HNAWLH3ENPM3P8
48. J8NYRFF7TMTMP8RPLN
49. K4WPPPE8JPRRY3ENWP
50. AYAX6MLJP776HT3FHN

特别想听大家吐槽:

  • 玩法是不是太简单 / 太难
  • 牌面和主题有没有看不清的地方
  • 落叶到底是有趣,还是烦人
  • SwiftUI 写小游戏这条路有没有你们觉得很蠢或很妙的地方

谢谢各位佬。