深圳 I/O | |
![]() Steam 封面 | |
原名 | ShenZhen I/O |
官方译名 | 深圳 I/O |
类型 | 解谜、编程 |
平台 | Windows, Linux, macOS |
开发 | Zachtronics |
发行 | Zachtronics |
设计师 | Zach Barth |
音乐 | Matthew S. Burns |
模式 | 单人游戏 |
发行时间 | 2016-11-17 |
相关作品 | TIS-100 |
《深圳 I/O》是一款解谜类电子游戏,同时也是一款编程游戏。它由 Zachtronics为运行Microsoft Windows、Linux和macOS操作系统的个人电脑开发。这款游戏最初于2016年9月在Steam发布了抢先体验游戏版本,2016年11月发行正式版。
“ | BUILD CIRCUITS. WRITE CODE. RTFM. | ” |
正如游戏发布者的描述,游戏玩法的核心就是构建电路、编写代码和阅读手册。
游戏的背景设定在中国深圳,玩家将会扮演一名来到深圳华强北的工程师,他在经人介绍[1]后,来到一家名为“深圳龙腾科技有限公司”的企业工作,从事产品的设计与开发工作。
游戏中使用与现实中的嵌入式硬件相似的元器件(比如可编程芯片、存储器、蜂鸣器、数码显示屏、指示灯具等),游戏中出现的代码需要在芯片中编写,用于驱动芯片工作。代码结构和Intel 8086的汇编语言类似,但是也融入了一些高级语言的特征,因此可算作一种类汇编语言。
日期 | 更新版本号 | 主要变化 |
---|---|---|
2016-09-?? | v1.0 | 推出游戏原型,并在Steam中以“抢先体验游戏”发布。 |
2016-10-17 | v1.1 | 加入了蜂鸣器(FM Blaster)道具,允许玩家在早期的关卡中提前使用后期关卡才会用到的元器件,只是会在设计界面显示“不推荐使用”。 |
2016-10-25 | v1.2 | 加入了拥有更多内存单元的内存部件、优化了液晶屏元件,同时为期加入了触屏机制。 |
2016-10-25 | v1.3 | 引入了数学协处理器(能够计算四则运算、平方根、幂运算和求余运算等)、七段数码管以及一些受到用户启发的全新谜题。 |
2020-04-22 | - | 开发者为游戏内置的数据手册提供纸质版,作为一种商品在电商平台lulu中发售。 |
“ | I became an engineer because I wanted to make things. But after I graduated, the reality of the world caught up with me. That's not just something we do in this country. Not anymore. It took me a while, but eventually I realized it was true: I'd have to go somewhere else. |
” |
“ | 我在深圳有什么成就? 工程师的故事并不像电影那么精彩。 我没有找到真爱,或拯救世界,或任何其他的建树。 也许是件好事,又或许是个灾难。 无论未来如何,我对一件事情深信不疑。 我总能相信一件事:我真是个好工程师。 |
” |
游戏的主线,包括游戏的剧情而且还有(虚构的)广告和关卡。设计电路和编写代码的工作在概念CAD中完成。游戏最开始的电路非常简单,但是随着剧情的发展,需要用到的元器件会越来越多,代码和电路布线也会越来越复杂。在每个关卡中,面板上会有一个白色线条围成的封闭图形,代表这台设备的面板(或者说是设备的外壳)。玩家摆放的元器件不能超出这个边界,这也在一定程度上考验玩家对空间的利用与规划能力。
游戏的关卡会用橙色感叹号表示,通过关卡后变为一个对钩,解锁后续的关卡。关卡同样是伴随着剧情设计的,每个关卡内也会出现员工的交谈。关卡通过后,游戏会展示三组统计图表,展示了全体通过该关卡的玩家的电路设计在成本、耗电量和代码行数三个方面的分布情况以及玩家本人在其中的位置。
游戏的主线总共有31个关卡,对于Steam上的版本,全部通过后会得到一个“Employee of the month”(月度最佳员工)的成就(一个月恰好是31天)。
概念Mail中有一个特殊的剧情是“为新创意建模”,左侧的标志是一个橙色的齿轮,这部分剧情允许玩家自定义一个电路设备,相当于一个沙盒,这是很多其他游戏中都有的设定。
当玩家完成了主线的全部 31 个关卡后,将会收到一封孙昊天发来的前往阿瓦隆城(Avalon City)的邀请函,从而开启第二阶段的剧情。
游戏里的输入输出端口分为简单I/O端口(芯片中用p0,p1表示)和XBus端口(芯片中用x0,x1,x2,x3表示)。前者用于传输0~100范围内的整数电平信号,后者传输的是一系列不连续的数据包,每个数据包的范围是±999范围内的整数。
两种端口不能混用。
游戏中存在和数字电路类似的逻辑运算机制以及相应的逻辑门元件,这些元件的工作机制和现实中的数字电路类似。逻辑门使用简单I/O端口进行输入输出,数值大于或等于50的信号被视为逻辑真,否则视为逻辑假。
游戏中提供的元器件种类上与现实中的嵌入式设备设计类似,其中某些元件仅可在沙盒模式中放置,不会再概念Spec或者概念Mail中出现。每一个元器件的宽度和高度都是按照游戏界面划定好的网格设定的,元器件的摆放也必须按照游戏面板上划定的网格摆放,除笔记以外,其他的元器件不能叠加放置。
名称 | 占用宽度(格) | 占用高度(格) | 功能 | 价格 | 备注 |
---|---|---|---|---|---|
笔记 | 3 | 2 | 可以放置在游戏面板中,用于编写注释增加电路图或代码的可读性 | 0 | 唯一一个允许超出白色边界,或者叠放在其他元器件上面的物件。 |
桥接器 | 1 | 3 | 当两根布线需要交叉但是不想让它们导通时,就需要切断竖向的布线连接在桥接器的两端,跨过横向的布线,桥接器也因此得名。 | 0[2] | 占用3格高度,中间的一格可以有布线经过,但是这个位置不能放置高度1格的元件。 |
MC4000 | 3 | 2 | 经典的可编程芯片,可通过在芯片中编写代码控制芯片的工作与输入输出。拥有两个简单I/O接口p0,p1、两个XBus接口x0,x1以及一个acc寄存器。该芯片最多只能容纳9行代码,任何数学运算操作都会直接作用在acc上从而改变acc的值。 | 3 | - |
MC4000X | 3 | 2 | 和MC4000类似,但是所有的四个接口全为XBus接口,用x0~x3表示。 | 3 | - |
MC6000 | 3 | 3 | 相较于MC4000,增加了两个XBus引脚以及一个额外的dat寄存器,这对于需要循环的场合很有帮助。最多容纳14行代码,任何数学运算操作都会直接作用在acc上从而改变acc的值。 | 5 | - |
DX300 | 2 | 3 | 游戏中称作“数字I/O拓展器”,拥有3个XBus接口。可将通过XBus接口传入的数字按照三位十进制数上的每一位转化为三个高电平(100)或者低电平(0)的简单I/O信号。 | 1 | - |
100P-14 | 3 | 2 | 随机存取存储器(RAM),拥有14个内存单元,每个单元可以存放一个±999范围的整数。可以通过元件上 XBus 接口 a0 和 a1 地址引脚读取和写入内存指针。指针指向的内存值可以通过 XBus 的 d0 和 d1 数据引脚读取和写入。从数据引脚读取或写入数值后,对应的内存指针值将自动增长为下一个内存位置的对应值。 | 2 | - |
100P-33 | 3 | 3 | 和100P-14类似,是拥有33个内存单元的RAM,端口和使用方式和100P-14相同,但是额外多了两个弃用(没有标记,不会提供输出信号)的引脚。 | 4 | 不会在概念Spec和概念Mail的谜题中出现,只能在沙盒中使用。 |
200P-14 | 3 | 2 | 只读存储器(ROM),规格和100P-14类似,相较于100P-14的唯一区别是只能进行读取操作,不能进行写入操作。 | 2 | - |
200P-33 | 3 | 3 | 规格和100P-33类似,同样只能进行读取不可进行写入。 | 4 | 不能在概念Spec和概念Mail的谜题中出现,只能在沙盒中使用。 |
LC70G04 | 2 | 1 | 逻辑电路的非门 | 1 | |
LC70G08 | 2 | 2 | 逻辑电路的与门 | 1 | 拥有一个正常输出和反向输出。 |
LC70G32 | 2 | 2 | 逻辑电路的或门 | 1 | 拥有一个正常输出和反向输出。 |
LC70G86 | 2 | 2 | 逻辑电路的异或门 | 1 | 拥有一个正常输出和反向输出。 |
PGA33X6 | 3 | 3 | (待补充) | 5 | (待补充) |
MC4010 | 2 | 2 | 数学协处理器,能够计算四则运算、求余运算、平方根运算(会四舍五入到整数)等。 | 5 | |
?????? | 2 | 2 | 游戏中没有说明,从功能上看是一个随机数生成器,会生成0~100的随机整数。 | 2 | 不能在概念Spec和概念Mail的谜题中自行放置(某些关卡中会在面板中预置,预置的器件不会计入成本,不可将其移出),只能在沙盒中使用。 |
LX700 | 7 | 5 | 经典的七段数码管显示器,拥有两个XBus接口在左右两侧。显示范围是±199范围内的整数。 | 4 | 不能在概念Spec和概念Mail的谜题中自行放置(某些关卡中会在面板中预置,预置的器件不会计入成本,不可将其移出),只能在沙盒中使用。 |
LX910C | 7 | 8 | 液晶显示器,显示的内容和样式可以由玩家自行定制。 | 8 | 不会在概念Spec和概念Mail的谜题中出现,只能在沙盒中使用。 |
(待补充)
“ | Create and share your own puzzles! | ” |
玩家可在概念Spec中将创建的原型电路上传至Steam工坊,创建自定义的谜题,也可以查看其他玩家上传的UGC。是供玩家相互交流和分享创造力的场所。盗版的游戏没有这个要素。
不同于绝大多数的编程游戏,《深圳I/O》的开发者并没有在游戏中包含玩家引导,而是选择了在游戏中内置一本丰富且有帮助的PDF版用户手册,用户手册有中英文版本。
绝大多数有关元器件规格或者如何编写代码的问题均可通过查阅手册解决。
在剧情“玩一下游戏吧”中解锁,通常称为深圳纸牌[3]。
游戏的玩法类似于Windows操作系统的《空当接龙》游戏类似,是一副40张牌的纸牌,分别包含麻将的饼条万的1~9点,称为数字牌;4张红中、4张发财和4张白板,称为特殊牌;还有一个花牌。
游戏的移牌操作与《空当接龙》类似,饼条万三种牌必须按照点数顺序接龙,且相邻两张牌需要花色不同;但是红中、发财和白板不能参与接龙,只能移动到空位。在四个相同的花牌都没有被其他牌压着,且左上方的存牌区域存在空位的情况下可以将特殊牌回收,尽早回收特殊牌有助于玩家赢得纸牌游戏。将特殊牌回收,三种数字牌按照1~9的顺序堆叠在上方的回收区,并将花牌放在上方的用于放置花牌的空位即可赢得游戏,游戏界面左下角会记录玩家累计赢得游戏的次数。纸牌游戏没有撤销功能,这也在一定程度上增加了难度。
再后来,开发者将纸牌游戏单独抽出来作为一个独立的游戏《深圳纸牌》(Shenzhen Solitaire)在游戏中发售。在Steam的介绍页还贴心的提示玩家如果已经购买了《深圳 I/O》,只需通过前几个谜题就能在游戏内解锁纸牌游戏,没必要再去购买《深圳纸牌》。
纸牌游戏的 BGM 是由 Matthew S. Burns 创作的一首 Electro Midtempo,主旋律是由古筝演奏而成的悠扬乐章,带有浓厚的中国传统风味,有别于在大多数游戏里用于背景音乐的电子音乐。本曲在 QQ 音乐的专辑中被命名为“Patience”,象征着玩牌也是一件需要耐心的事。
BPM=82 4/4 1=♭E
相当于其他游戏中的隐藏关卡。
可通过主界面的控制面板选项打开,打开控制面板在“谜题档案”依次点击“0451”解锁,该谜题的名称是“深圳I/O宣传片”,可算做游戏的一个彩蛋。通过该谜题可在Steam中解锁一个“Secret Puzzle”成就。
该作在2018年的独立游戏节获得了“精彩设计”奖项提名。
《深圳 I/O》的主题曲是由 Matthew S. Burns 创作的一首长度接近 7 分钟的 Electro House,有着活泼欢快的旋律。该曲是本作宣传片使用的 BGM,也是游戏里的第一个关卡(模拟安全摄像头)编辑界面的 BGM。本曲在 QQ 音乐中被命名为“Enthusiasm”。
BPM=109 4/4 1=C
QQ音乐提供了该游戏的原声带:
以下内容含有大量干货 |
---|
(待补充) |
(待补充)
![]() 维基百科 提示您 | 关于深圳 I/O, 在自由的百科全书维基百科上 有相关条目。 请参阅:深圳IO |