我和金刚

1981年秋天,我进入大学,对Atari街机上的Centipede和Tempest游戏沉迷。我对Atari 400/800个人计算机的硬件非常熟悉,因此决定为学生的预算进行毁灭性的购买-Atari 400和黑白电视(我买不起彩色)。在玩了Basic之后,我用Assembler / Editor购买了一个墨盒,然后开始研究Centipede克隆。我没有机会依靠以前的游戏项目的经验,我不得不自己理解一切。就像学校的任务一样:您只需要使用教科书和讲座中的小技巧就可以找到解决方案。

与Asm / Editor合作的每个人都极有可能像我一样对自己产生深深的情感伤痕!编辑器的运行速度非常慢,调试器运行得很慢,我不得不删除注释并使用几千字节的覆盖层(内存不多,并且所有变量都不适合,因此使用了覆盖层技术-将不同的变量组放置在相同的地址上。很明显,同时,不能使用来自不同部分的变量,不仅不能使用具有相同地址的变量,而且通常也不能使用来自不同覆盖部分的变量。)以适合整个代码。我将游戏命名为Myriape​​de,耗时三个月。我仍然有素描和素描:方格纸,用五颜六色的笔和十六进制的颜色值划线,仔细地写在田野上。我随机选择颜色:我只有一块便宜的黑白屏幕,然后我去了几个小时,去拜访我的朋友,检查并调整他电视上的颜色值。

Atari Program Exchange(口袋发行商)宣布了一项竞赛,奖金为25,000美元。在整个学期中,我跳过了大学课程,只学习了Myriape​​de。我以一两个星期的优势完成了比赛,并被送去参加比赛。

几周后,他们收到了Atari的来信,他们在信中作了报道:首先,他们对我的工作印象深刻,但是其次,它与Centipede非常相似(是的,是的),因此他们被迫拒绝。潜台词是,如果我尝试出售游戏,他们可能会起诉我。我被压碎了。为自己结束这个话题,他将几份拷贝带到了当地的业余爱好小组。我认为游戏从那里开始传播,听说人们喜欢它(“ 1982年最佳程序”或类似的东西)。


一段时间后,我接到了Atari的电话:他们邀请我去接受采访。我被激动震惊了。我飞向他们,并向每位面试官Myriape​​de展示。谈话总是在这个地方冻结。在游戏开始之前,他们只是向我展示了注意力-“好吧,您编写了游戏”-但是在开始之后,他们参与了整个过程,我提醒他们我们实际上正在接受采访!其中一名受访者是原始C的作者,他当即就说我的版本更好。

几周后才找到工作。 Atari保证将占据整个房间的所有垃圾运送到加利福尼亚。然后我马上飞去,在旅馆里待了两个星期,正等着我的东西到来。公司真的很想得到我!

当时,有两个我根本无法忍受的流行街机游戏-笨拙而无聊的滚动射击游戏Zaxxon和大金刚-大声,毫无意义和烦人。当然,他们在加利福尼亚需要我的原因是要移植大金刚!在经历了一阵绝望(以及对老板的假装热情)后,我咬紧牙关尖叫起来,花了四分之一钟,在酒店的一台小型街机上呆了很多时间,玩DK非常好地学习了这个游戏。


在这里有必要说明从街机游戏移植游戏的部门如何在Atari工作。从本质上讲,市场部门的人同意使用许可证从艾格德尔(Igrodel)分发Imenyrek在Atari计算机的墨盒上。仅此而已。那就是全部,我们没有原始开发人员的帮助。没有清单,没有与工程师的对话或项目文档-没什么。实际上,我们被迫购买自己的街机游戏机并学习如何玩此游戏(顺便说一句,这就是我在酒店玩的原因-我们甚至还没有带来游戏的副本!)。

因此,我尽了最大的努力来玩《大金刚》,并开始击败创意。我写了一份25-30页的设计文档,其中将游戏分为模块,开发周期估计为5个月(这是1982年11月),然后担心地将它带给了我的老板Ken。文档足够好吗?还是他们会派我作为外行设计师和业余程序员来整理他们的东西?

肯说:“我们对您的传统知识感到非常满意。”我只是列出了游戏中的对象,为一些关键的游戏模块编写了一些伪代码,并假设这只是该传统知识的积压!但是周围的每个人都认为这份文件已经完成。看来我只需要根据它编写代码。太恐怖了

肯说:“市场部正在圣诞节前等待比赛。”经过精确的计算,我达到了150个工作日的标准。在几周内没有一次移植游戏的机会,但我显然感到压力。从无所事事(所有烦恼中,我只需要寻找公寓并在到达时放下行李),我几乎就将所有时间都花在工作上。我第一次整夜都没睡,把门槛越来越高,以跟在我对面的那个办公室的人保持同步,他也整夜工作。饭厅每天提供三餐。


很棒的事情是,如果您过多地参与了该项目,那么在某个时候它会开始自己编写,而您只是在旁边游泳。您的生活分为工作和无聊的废话-睡眠和饮食。是的,我知道这听起来像地狱,但这确实很棒。我那时才21岁,即使没有得到报酬,我仍然会免费做类似的事情。

为了进行交叉开发,我们使用了Data General的小型计算机MV / 8000。关于同一台机器,特雷西·基德(Tracy Kidder)写了一本书《新机器的灵魂》。尽管事实上不是板载Unix的情况下不是VAX(这对我来说更可取),但该环境仍然非常方便,并且包含多个良好的实用程序(尽管没有Emacs!)。我们使用了为MV / 8000移植的Atari宏汇编程序版本,它比我编写Myriape​​de的速度慢得令人难以置信的汇编程序/编辑器要好得多。但是我们必须以9600波特的速度将所有代码上传到开发系统,因此,在项目完成时,我对系统的请求的处理时间就变成了一个严重的问题,尤其是考虑到当天与我共享MV / 8000的同事中有40或50 。我记得大学里装的大型机。我经常熬夜,晚上六点钟左右,汽车开始快速运转(等待5分钟而不是一个小时)。


在我到达办公室的第一天,我加快了速度,找到了包装好的Atari800。我迅速组装了它,检查它是否可以工作并去喝咖啡。

当我回来时,供应部门的那个女孩正站在门口。她喘着气说:“哇,你知道如何组装电脑!”而我只需要这样做。”

是的,谢谢,但是不是每个人都应该具备这种技能吗?连接和配置Atari并非最简单,最明显的任务,但也不是一件容易的事。

警钟...第一个办公室邻居不知道如何安装他的计算机。实际上,他什么都不知道,后来证明了。他被雇用从事Dig Dug的工作,完全茫然。我必须教给他一切,包括汇编语言编程,Atari硬件的工作,如何下载各种信息以及如何对其进行调试。真伤心

我在Atari的工作经历了这种情况。初学者不必知道如何去做,但是我浪费了时间帮助弄清楚他们在开始工作之前应该已经知道的事情。招聘策略不完善。

我已经用C编写了几年了,因此我开发了类似C语言的语言来描述模块的操作。首先,我草绘了该高级伪C的几页,然后花了半天的时间将其“编译”到汇编器6502中。有时候,结果是相当大的代码第一次起作用!但是总的来说,这是一个相当令人恐惧的经历。

获得的另一个经验是,理解评论在某种程度上很重要。我看到了Atari操作系统的代码段(包括400/800 OS的源代码),它们非常清晰漂亮。但是大多数来自消费软件部门的游戏资源都是可怕的,堆满了垃圾:几乎没有评论,对发生的事情一无所知。仅由LDA / STA / ADD组成的清单,一组字母,以及可能具有有意义名称的随机标签。换句话说,完全不受支持的代码!在游戏行业的大多数情况下,这是很正常的事情:几乎没有代码被重用或取出到库中(除了Atari Coin-Op单元中经过精心调试的过程,这些过程在街机中执行数学运算并与硬币机制一起工作)。

我认为,在Atari发行的所有消费产品中,对DK的评论最好(Super Pacman甚至更酷,但没有上市)。用户看不到评论,这不同于其他工程师发现对您写的内容有用的其他工程师。例如,马里奥的跳跃是根据简单的运动物理定律计算的,方程式被编写在源代码中,格式正确,您始终可以追踪这些魔术表达式在代码中的来源。 DK发布后,我的同事得到了一份代码副本,花了一周的时间阅读,并说他很震惊(“我不知道如何打印全部内容。不完全是五个月!当我看到与机芯有关的代码时,我的下巴掉了下来。到地板上。”)。它把我带入了油漆!源代码应同时用于娱乐和教育。

大金刚于1983年3月中旬开始销售。我隐约记得有一个小型小组正在处理这个问题,但那一刻我感到非常高兴,因为一切都结束了。

技术细节Kong使用$ E图形模式(每160列192行图像)。关卡加载后,背景绘制一次。桶和其他生物是通过xor显示的(我有负责构建蒙版和重绘的代码,但结果太慢了)。马里奥由几个游戏对象组成(我认为其中有三个)。奖品(伞等)也属于游戏对象。使用xor的图形输出让我很恼火,但是大多数都没洗,有些人认为这样做很酷! (渲染时,背景像素颜色与对象的像素颜色相异或,当有必要从该位置移除对象时,只需进行异或右移,然后恢复背景颜色)。

布拉德·富勒(Brad Fuller)创造了所有声音。莫娜·伦德斯特伦(Mona Lundstrom)从事了重要的图形设计工作(但我重画了大部分)。另一位工程师负责“场景切换”,我不得不完全重写其代码(他最初想使用Fort,但他不理解游戏不允许为了方便他的生活而给堡垒的翻译提供弹药筒的一半空间)。

在高峰时期,DK占用了20 KB,但是有必要节制,因为该磁带盒包含16Kb。许多图像已被压缩(例如,请注意Kong是对称的)。最后,我每天只消耗几个字节,而游戏的利润只有十几个空闲字节。

我离开了帕斯卡(Pascalha),但她不值得为找到她而付出努力。此外,我不记得该怎么做(有点像死在“沙堆”上,死了三点,赚了7000多个点)。

调整复杂度后,我放慢了游戏速度,只是确保它可以通过。对象的某些轨迹是随机的,但仅限于一定程度,只要足够快,您仍然可以通过它们。

我对Atari的未来充满信心,参加了部门的第一次会议。尽管我不太了解,但管理的主要思想是销售放缓,利润急剧下降,并且公司必须进行重组才能保持盈利。

对面的建筑物是第一个标志:Atari用它生产了2600个游戏机,他们将生产转移到国外,并从当地工厂解雇了大多数人。

市场部的裁员人数略有减少。一小群的移植团队和我一起由8位程序员组成,他们被转移到一栋小大厦里,与所有主要的Atari大厦都相距甚远,而我们实际上与发生的一切隔绝了。但是,即使从如此遥远的地方,我们也看到进展并不顺利。游戏业发展迅猛,雅达利(Atari)正在将数百万个未售出的墨盒放入垃圾填埋场。所有这些错误,一度被成功所掩盖,但突然爆发并给公司造成了沉重打击。

我的同事终于从Robotron毕业了。根据要求,她制作了三个版本的ROM映像,它们在ROM中的寻址方式有所不同。不幸的是,Q / A部门只能检查其中两个。猜猜Atari发送到生产的哪个版本以及哪个版本存在严重错误?我看到钢铁工程师意识到廉价的逻辑门可以解决问题时遭受了怎样的痛苦。在这种情况下,只有几个字节不正确。结果,雅达利将20万美元的墨盒扔进了垃圾箱。

我感到类似的错误不断发生。此外,所有这些都得到了游戏根本不出售的事实的补充。着眼于上市时间指标,雅达利(Atari)营销迫使工程师编写不完善的无聊游戏。这种做法不利于他们!人们已经厌倦了玩旧游戏的原因。

每几个月进行一次大规模裁员和重组。我们的团队搬到了Coin-Op大楼的一角:为了节省成本进行合并。当时我正在研究《超级吃豆人》,但没​​人在意,所以我全力以赴,在游戏上做得很好。

最终,杰克·特拉米尔(Jack Tramiel)买了他需要的Atari零件,而我被拉进了Atari ST,但这是另一回事了。

Source: https://habr.com/ru/post/zh-CN397971/


All Articles