返回项目列表
游戏项目已完成

PicoLock

一款通过鼠标驱动卡牌交互,引导中学生理解密码学概念的网页解谜游戏。

用卡牌把密码学概念拆成可以直接操作的谜题3 关流程从古典密码推进到 RSAUnity WebGL 接入 PicoCTF,正式版支持账号存档

项目简介

PicoLock 是一款面向中学生的网页解谜游戏,核心目标很直接:把原本抽象的密码学概念,改写成玩家可以亲手尝试、立刻看到反馈的互动过程。项目由 CMU ETC 与 CMU CyLab PicoCTF 协作完成。

项目背景

团队希望先解决一个具体问题:很多入门级密码学内容停留在讲解层,学生知道名词,却很难真正理解规则是怎样运作的。PicoLock 选择从可操作的谜题入手,把学习过程放进一套短时长、低门槛的网页体验里。

交互方式

游戏全程使用鼠标操作。玩家需要选择功能卡,把它作用到场景里的对象上,再根据对象状态的变化继续推理下一步。输入方式保持得很克制,目的是让注意力始终停留在规则本身,而不是操作记忆上。

设计概览

设计目标

PicoLock 的设计重点不是把理论一次讲完,而是先让玩家建立对系统行为的直觉。每一次拖卡、作用、观察结果,都是在帮助玩家理解密码学规则是怎样被执行出来的。

关卡结构

  1. 第一关从古典密码入手,用最直接的物体变化建立基本交互语言。
  2. 第二关开始引入 RSA,把公钥和私钥的关系转成更有推理性的谜题结构。
  3. 第三关继续沿着 RSA 往下走,重点放在思路判断,而不是暴力尝试。
PicoLock class diagram or course context screenshot

我的职责

我在项目中同时负责程序、玩法设计、关卡设计和音效设计。我的工作集中在玩家最先接触到的部分:规则是否清楚、第一关是否能把玩法语言建立起来、反馈是否足够明确。

具体投入

  • 实现核心卡牌交互逻辑。
  • 负责第一关的谜题编排与节奏调整。
  • 处理点击、状态切换和关键节点的音效反馈。

结果

这部分工作的重点不是单纯增加内容量,而是把学习曲线压进前几分钟里。玩家需要先理解“卡牌会对对象造成什么变化”,后面的密码学概念才有办法顺着这个基础往上搭。

技术实现

卡牌系统

核心玩法围绕四张可复用的功能卡展开:Translate 用于平移,Rotate 用于旋转,Modify 用于切换状态,Scale 用于缩放。每张卡都对应一种稳定、可预测的物体变化方式,玩家通过不断试验,逐步记住系统的行为规则。

交互对象

场景里的可交互对象建立在 InteractableBase 上,再按卡牌类型挂接具体行为组件。例如,IB_Translate 会在使用平移牌后移动到下一个可用位置;IB_Modify 可以配合 SO_ModifyObjects 定义一组顺序状态。这样一来,关卡搭建更像是在组合规则,而不是为每个物体重写一套单独逻辑。

校验链路与 Web 发布

校验链路

第一关的答案校验链路是 CipherTarget -> IB_CheckerManager -> 子 Checker。CipherTarget 用来定义目标状态,IB_CheckerManager 负责汇总场景中各个对象的结果,再交给不同的 Checker 判断条件是否成立。

Web 发布

项目使用 Unity 开发,最终导出为 WebGL 版本,再接入 PicoCTF 的插件体系部署到官网。正式版支持学生账号保存和读取进度,这让教学场景下的回访和继续体验更容易落地。