21CTO导读:45年前盖茨写的撞驴子游戏,现在完美复现在Web网页上了。
这是来自一则硅谷的传奇故事。
1980 年,年轻的比尔·盖茨说服了 IBM,他创办的微软公司是为其新型 PC 提供操作系统的最佳选择。
但问题在于微软当时实际上并没有任何操作系统可以出售。于是盖茨赶紧从一家正在开发名为 86-DOS的操作系统的初创公司手中买下了源代码。他将这款软件更名为 PC-DOS,并以 43 万美元的总价卖给了 IBM。
盖茨本人在2001年的TechEd大会主题演讲中讲述了这个奇特小程序的历史 :
实际上,当时是我和 尼尔·康岑(Neil Konzen)凌晨四点在一个小房间里,对着这台IBM PC原型机。IBM坚持要求我们必须给门上锁,而我们只有一个带锁的壁橱,所以我们只能在那里进行所有的开发工作。
房间里总是超过100华氏度(约38摄氏度),但我们还是在深夜编写了一个小程序,来展示IBM PC内置的BASIC语言的功能。这就是Donkey.bas。当时我们非常激动。
这是一款极其简单又滑稽的游戏。对于不熟悉这款游戏的人来说,尽管游戏名称听起来像赛车,但实际上玩家需要操控一辆赛车。不知何故,一些驴子挡在了路上,你需要通过变换车道来避开它们,否则就会Boom提示并丢分。
这是录制的 DONKEY.BAS 在虚拟机中运行的一个小动画:
我们当时觉得这款游戏的概念和它粗糙的画面一样糟糕。由于游戏是用BASIC语言编写的,你可以把代码列出来,看看它是怎么写的。我们惊讶地发现,游戏顶部的注释里赫然写着作者:比尔·盖茨和尼尔·康岑。
尼尔是个才华横溢的少年黑客,我之前在Apple II项目上见过他(后来他成了微软Mac项目的技术负责人),但我们震惊地发现,微软的联合创始人竟然会参与编写这样一款糟糕透顶的游戏,而且他还想在注释里写上签名。
想想DONKEY.BAS现在也成了盖茨作为程序员的遗产,真是有点滑稽。至少他对自己的过去抱有相当的幽默感。
总共131 行代码的游戏
DONKEY.BAS 当年随 PC-DOS 一起交付,目标是演示 BASICA(高级 BASIC)的彩色图形和声音能力,整个文件的源码只有 131 行。
它使用 CGA 图形(SCREEN 1,320x200 的分辨率),用PLAY命令发声,用DRAW命令渲染精灵。最有技术含量的是用DEF SEG、POKE、PEEK实现了低级内存访问,检查内存地址&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
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。