Kid Pix 的起源故事
摘要
Kid Pix 的创作者 Craig Hickman 讲述了这款深受喜爱的儿童绘画程序的起源故事,回顾了他从纯艺术摄影转向在 Atari 400 等早期微型计算机上进行编程的历程。
暂无内容
查看缓存全文
缓存时间: 2026/10/14 13:04
# Kid Pix - 早期岁月 — Dry Reading
来源:http://red-green-blue.com/kid-pix-the-early-years
- BLOG (http://red-green-blue.com/blog)
- Dry Reading Store (http://red-green-blue.com/dry-reading-store)
- About (http://red-green-blue.com/about)
- Contact (http://red-green-blue.com/contact)
**作者:Craig Hickman**
**Ben:爸爸,你一直在楼上干什么?**
**Dad:在写 Kid Pix 的简史。**
**Ben:你真的觉得会有人想看这个吗?**
**Maynard 和 Joe**
有些人认为,人要么是分析型、理性和务实的,要么是自发型、创意型和直觉型的。我小时候在 50 年代**看了太多电视**,所以以为人应该像 Sergeant Joe Friday (http://en.wikipedia.org/wiki/Joe_Friday)(出自《Dragnet》)或者 Maynard G. Krebs(Dobie Gillis)(http://en.wikipedia.org/wiki/Maynard_G._Krebs) 那样。问题在于,我总觉得自己有点像这两个人的结合体。
Sargent Joe Friday (http://en.wikipedia.org/wiki/Joe_Friday) Sargent Joe Friday
Maynard G. Krebs (http://en.wikipedia.org/wiki/Maynard_G._Krebs) Maynard G. Krebs
大学时我决定成为美术摄影师。但 1972 年,当我在 The Evergreen State College (http://www.evergreen.edu/) 从事摄影工作时,我听到一间标着"终端室"的房间里传来噼里啪啦的声响。进去后,看到一个朋友坐在一台看起来像大型打字机的东西前面。他说他正在**编程**,问我要不要看看是怎么做的。我说"好的",从此**再也没有变回从前**。
1972 年我刚接触编程后不久站在电脑终端旁。
**1972 年我刚接触编程后不久站在电脑终端旁。**
我买了一本讲解每条命令及其用法的书。我开始写小程序来使用每条命令。我的程序没有一个试图做有用的事,但它们往往很有趣,也充满意外。
1974 年我离开了 Evergreen,同时也失去了使用电脑的机会,搬到了波特兰,在那里我和几个好朋友一起创立了非营利摄影画廊 **Blue Sky Gallery**。后来我去了 University of Washington (http://www.washington.edu/) 攻读摄影研究生 (http://net.art.washington.edu/PhotoSiteRoot/contents/UW_Photo_Dept_Contents.html),我的一位教授 Paul Berger (http://net.art.washington.edu/PhotoSiteRoot/PB/PB.html) 刚刚买了一台 Apple II 电脑 (http://www.ncsc.dni.us/fun/user/tcc/cmuseum/appleiip.htm)。当时微型电脑还是很新鲜的东西,他向我解释了它的功能。**突然间,我对编程的渴望又回来了**。我必须拥有一台自己的电脑。
我的 Atari 放在暗房里
**我的 Atari 放在暗房里**
几个月后,我忙着用自己拥有的电脑——一台 **Atari 400**——在家中**编程**。这是一种**愉悦的体验**。(我妻子说那天电脑到货时,她从未见过我那么开心。)尽管它用的是薄膜键盘和电视显示器,但它拥有图形、声音功能和各种编程挑战。我想出了无穷无尽的项目。我还记得发现如何从摇杆端口输入输出信号时的兴奋。有一段时间,我为我们在西雅图的公寓设计了一套**家庭监控系统**,使用的是 Radio Shack 的小型磁簧开关。它在屏幕上显示公寓的平面图,并标出哪扇门或窗户是打开的。它运作得非常好,以至于我把系统扩展到了窗外灌木丛上的小型倾斜开关。这也运行得很好,直到一个刮风的夜晚我不在家,警报每隔几分钟就响一次。第二天我妻子让我把它拆了。
我开始对**用户界面和程序设计**产生了浓厚的兴趣。对我影响最大的文章是 Chris Crawford (http://www.erasmatazz.com/team_bios/chris.html) 发表在 *Byte* 杂志上的,以及 Alan Kay (http://cc.kzoo.edu/~k95dm01/kaybio2.html) 发表在 *Scientific American* 上的。我想找到在电脑上执行任何任务的最简单、最有效的方式。这就是我开始**追求软件设计之美**的时候。
我对摄影的兴趣在那时开始消退。电脑有趣得多。我买了一本"电子学简易入门"之类的书,弄清楚了如何用电脑控制放大机,写了一个相当不错的程序来控制我暗房的大部分定时和记录工作。我最终在这个项目中使用了"卡片"的隐喻,有点像 HyperCard (http://members.aol.com/hcheaven/),尽管它比 HyperCard 早了好几年。
1984 年,Apple 发布了 Macintosh (http://www.apple-history.com/history.html)。在此之前,我没有理由停止使用我的 Atari(除了几乎没人使用它,我写的软件几乎没有受众这个事实)。就当时而言,它拥有出色的图形和声音,而且我对它的编程也很了解。其他电脑虽然更"严肃",但编程起来似乎没那么有趣。**Macintosh 不同**。它是完全图形化的,因此视觉上的可能性大得多。最重要的是,Mac 背后似乎有一群人拥有**一致而富有远见的愿景**。用户界面既聪明又美观。我买了一台 Mac 并开始自学在上面编程。最初我用 Rascal 编程,这是一种在 Reed College 开发的语言,有点像 C 和 Pascal 的混合体。后来我转向了 Pascal。
Camera 的屏幕截图,1988 年
**Camera 的屏幕截图,1988 年**
我最初的 Mac 程序都是免费赠送的,设计目的是帮助我学习 Mac QuickDraw 例程。它们没什么实际用处,但还算有趣。**Company** 是一个桌面附件,显示一张动画面孔和一个游戏来陪你。**Fido** 是一只会用图形"说话"的动画狗。我还创作了两本艺术家书籍,***Signal to Noise*** 和 ***Dry Reading(可在本站获取)*** (http://www.pixelpoppin.com/SNDR/index.html),它们与我软件中的一些图形和美学风格是一致的。这段时期我最成功的程序是 **Camera**,一个教育类软件,以交互方式演示光圈和快门速度之间的关系。我把 **Camera** 放入公有领域,它在电脑公告板上被广泛分发。
1988 年的一天,当我正在使用 **MacPaint**——Macintosh 附带的出色绘图程序时——我 3 岁的儿子 Ben (http://camera2.uoregon.edu/TheBox/FAMILY/family_17.HTML) 请求试着用一下这个程序。我很惊讶他那么快就掌握了鼠标的使用方法,也很容易就学会了选择工具。问题在于他还不能完全控制鼠标,偶尔(大约每五分钟一次)会拉下菜单弹出一个对话框,在不认识字的情况下根本关不掉。只要我在房间里一切还好,但如果我出去几分钟再回来,就会发现 Ben 在地上**沮丧地**踢腿。这**不是我想要的**他的电脑启蒙方式。碰巧我当时正在寻找一个好的编程项目。我决定为 Ben 写一个简单的绘图程序。我也决定大概会把它免费送出去。几年前我曾为 Atari 电脑写过一个我觉得相当不错的暗房计时器程序,并和一家公司签了销售协议。但使用 Atari 电脑的人很少,几乎没卖出多少份。我一直希望当时**把这个程序免费送出去**,这样人们可以用它,我也能为投入其中的大量时间得到一些满足感。
既然我打算把这个程序免费送出去,我决定**我可以完全按照自己想要的方式来设计它**。以下是指导原则:
初版 Kid Pix 的屏幕截图
初版 Kid Pix 的屏幕截图
1\. **(最高准则)** 程序应该**极其易用**。不需要使用手册,程序的功能应该通过使用就能"自我说明"。所有任务都应该以最简单、最直接的方式完成。程序应该主动迎合用户。
2\. 只要在不违反最高准则的前提下,就应该利用每一个机会让程序**用起来令人惊喜和满足**。不能错过任何一个机会。创作图画的过程应该和最终的作品一样重要。
3\. 程序应该以某种方式**拓展**人们对电脑绘图程序以及"创造痕迹"这一行为的理解。
4\. 程序应该是**开放式的**。预置图形应该可以被用户修改。
5\. 我希望每个工具都有**大量的选项**,但又不想让用户被选项淹没。我不想用下拉菜单来实现这一点,除了其他原因之外,Ben 就用不好下拉菜单。我开发的系统是在屏幕底部的窗口中为每个工具显示 14 个选项。**随着工具选择的切换,选项也随之改变**。
6\. 初版 Kid Pix 设计为运行在原版 Macintosh (http://www.apple-history.com/128k.html) 上,配备 9 英寸黑白屏幕(512 × 342 像素)。当时所有为 Mac 制作的绘图程序都会显示一个虚拟页面,一次只能看到绘图区域的一部分。我觉得这对我的程序来说是个坏主意,因为同时看到完整的画面至关重要。所以我把屏幕上的绘图区域做到最大,但不让屏幕内容滚动。**"所见即所得。"**
撤销小人
撤销小人
7\. 除了画笔、铅笔、橡皮擦、圆形和矩形等"传统"电脑绘图工具外,我的程序还会包含**令人惊喜且视觉上与众不同的工具**。大多数电脑绘图程序的设计让它们看起来像是二流产品,总是在模仿传统的美术工具,但从来没有模仿得特别好。事实上,电脑可以以各种有趣的方式创造痕迹,这是传统工具做不到的。它还可以很好地制作卡通化的工具。"怪异画笔"就是由此而来的。
8\. 撤销是一个极其重要的功能,值得拥有自己的按钮,而不是仅仅作为一个菜单项。**撤销小人由此诞生。**
初版 Kid Pix 中的一些图章。(注意到这里有一个撤销小人的亲戚吗?)
**初版 Kid Pix 中的一些图章。**(注意到这里有一个撤销小人的亲戚吗?)
9\. 孩子们喜欢**贴纸和橡皮图章**。程序应该支持一些预置的标志性图形。初版 Kid Pix 中的图章取自 Apple Computer 的 Cairo 字体,由 Susan Kare (http://www.kare.com/) 设计。Apple 已经停止在电脑中附带 Cairo 字体了,我觉得这些图形太好了,不应该就此消失。
10\. 用户非常聪明,如果有人试图用花哨的图形来掩盖一个平庸的程序,他们很快就能看出来。一个差的程序无论界面多么时尚,很快就会让人觉得无聊。
11\. 当 Ben 用积木搭东西时,他享受推倒自己建筑的乐趣几乎不亚于搭建的过程。**销毁画面的过程应该很有趣。**于是有了爆炸鞭炮橡皮擦。
12\. 为什么不做一个在擦除画面时**显示隐藏图画**的橡皮擦呢?
13\. 当年幼的孩子使用程序时,家长应该能够**隐藏菜单栏**,这样桌面附件等就不会被意外选中。
14\. 程序在大多数方面应该**表现得像一个标准程序**,拥有标准的用户界面,以便新接触电脑的用户学习基本原理。Kid Pix 最终被广泛用于向儿童和成人介绍电脑的使用。
15\. 尽管表面上看这个程序像是给儿童的,但开明的**成年人用起来也应该觉得很有趣**。
初版 Kid Pix 的程序和文档图标
**初版 Kid Pix 的程序和文档图标**
当程序接近完成时,我需要想一个名字。经过深思熟虑,我决定叫 **"Kid Pix"**。它**容易发音**,**朗朗上口**,而且是由简单的三个字母的单词组成的。(这一定是我喜欢的东西:我妻子的名字是 Kay,我的孩子们叫 Ben 和 Art。)我喜欢 "Pix" 指代"**Pictures**(图片)"、"**Pixels**(像素)"和"**to Pick**(选择)"的双关含义,也喜欢这两个词叠在一起时在图形上的视觉效果。我还想到它在其他语言中大概也很容易发音,不过当时我从未想象过它会在全世界销售。后来 Broderbund 决定给它改名,并举办了一个全公司范围的比赛来征集新名字。在无人胜出后,他们请了一位专业命名顾问。顾问告诉他们,他可以收了钱再想出一个新名字,但不会比 "Kid Pix" 更好。
我本可以把 Kid Pix 连在一起写成 KidPix,这是当时程序命名的流行做法。但我决定不这样做,因为我担心这只是一时的命名潮流,不过如今如果你在网上搜索,两种写法出现的频率不相上下。
每当我为 Kid Pix 添加新功能时,我都会让 Ben 试用。他觉得有困难的地方就会被修改。**顾客永远是对的。**有一天,我把几台电脑带到了 Ben 的幼儿园,让那里的孩子们试用,其中大多数人之前从未用过电脑。让孩子们用了大约十分钟后,我就积累了一份**长长的用户界面细节修改清单**。
在我完成 Kid Pix 之前,Apple 推出了彩色 Macintosh (http://www.apple-history.com/II.html)。看来顺理成章的下一步就是推出 Kid Pix 的彩色版本。我的朋友 Ken O'Connell (http://aaa.uoregon.edu/~animate/students/oconnell.html) 一直支持我的工作,坚持认为**我应该出售这个程序而不是免费送出去**。我的感觉是,就目前而言,Kid Pix 是一个**优秀的免费软件**,但还不具备商业软件的功能。在寄出 Kid Pix 黑白完整版之前,我决定着手编写一个扩展的**彩色版本**,售价 25 美元。**1989 年 11 月,我开始分发黑白版本**,其中附带了彩色版本的广告,声称将在 1990 年 6 月前完成。(Kid Pix 的原始黑白版本至今仍可从像 shareware.com (http://www.shareware.com/) 这样的共享软件网站上**下载**。)编写黑白版本对我来说就是相当大的挑战了,我根本不知道如何编写彩色程序。我预计光是把现有的东西转换成彩色就需要好几个月。结果我大约一天就搞定了转换的基本原理,剩下的大量时间就可以用来开发新功能了。
Kid Pix Professional 的手册封面
**Kid Pix Professional 的手册封面**
当时的风气是在软件的新版本上加上 "Professional" 这个词。为了幽默一下,我把新版本叫做 **"Kid Pix Professional"**。除了增加彩色之外,我对程序**充满了新想法**。以下是我做的一些改动和新增功能:
1\. 程序会自动调整以**适配显示器尺寸和可显示的颜色**。如果你有一台大显示器,就能制作真正大幅的 Kid Pix 画作,而且程序的所有功能都会根据所使用的电脑在黑白或彩色模式下自定义适配。2\. 为用户界面**增加了声音**,带来更令人满足的体验。字母工具现在会朗读字母了。3\. **怪异画笔**的数量增加了一倍。4\. 新增了一类名为"混合器"的工具
相似文章
童年计算机
Susam Pal 回顾了他童年时期使用早期计算机、LOGO 编程以及经典游戏(如 Moon Bugs 和 Digger)的经历。
Mr. Baby Paint 以及意外发现一种新的元胞自动机
Heikki Lotvonen 构建了一款极其简单的幼儿合作绘图应用 Mr. Baby Paint,意外发现了一种泛洪填充的元胞自动机,并开发了用于位图字体的像素加粗算法。
Smalltalk 的早期历史(1993)
Alan Kay 于 1993 年在 HOPL-II 会议上发表的论文回顾了 Smalltalk 在 Xerox PARC 的早期历史,追溯其根源:20 世纪 60 年代的人机共生研究、FLEX 机器、SketchPad/Simula,以及走向面向对象设计的 Dynabook 愿景。
Fisher-Price Pixter 的完整保存
详细记录了 Fisher-Price Pixter 设备及其游戏的首次完整逆向工程、文档化和模拟过程,涵盖了硬件分析、ROM 转储以及软件模拟。
我们如何打造出热门游戏《波斯王子》
乔丹·梅赫纳(Jordan Mechner)就经典电子游戏《波斯王子》的创作过程接受采访,详细介绍了该游戏中的转描动画技术、开发过程中遇到的挑战,以及它对动作冒险类游戏产生的深远影响。