访谈:《Solar Realms Elite》创作者Amit Patel

Hacker News Top 新闻

摘要

对Amit Patel的访谈,探讨他于1990年创作BBS门游戏《Solar Realms Elite》的经历、早期接触计算机的体验,以及其在编程与游戏开发领域的职业生涯。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/17 03:48

# Amit Patel,《Solar Realms Elite》创作者 - Break Into Chat 来源:https://breakintochat.com/blog/2013/02/18/amit-patel-creator-of-solar-realms-elite/ amit-patel (http://breakintochat.com/blog/wp-content/uploads/2013/02/amit-patel.jpg) #### 1990年,Amit Patel (http://www-cs-students.stanford.edu/~amitp/)创作了BBS门廊游戏 (http://breakintochat.com/wiki/BBS_door_game)《Solar Realms Elite》(http://breakintochat.com/wiki/Solar_Realms_Elite)。在另一条人生轨迹中,他曾涉足编程语言、科学设备、数据分析、可视化、地质勘探、复杂系统模拟、经济建模、地图、趋势分析、人工智能和网络软件开发。目前他正致力于为游戏开发者制作互动参考资料。 SRE 是我有史以来最喜爱的游戏之一 (http://breakintochat.com/blog/2013/02/13/solar-realms-elite-memories/)。因此,能够采访 Patel 谈论 SRE 让我倍感荣幸。本次采访于2013年1月3日至27日通过电子邮件进行。 *您喜欢我在 Break Into Chat 上的复古计算访谈吗?请加入我的邮件列表 (https://breakintochat.com/blog/wp-login.php?action=register) 保持联系。📬* ##### Josh:我清晰地记得自己使用的第一台计算机:幼儿园教室里的 Commodore 64。*您的*家庭是何时开始接触计算机的?这些年来您使用过哪些类型的计算机? Amit:我第一次接触计算机是在小学时使用 TRS-80,仅仅几周时间。那次经历中我唯一记得的项目是使用‘块状’字符图形制作图形化的吃豆人/幽灵动画。几年后,家里买了一台 Commodore 64,我就是用它自学编程的。我们的初中在 Tandy 电脑上教授 BASIC 和 Logo 语言。我的高中则使用 VAX 11/750(一台 3MHz 的小型机,由两所学校的所有学生共享)教授 BASIC、Pascal、COBOL 和 FORTRAN。我也玩过一些 Atari、Mac 和 Amiga 系统,还为我的 Casio FX-4000 计算机编程,它的功能令人惊叹。家里有一台 IBM PC-XT,我学习了 Turbo Pascal、C、C++ 和 Prolog,这些都是 Borland 公司开发的语言工具,价格适中。许多专业的语言工具可能要花费数百美元,但 Turbo Pascal 仅需 50 美元,这是我走出随电脑附带的 BASIC 之外的第一步。Turbo Pascal 确实令人惊叹 (http://prog21.dadgum.com/116.html)。 ##### 我父亲曾输入过一个非常长的 BASIC 程序。那时我们还没弄清楚如何将程序保存到磁带上,所以只能让电脑连续开机多天以保存在 RAM 中。那些日子啊!这让我想起了您阅读 SRE 设计笔记 (http://www-cs-students.stanford.edu/~amitp/Articles/SRE-Design.html) 时的回忆。您提到玩过 David Ahl 的“计算机 BASIC 游戏”。那是您第一次接触计算机编程吗? 我们在 Commodore 64 上有磁带驱动器,但加载一个程序可能需要 30 分钟。是的,就是那些日子!我主要通过从当地图书馆借阅书籍和杂志学习,也通过阅读电脑附带的手册学习——那时电脑手册确实会解释清楚内容。David Ahl 的书很棒。大多数计算机书中的例子相当平凡,但“计算机 BASIC 游戏”给了我有趣的东西来玩。我可以输入一个程序,玩它,修改程序,评估修改后的游戏规则等等。除了游戏,我还尝试了图形、用户界面、优化、多任务处理、程序结构等许多其他东西。我发现最好的学习方式是先阅读某个东西,然后实验,再回头阅读。 我对用户界面的兴趣体现在 SRE 中。安装程序包含菜单、对话框、重叠窗口、标题栏、键盘快捷键、使文本变暗的阴影下拉菜单、滚动条,所有这些都由我自己的用户界面工具包实现 (http://www-cs-students.stanford.edu/~amitp/games/sre/Installation%202.png)。远程用户获得了突出显示快捷键的菜单 (http://www-cs-students.stanford.edu/~amitp/games/sre/SRE-Covert-Ops.png)、用大写字母突出显示的默认值 (http://www-cs-students.stanford.edu/~amitp/games/sre/SRE-Population.png),以及带有像“3k”这样的快捷方式、可展开为“3000”的高级输入字段。我关注小细节,包括亮/暗颜色组合、用逗号格式化数字以及正确处理复数(“1 planet”而不是“1 planets”或“1 planet(s)”)。我对优化的兴趣也在 SRE 中显现,虽然不明显。由于 SRE 颜色使用频繁(经常为每个字符更改颜色),我编写了一个 ANSI 颜色优化器,它逐个字符计算更改颜色的最佳 ANSI 代码序列。由于 BBS 和游戏共享内存,我仔细优化了 RAM 使用,并使用“覆盖”进一步缩小游戏体积。我对多任务处理的兴趣也显现出来,我拥有自己的多任务系统,允许玩家的游戏进程、状态栏和系统操作员命令在各自的“协作线程”中运行。SRE 还包含了我对加密、经济学、博弈论、编程语言和模拟的实验。 我编程项目的特点是,我不仅仅是为了写程序而写程序,也是为了试验新想法和学习新东西。这种模式一直持续到今天。🙂 这对学习很有好处,但对短期生产力来说并非最佳。 ##### 您成长过程中是一个游戏玩家吗?游戏在您家是一种社交体验吗? 我玩游戏,但算不上一个特别热衷的玩家。我尤其喜欢角色扮演游戏,比如《创世纪》和《冰城传奇》系列。我也喜欢建设/模拟游戏,比如《模拟城市》和《铁路大亨》,以及策略游戏,比如《文明》和《沙丘 II》。我玩过文字冒险游戏,但大多感到沮丧。虽然我们共享一台电脑,但我和哥哥在游戏中是合作的。当我们最终有了自己的电脑时,我们玩起了不同的游戏。 我读初中时,在当地的电脑商店遇到了《创世纪》游戏的创作者 Richard Garriott。他正在宣传《创世纪 VI》,并给我讲述了测试员们发现的策略故事。最引人入胜的是,谜题可以有多种解决方案,因为它们是以满足的条件来编程的,而不是以采取的行动来编程。结果,玩家可以探索许多不同的行动序列来达到目标条件。他举了一个例子,一个峡谷本应通过使用“心灵感应”法术激活对岸的一个杠杆来放下吊桥。对我来说,最明显的编程方式是在施放心灵感应时激活吊桥。一个测试员想出了不同的解决方案:杀死队伍中的一员,将尸体扔到对岸,然后施放“复活”。队伍成员就可以拉动杠杆,放下吊桥。如果按照我的思路(根据玩家动作触发)来编程,这个解决方案就行不通了,但它是以一种更通用和灵活的方式编程的(根据杠杆的状态触发)。他还告诉我关于用户界面设计,对象上的主要和次要“名词-动词”动作,而不是我在其他游戏中见过的“动词-名词”结构。这给了我很多思考,促使我学习面向对象编程和数据驱动编程。从那以后,每次我玩一个游戏,我都会思考它是如何构建的,并在游戏中运行实验来证实或证伪我的假设。在游戏之外,这种好奇心让我对科学产生了兴趣,我学习了物理和化学。 ##### 我很高兴您提到了 SRE 色彩丰富、考虑周到的 ANSI 界面。它让您的游戏在其他 BBS 门廊游戏中脱颖而出。我想聊聊 BBS 的背景。您为什么开始使用 BBS?您是否遇到过那个让许多 BBS 用户与父母产生麻烦的意外长途电话费问题? 我哥哥会访问一些本地 BBS 并在上面玩游戏,这促使我编写了 SRE。即使在写了 SRE 之后,我也没有真正沉迷于 BBS。对我来说,SRE 只是另一个学习新事物的有趣项目。我想在我编写它之前从未使用过 BBS。我们在 SRE 完成之前没有打长途电话,而游戏注册收入足以支付 BBS 的电话线和任何长途通话费用。 我主要花时间在哥哥的 BBS“The Solar Realms”上,特别是在留言板上,主要是支持玩 SRE 的玩家和运行游戏的系统操作员。我对 BBS 场景不太热衷,只访问过少数几个其他本地 BBS。 ##### 我猜 The Solar Realms 上的 SRE 和 BRE 游戏一定很史诗级!所以您哥哥是系统操作员,但您是否也参与运营?它主要是作为分发和支持 SRE 及其他 SRGames 的方式创建的吗? 它主要用于分发和支持,但我们也运行游戏和留言板。我们还能够在那测试游戏的新版本,然后再更广泛地分发。很难知道 SRE 游戏是否史诗级,因为我在别处没见过。我确实通过观察玩家的所作所为学到了一些策略和漏洞!能够获得这种即时反馈来调整和平衡游戏真是太棒了。 ##### 您解释说您并不热衷于 BBS,但我了解到您早期在 Usenet 和 IRC 上很活跃。在支持 SRE 的那些年里,您在技术和教育方面做了些什么? 我在高中和大学之间的那个夏天写了 SRE。一旦我开始上课,我也获得了互联网账户,并探索了 Usenet(很久之后才用 IRC),而且我也意识到 BBS 与互联网相比没那么有趣。我继续在 SRE 和其他 BBS 游戏上工作,但我的大多数项目要么是 OS/2 + GUI(我在家使用),要么是 Unix + Internet(在学校)。Usenet 是一个很棒的地方,我可以与其他游戏开发者聊天,学习许多很酷的技术和算法。 ##### 我很想听听 SRE 诞生的决定性故事。您在旧的 Usenet 帖子和您的网站上提到,SRE 最初是您自己版本的 Space Empire Elite,这是在 Atari ST BBS 上流行的一款门廊游戏,您的哥哥 Mehul 玩过它。您也玩过吗?是什么让您决定尝试制作自己的游戏——而且为什么是 BBS 门廊游戏,而不是 DOS 或 Windows 共享软件? 我记得看 Mehul 玩 Space Empire Elite,但不记得我自己玩过。我可能玩过几次,但不记得了。我认为这就是为什么游戏表面上看起来相似,但实际上玩法如此不同的原因。我并不真正理解它的游戏设计,而是使用我自己的游戏设计想法(来自多年来编写像汉谟拉比那样的游戏)。我也不理解游戏的跨 BBS 性质,而 SRE 没有那个方面。跨 BBS 完全改变了游戏玩法,因为你最终会有更多的团队合作和竞争,而 SRE 更多的是关于个人游戏、研究和在经济、军事、外交和人口方面做出权衡。 多年来,我一直将自己的游戏作为学习项目来编写,起初 SRE 只是其中之一。Mehul 鼓励我完成游戏,后来将其作为共享软件出售。我也写过一些 DOS 游戏,但通常发生的情况是,我只写够学习我想学的新东西,而没有最终完善和完成游戏来销售。销售东西对我来说并不有趣。至于 Windows 游戏,我以前写过 Windows 软件,并决定 OS/2 更有趣,所以我为它编写了一些游戏 (http://www-cs-students.stanford.edu/~amitp/games.html),而不是为 Windows。OS/2 游戏场景相当小;我认为来自那个世界最著名的开发商是 Stardock,现在制作 Windows 游戏和实用程序。 ##### 与 SRE 似乎在我访问的几乎每个 BBS 上都存在不同,我不记得见过您的其他 BBS 门廊游戏《行星征服》。您在编写它时想要探索哪些想法? SRE 中的对象是“连续”性质的。您可能有 1000 个行星或 1001 个行星,但这并没有太大不同。我有几个项目想要探索“离散”对象,其中每个单独的对象都是独特且重要的。为此,我必须保持对象数量较少。当您有 1000 个行星时,您不会给它们命名或管理每一个。如果您有 5 个行星,您就可以做到。《文明》就是一个对象数量(军队、城市、工人等)足够小,玩家可以跟踪所有对象的游戏范例。《行星征服》从国际象棋中汲取了灵感——有限的棋盘,有限的棋子可以移动。《白银王国》(从未发布)为每个城镇命名并赋予特性,您对每个城镇的所作所为真的很重要。 我想探索的另一件事是通过环境带来的变化。在 SRE 中,游戏每次开始都相同。随机事件会带来一些细微变化,但大多数情况下,变化来自其他玩家的行为。过了一段时间,如果玩家确定了特定策略,下一局游戏就会像上一局一样进行。在《行星征服》中,游戏棋子和地图可能有变化,这种变化旨在使游戏每次玩起来都很有趣。 在用户界面方面,我想探索一个基于屏幕、使用方向键的游戏,而不是基于逐行的游戏。《行星征服》就是那个实验。 我从未给《行星征服》足够的时间。SRE 由于持续的反馈和迭代而变得越来越好。《行星征服》则不然。SRE 拥有更多的用户和更多的反馈,所以我花了更多时间在上面,它不断变得更好,而《行星征服》则没有。 ##### 您说销售东西对您没有吸引力,但您*确实*将 SRE 和《行星征服》作为共享软件销售。从销售和支持这些游戏中您学到了什么? 通过将此作为一项业务,我学到了很多,我很高兴我这么做了!我学到了长期的客户支持、多年来的代码维护(很少有学生能获得这方面的经验)、客户满意度、版本控制、作弊/加密、破解/盗版、市场营销、分销、定价等等。我还了解到,由于我销售游戏,而不是免费赠送,更多的人喜欢这个游戏。收入和持续的互动让我在这个项目上投入了比其他项目更多的时间和精力,最终使它成为一个好得多的游戏。 ##### 我们来谈谈您的哥哥 Mehul 和 SRGames。SRGames 基本上是他的主意,还是更像一个合伙关系?您在 Usenet 上说过 Alpha Colony VI 和 BRE 是基于 SRE 的,所以我很好奇:您为他的项目贡献了多少? 没有 Mehul 的主动推动,就不会有 SRGames。这是一个合伙关系。开始时我负责技术方面(编写 SRE),他负责业务方面(运营带有下载、游戏和支持的 BBS)。后来我们都同时负责技术和业务方面。他编写自己的游戏,我提供支持和库。SRE 是我的 C++ 代码,包括基础设施和游戏。AC6 和 BRE 是 Turbo Pascal 编写的,使用我为调制解调器通信、BBS 接口、UI/菜单、消息传递、跨 BBS 通信、fidonet、加密以及其他一些东西编写的基础设施代码。Mehul 在我的基础设施库之上编写游戏代码。我也为他的游戏提供了一些支持。而且我分发了一些基础设施库。

相似文章

童年计算机

Hacker News Top

Susam Pal 回顾了他童年时期使用早期计算机、LOGO 编程以及经典游戏(如 Moon Bugs 和 Digger)的经历。

重制 Party House

Lobsters Hottest

一位开发者讲述了使用 Godot 和 Claude 将 UFO 50 中的 Party House 重制为浏览器游戏的过程,分享了游戏开发心得,并发布了可玩版本。

关于构建论坛软件的思考

Hacker News Top

作者反思使用AI编码工具构建论坛软件bsBB的经历。作为一名非专业程序员,他们分享了利用LLM处理底层细节同时专注于系统设计的经验。