嘿,Devvit开发者们!我想分享我最近在做的一件事情——Daily Morse,一个每日单词谜题游戏,玩家通过解码摩尔斯电码信号来猜测一个隐藏的单词。
游戏的快速概述:
- 每日凌晨UTC零点,新谜题发布,每个玩家都有相同的单词
- 每日、每周和历史排行榜
- 奖章系统(连续完成、完美圆圈、里程碑等)
- 无剧透的得分卡片分享(通过评论)
- 支持29种语言
- 完全免费,零广告,零购买
为什么选择Devvit Web而不是Blocks?
我需要Web Audio API来实现摩尔斯电码的播放——这是整个核心机制。Blocks不支持它,所以我只好选择Devvit Web了。整个技术栈是:
- 客户端:React + Tailwind
- 服务端:Hono
我使用了以下一些东西:
- cache()用于排行榜缓存
- realtime用于实时解谜通知(一个滚动条显示当其他玩家解完谜题时)
- scheduler用于自动发布每日谜题
- submitCustomPost用于自定义帖子样式
- media.upload()用于分享得分卡片图片
- Redis有序集合用于排行榜和奖章
遇到的挑战:
- localStorage在每次应用版本更新时会清空(iframe URL改变),所以任何持久化的东西都需要通过Redis来实现
- Realtime频道名称不能包含“:”——我花了点时间才意识到这一点
- runAs: 'USER'仅在Reddit批准权限后才能用于评论
- 保持所有东西在30秒的服务器处理预算内,使用并行Redis操作
评论 (0)