17611538698
webmaster@21cto.com

比尔·盖茨曾熬夜到凌晨4点编写的一款撞驴子游戏,现在能在浏览器上玩了

动态 0 15 2小时前
图片

21CTO导读:45年前盖茨写的撞驴子游戏,现在完美复现在Web网页上了。

这是来自一则硅谷的传奇故事。

1980 年,年轻的比尔·盖茨说服了 IBM,他创办的微软公司是为其新型 PC 提供操作系统的最佳选择。

但问题在于微软当时实际上并没有任何操作系统可以出售。于是盖茨赶紧从一家正在开发名为 86-DOS的操作系统的初创公司手中买下了源代码。他将这款软件更名为 PC-DOS,并以 43 万美元的总价卖给了 IBM

IBM 希望微软为其初代 PC 提供游戏——于是盖茨亲自承担了这项任务。
盖茨和一个叫尼尔·康岑(Neil Konzen)的开发者编写的游戏文件名为“DONKEY.BAS”,

盖茨本人在2001年的TechEd大会主题演讲中讲述了这个奇特小程序的历史 :

实际上,当时是我和 尼尔·康岑(Neil Konzen)凌晨四点在一个小房间里,对着这台IBM PC原型机。IBM坚持要求我们必须给门上锁,而我们只有一个带锁的壁橱,所以我们只能在那里进行所有的开发工作。


房间里总是超过100华氏度(约38摄氏度),但我们还是在深夜编写了一个小程序,来展示IBM PC内置的BASIC语言的功能。这就是Donkey.bas。当时我们非常激动。

这是一款极其简单又滑稽的游戏。对于不熟悉这款游戏的人来说,尽管游戏名称听起来像赛车,但实际上玩家需要操控一辆赛车。不知何故,一些驴子挡在了路上,你需要通过变换车道来避开它们,否则就会Boom提示并丢分。

这是录制的 DONKEY.BAS 在虚拟机中运行的一个小动画:

DONKEY.BAS animation
当苹果公司第一次看到 IBM PC 时,他们认为“DONKEY.BAS”这个名称特别令人尴尬,他们这样奚落的谈论盖茨。

我们当时觉得这款游戏的概念和它粗糙的画面一样糟糕。由于游戏是用BASIC语言编写的,你可以把代码列出来,看看它是怎么写的。我们惊讶地发现,游戏顶部的注释里赫然写着作者:比尔·盖茨和尼尔·康岑。


尼尔是个才华横溢的少年黑客,我之前在Apple II项目上见过他(后来他成了微软Mac项目的技术负责人),但我们震惊地发现,微软的联合创始人竟然会参与编写这样一款糟糕透顶的游戏,而且他还想在注释里写上签名。

想想DONKEY.BAS现在也成了盖茨作为程序员的遗产,真是有点滑稽。至少他对自己的过去抱有相当的幽默感。

不管怎么样,已经过去了45年。此次,致敬页面使用 JavaScript 重现了原版 CGA 游戏画面,带领玩家重温 PC 游戏的黄金时代。
请用浏览器打开网址 https://donkeybas.com/,你就会看到如下和PC一模一样的界面。
图片

总共131 行代码的游戏

DONKEY.BAS 当年随 PC-DOS 一起交付,目标是演示 BASICA(高级 BASIC)的彩色图形和声音能力,整个文件的源码只有 131 行。

它使用 CGA 图形(SCREEN 1,320x200 的分辨率),用PLAY命令发声,用DRAW命令渲染精灵。最有技术含量的是用DEF SEGPOKEPEEK实现了低级内存访问,检查内存地址&H410以判断是否有彩色图形适配器。

然后碰撞检测靠坐标比较。爆炸动画用GET/PUT加缩放。分数记录两样:用户撞了多少次(SD),以及驴有没有错过你(SM)。

现在 donkeybas.com 用 JavaScript 还原了原始的 CGA 体验,还加了声音开关、CRT 滤镜、作弊模式和全屏功能。

其源码已经在 GitHub 上以教育或保护型项目发布。

图片

GitHub地址:https://github.com/jkrauska/DONKEY.BAS

DONKEY.BAS 是计算机历史上的传奇——作为 1981 年比尔·盖茨和伙伴用 BASIC 语言深夜编写的世界上第一款 IBM PC 游戏,它标志着个人电脑娱乐时代的开启。donkeybas.com 则是对这段科技历史的一次精彩数字考古与现代重构,它利用 HTML5 与 JavaScript 等 Web 技术,在浏览器中 100% 还原了当年 CGA 显示模式下的极简视觉、复古音效与纯粹的避驴玩法,让用户无需模拟器即可零门槛体验 40 多年前的硬核代码美学。

这场复刻不仅是一次情怀满满的技术怀旧,更向当代开发者展示了极简逻辑下的创造力。它如同一座轻量级的数字博物馆,提醒着我们:

无论如今的人工智能与图形渲染多么强大,庞大的 PC 软件帝国与游戏产业,最初正是从这样几行简单的代码和一只像素小毛驴开始的。

作者:场长

参考:

https://en.wikipedia.org/wiki/DONKEY.BAS

https://mordenstar.com/share/qbasic-core-demos

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信