Windows 纸牌游戏是我开发的,但我没从中拿到一分钱
(点击上方公众号,可快速关注)
【伯乐在线导读】:用过 Windows 的朋友,应该对纸牌游戏不陌生。但恐怕没有多少人知道这个小游戏的开发者是谁吧。
自1990 年的 Windows 3.0 开始,微软将游戏附带于 Windows 系统中。当时,许多用户仍不熟悉图形用户界面,微软想借助《纸牌》来“安抚被操作系统吓倒的人们”。事实证明,游戏有助于用户熟悉鼠标的使用,比如说移动纸牌时需要用到拖放技术。
2016 年 1 月,有人在 Reddit 上发帖,挖出了纸牌游戏的幕后开发者——Wes Cherry,并在 Facebook 上给 Wes 留言了。
下面是 Wes Cherry 在 Reddit 网站上对纸牌游戏的补充说明,伯乐在线摘编如下。
我是 Wes Cherry,我收到一条 Facebook 的消息,说我的主页被大量来自 Reddit 的网友刷爆了(我刚刚才注册了 Reddit 的账号)。
以下是一些关于纸牌游戏的说明。这个游戏是我在 1988 年夏季在微软做实习生时用业余时间为 Windows 2.1开发的。我之前在 Mac 上玩过一个类似的游戏,为此我连期末考试都耽误了,我想为自己写一个 Windows 版本的。
代码没啥特别的,唯一的亮点是我做了一些优化,使得纸牌的拖动看起来很流畅。要知道在那个时候,将一个像素放在 EGA 缓冲区上,那要花一个世纪(需要在硅片上锤凿)。
那时面向对象编程是一个新鲜事物,Windows 上也没有可用的 C++ 编译器,所以多态和继承都是通过一个落后的消息传递机制实现的。
当时微软内部有个叫做 Bogus software 的“公司中公司”。它其实是一台服务器,一帮子程序员在上面折腾 Windows 为乐,以学习游戏开发会用到的 API。Windows 组的一个 PM 发现了我写的游戏,并决定将它加入 Window 3.0 中。他明确告知不会给我任何报酬,但会送我一台 IBM XT,以用于在学校期间解决发现的 Bugs。我当时觉得很划算,直到现在也这么认为。
为什么很划算呢,我又用业余时间写了一个 Windows 版本的 Pipe Dream,微软的游戏集中包括了这个游戏。我因为此拿到了一些股票,后来换了几千美元。
有人会开玩笑地当面给我一分钱,有人则会邮寄给我,有时候我被别人介绍为“没有任何酬劳的纸牌游戏开发者”。到现在为止,我已经收到 8 美分了。
我目前在 Washon Island 做苹果酒生意, 这是我的网站 www.dragonsheadcider.com。如果你在西雅图附近的话,欢迎来品酒。
除了给我的苹果酿酒机写一些嵌入式的 C/C++ 代码,我不再编程了。
谢谢大家的留言,太多了。我正在陪一个来自旧金山的好友玩耍,明天回来后回复大家的问题。
这个朋友正在教我 7 岁的儿子用 Scratch 编程。很有趣,我儿子正在努力写一款 Scratch 版本的 Minecraft(我的世界)。这个非常非常基础,但是他愿意做。
下面是 Wes Cherry 在 B3TA 网站上回答网友的提问,伯乐在线摘编如下:
armaitus 问:你会因为开发了这样一个广受欢迎且必不可少的应用,而微软却没有给你任何报酬而难过吗?
是的,尤其是看到你们都是付费来玩这个游戏的。
Artamnesia 问:尽管比尔·盖茨没有给你报酬,但我愿为这个神奇的游戏付钱,你想要多少钱啊?
每份拷贝给一分吧。如果每个人都给的话,我承诺给大家办一个大趴体。
queenie_b 问:你在编写纸牌游戏时玩什么呢?你知道我差点因为你而丢掉学位吗?当然,也是有一些其他原因啦。
呃,我在大学里为了写纸牌游戏都放弃复习期末考试了。
你知道在全球范围内,上班族玩纸牌游戏浪费了多少时间和金钱吗?
纸牌游戏恰好在 1991/1992 年,正好是全球经济萧条时发布,谢谢。噢,已过去的时光,一去不复返了。
(伯乐在线插播补充:自从游戏成为 Windows 系统的标配以来,员工玩《纸牌》降低业务生产力成为普遍的问题。2006 年,纽约市市长迈克尔·布隆伯格看到一名政府公务员用办公室的电脑玩《纸牌》后决定解雇他。 )
你有在玩纸牌游戏时被发现,并谎称在测试吗?
本来我做了一个老板键按钮,按下时会随机显示一些 C 程序。但是微软让我删掉它。
我曾经一次去听 Rick Wakeman 音乐会时,发现他的音响师整场演出期间都在玩纸牌游戏。你知道玩纸牌游戏最有名的人是谁呢?
我知道比尔·盖茨在玩,他说想赢不简单。
这个游戏有什么作弊的后门吗?是哪些呢?
有,当你玩翻三张(Draw Three)时,你可以按住 Ctrl+Shift+Alt,并点击获取一张牌,这样有大概率会赢。
是否有办法改变游戏最后连续弹出所有牌的速度呢?我发现不同的操作系统上速度是不一样的。
有,升级到 IBM 286 或者安装诺顿杀毒软件都会降低速度。我把这个工作交给 Moore 先生 了,他会提高速度的。(伯乐在线补充:这里说的 Moore,就是指摩尔定律。)
写纸牌游戏时,我尝试了各种各样能够提高最后连续弹出纸牌速度的方法。有一个计算机杂志提出了纸牌游戏测计算机性能的方法,游戏最后连续弹出纸牌越快,机器性能越好。
关于 Vegas 模式:
它的工作原理是什么?
它为何这么难?
为什么引入这个模式?
你知道谁在 Vegas 模式下玩纸牌游戏吗?
我不是很愿意把这些公之于众。
你为每张牌支付 $1(总共需要 $52),然后每出掉一张牌获得 $5. 如果你玩翻三张会获得三轮的机会,翻一张获得 1 轮机会。
你在拉斯维加斯见过这样的赌场吗?很贵的。
我说不太好,这算一个功能吧。
我在玩啊。第一次差不多10年。
你玩空当接龙 (Freecell)吗?
不,我也不玩纸牌游戏。
空当接龙一直在公布统计数据,但纸牌游戏没有,我想要一份。
答案1:Freecell Freecell Freecell, 我讨厌听到人们说空当接龙的好。
答案2: 如果你的老板看到这个统计数据后会裁掉你的。
据说纸牌游戏中有个彩蛋是比尔·盖茨抓着一个海洋动物,这是真的吗?
是的,Andrew Wyland 对最初的彩蛋做了很多修饰。(伯乐在线注: Wyland是一个著名的新时代海洋艺术制作者)
我们曾经用 Borland 来 hack 纸牌游戏,并将牌搞成一团糟。我们这样做的时候,你会恼怒吗?
有趣的是,过去的几年我一直莫名其妙的恼怒,谢谢你让我知道了原因。
烤面包总是把有黄油的那面朝下,猫总是蹲坐在它的腿上。如果你把面包绑到猫背上,会发生什么呢?
你的眼睛会被愤怒的猫挖掉的。
在犯罪现场,留什么卡片可以戏弄侦探呢?
搞一个卡片,写上“他走这边了à”(指向反方向)。哈哈哈。
纸牌背面的设计图案是你选择的吗?你喜欢蝙蝠吗?
有一半纸牌的背面是我女友 Leslie Kooy 设计的。不幸的是,她设计成了飞行的蝙蝠(flappy bat),所以我们分手了。
纸牌我玩 4 次,只能赢 1 次,我是不是有些笨?
我建议把“获胜”重新定义为工作中的放松。
你玩扫雷吗?最高分是多少?
我玩,我从比尔·盖茨那里学到了一个获胜的技巧,就是尽可能快和随机地点。
如果你可以选择一个人, 让他一天都说真话,你会选择谁呢?
乔治·布什 (George Bush),那个邪恶的家伙。我希望我有另一个纸牌游戏在手,这样的话我会发布出来,造成另一个经济萧条期。
考虑到纸牌游戏将全球数百万潜在的工作时间都浪费了,你认为你做了一件好事还是坏事?(我想是好事,所以不要认为我让你难堪)
时间就像海绵里的水,只要愿挤,总还是有的,所以我没做坏事。😂
你被认出来过吗?他们都说什么?
“警察蜀黍,就是他干的”。
如果你可以把世界上任何一个东西放到任意一个地方,你会选择什么,放到哪里呢?
把我放到小甜甜布兰妮那里。
你与动物搏斗过吗?如果有,那你赢了吗?
高中时,我一个朋友 Mark Causey 勾住我的下巴,把我踢了出来。
为什么那个戴着太阳镜,露着笑脸和舌头的人出现在无人岛大冒险( desert island )的卡片上?
你在说什么?我建议你去做一个精神评估。
为什么你在游戏英文版里不取名 Patience(耐心)呢?
因为我讲英语,所以我称它为 Solitaire(纸牌游戏的正版英文名字)。
如果你将被困在荒岛上,你会带什么游戏呢?
机器人2084 (Robotron 2084), 最好玩的视频游戏。
如果纸牌游戏在下个 Windows 版本中删除了,你会怎么想呢?
你脱离了世界
世界脱离了你
被欺骗的感觉,内心很苦涩
很温暖的感觉,很愉悦
其他?
当然是很愉快了。
你每次开发都会写的代码是什么?
10 PRINT “Wes Rulez!!!”
20 GOTO 10.
驼峰法命名发好,还是匈牙利命名发好呢?
我喜欢匈牙利法,虽然在现代语言中它不是很有用。驼峰法对我来说无意义。
你最后是给什么项目写代码?
免费插件。我给我的 MP3 更新了一个播放程序——Juke 。我也发布了一个可视化软件 Mocha,我的 Winamp 可视化软件。
如果纸牌游戏每被玩一次,你就会获得 $1,你会以一种舒服的状态来接受这个采访吗?
我用了 11 个月的时间来回答这些犀利的问题。如果真有人付钱了,我不会这么迟才来参加这个访谈。所以快点吧。
主页君后话:玩过纸牌游戏的朋友,还记得你的最高纪录是多少么?
看完本文有收获?请转发分享给更多人
关注「程序员的那些事」,编程更有趣