波斯王子创作者如何克服Apple II的内存限制


“我开发了《影子人》的故事情节。他出现在游戏中的预定位置。在一种情况下,他偷了药水。当玩家准备拿起气泡时,“影子人”便跑了进来,喝了酒,然后跑开了。还有一次,当玩家即将穿过大门时,出现一个影子人,点击炉子并关闭大门。之后,玩家下降了三个等级,然后他又不得不一直上升。我在情节中记录了这些冲突,以便玩家讨厌影子人并将他视为敌人。这样一来,当他在比赛结束时不得不与他交剑时,他真的很想收支相抵,因为他多次阻止了玩家。这是我通过游戏玩法而不是电影插入在玩家和对手之间建立情感联系的方式。”

嗨,我是波斯王子的作者约旦·梅克纳(Jordan Mekner)。这是一个故事,讲述了我如何将自己逼入动画的角落,然后由于战斗,我得以摆脱困境。

我是70年代中期在纽约长大的孩子。漫画迷。我喜欢这部电影。在《 MAD》杂志上长大,如果没有计算机,我会做漫画和动画。但是当Apple II于1978年问世时,我把它当作一台主要可以在家玩游戏的机器,这在以前是完全不可能的。不用花四分之一的时间在本地老虎机上,我可以呆在家里,在Apple II的《太空侵略者》中玩自己想要的游戏。另外,计算机使我能够创建自己的游戏,这使我感到很高兴。这是在Internet出现之前发生的,因此几乎每个人都是自学成才的。我订阅了Creative Computing杂志,不久之后又订阅了Softalk杂志,其中包括有关如何编程的文章。我开始与朋友分享经验,他们也喜欢计算机。

我的第一个游戏是现有街机游戏的副本:玩家始终拥有3条生命,目标是获得创纪录的积分。但是后来我已经上大学了,想写一个讲述故事的游戏,因此开始编写“ Karateka”游戏。她的情节很简单。一位邪恶的将军绑架了公主,并将她囚禁在城堡中。玩家控制一个英雄,该英雄必须赢得数次空手道战斗,以捍卫堡垒。实际上,他从左到右奔跑,一个接一个地击败了一个战士,直到他走到尽头,然后与一个大坏蛋战斗并拯救了公主。我是在Apple II上编写游戏的,当时的Apple实际上是排名第一的游戏平台,但它有其局限性。 Apple II的音乐功能不是很好,计算机只有四种颜色,屏幕分辨率为280×192,整个程序必须容纳48 KB的内存。这是一个严格的限制。


在那些日子里,尚未创建Photoshop,还没有用于动画的图形包和工具,如果要在屏幕上绘制字符,则必须逐个像素地进行操作。当我尝试实现角色的动画时,结果发现他看上去笨拙,与我想象的现实主义相去甚远。因此,我使用了一种叫做rotoscoping的技术,该技术历史悠久。她出现在动画电影的黎明。

迪斯尼的第一批动画师使用电影镜头作为参考。在《白雪公主》中,人类角色(例如《白雪公主》和王子本人)实际上是通过旋转摄影进行动画处理的,也就是说,迪斯尼动画师会拍摄需要执行动画动作的现场演员,然后将这些帧投影并逐帧或逐帧地进行投影。 。我对“ Karateka”也一样。我在Super 8电影中记录了我的空手道老师如何踢和踢以及角色需要在屏幕上进行的其他动作,然后我用铅笔在描图纸上划了Super 8电影的每一帧,并将它们变成像素以显示在屏幕上。这是一种rotoscoping 1.0。


《 Karateka》于1984年发行,并成为畅销书的第一名,我很幸运地遇到了这样的情况:我没有开始大学毕业后找工作,反而发现了奢侈品,可以考虑下一步要做什么?我想到了另一场比赛。电影“寻找失落的方舟”的前十分钟成为灵感来源之一。在这个场景中,印第安纳·琼斯(Indiana Jones)跳了一个洞,几乎摔倒了,尖峰从墙上跳了出来,门关上了,所有这些动作让我想起了我在《罗德奔跑》和《爬行医生的城堡》等平台游戏中看到的一切:你上炉子,她打开门。我以为,如果将此游戏玩法与人类角色相结合,玩家会感到,如果您错过跳跃和摔倒,那将会真的很受伤。第一批平台游戏的角色似乎没有分量。玩家知道即使他错过了,角色也会下楼而不会感到疼痛。我决定将模块化世界中平台谜题的基本游戏玩法与非常流畅的奔跑和跳跃动画相结合,试图传达“寻找失落的方舟”第一分钟的乐趣。

“波斯王子”的情节也很简单。就像在《空手道》中一样,玩家需要拯救公主。在这本书中,我受到了“一千零一夜”的故事以及1940年“ Baghdad Thief”等电影的启发,其中邪恶的大巫师夺取了权力并监禁了公主。我知道对于波斯王子来说,我需要更多的动画。奔跑,跳跃,攀爬,跌倒:他必须在屏幕上执行的小人物的所有动作。 1985年,当我为《波斯王子》制作动画时,一种新技术出现了-VHS。使用第一批VHS摄像机之一,我拍摄了哥哥在我们学校附近的停车场中如何奔跑,跳跃和执行所有其他动作。


下一个问题是将所有这些记录的帧传输到计算机。经过反复试验,我终于找到了适合波斯王子的技术。它包括从模拟到数字的转换,并且包括几个阶段。我和哥哥一起在一个黑暗的房间里的电视屏幕上放了一个录像带,将35毫米相机放在三脚架上,对准屏幕,然后照相,倒回录像机的下一帧,又拍了一张,再次向前,等等。直到我得到了约35帧胶卷。我把它带到当地的Fotomat速印店,一个小时后他们放映了胶卷,还给了我一张我用胶带粘在一起的照片。我使用记号笔和校正器选择了每个字符的轮廓,然后将图片放入复印机,已收到一张透明纸,在黑色背景上带有一系列带有明显白色字符的框架。对比度足够强,可以将这张纸放在动画机器上,将摄像机指向它,并在没有视频输入的Apple II中显示图像。我使用了一块特殊的数字转换器板,它只能产生一个清晰的静止图像。她无法执行动作捕捉,但是在接收到9-12个角色动画的单独帧之后,我已经可以使用像素并使用我的动画工具在屏幕上将其切出,然后播放帧序列。花了数周的时间才能将录制在视频中的跑步或跳格转移到计算机屏幕上的一系列帧中。对比度足够强,可以将这张纸放在动画机上,将摄像机指向它,并在没有视频输入的Apple II中显示图像。我使用了一块特殊的数字转换器板,它只能产生一个清晰的静止图像。她无法执行动作捕捉,但是在接收到9-12个角色动画的单独帧之后,我已经可以使用像素并使用动画工具在屏幕上将其切出,然后播放帧序列。花了数周的时间才能将录制在视频中的跑步或跳格转移到计算机屏幕上的一系列帧中。对比度足够强,可以将这张纸放在动画机上,将摄像机指向它,并在没有视频输入的Apple II中显示图像。我使用了一块特殊的数字转换器板,它只能产生一个清晰的静止图像。她无法执行动作捕捉,但是在接收到9-12个角色动画的单独帧之后,我已经可以使用像素并使用动画工具在屏幕上将其切出,然后播放帧序列。花了数周的时间才能将录制在视频中的跑步或跳格转移到计算机屏幕上的一系列帧中。我使用了一块特殊的数字转换器板,它只能产生一个清晰的静止图像。她无法执行动作捕捉,但是在接收到9-12个角色动画的单独帧之后,我已经可以使用像素并使用动画工具在屏幕上将其切出,然后播放帧序列。花了数周的时间才能将录制在视频中的跑步或跳格转移到计算机屏幕上的一系列帧中。我使用了一块特殊的数字转换器板,它只能产生一个清晰的静止图像。她无法执行动作捕捉,但是在接收到9-12个角色动画的单独帧之后,我已经可以使用像素并使用动画工具在屏幕上将其切出,然后播放帧序列。花了数周的时间才能将录制在视频中的跑步或跳格转移到计算机屏幕上的一系列帧中。花了数周的时间才能将录制在视频中的跑步或跳跃转移到计算机屏幕上的一系列帧中。花了数周的时间才能将录制在视频中的跑步或跳格转移到计算机屏幕上的一系列帧中。

当我第一次在屏幕上看到角色奔跑和跳跃时,他对生命力和体重有一种幻想。那是八位图形的时代。波斯王子动画的每一帧都是一组字节,代表屏幕上的固定图像,下一帧是另一组字节。例如,要实现一个跳跃,它需要12帧,而在运行中跳跃则需要15个帧,并且帧数越多,动画越平滑。加上跳跃,奔跑,转弯,悬挂,摆动等等之后,每个动作都占据了记忆。在这里,这些计算机与现代计算机之间的差异非常重要,因为Apple II只有48 KB。该数量少于一般的文本电子邮件,但所有内容都应适合该数量:所有图像,背景,动画帧,程序逻辑,所有音效,音乐,应有尽有。所有这些以及角色在地牢中移动所需的动画,都占据了所有可用的计算机内存。

因此,1988年6月,我为波斯王子工作了两年,目前最困难的部分已经完成。我有一个平稳地移动的角色,穿过地牢,他爬上,跌下,点击板子打开门,然后跳入深渊,几乎掉入了尖峰中。看到我的游戏的每个人都吟叹息。这个结果证实了这个概念,但是游戏玩起来不是很有趣,我被几乎已经实现了我想要的一切的模糊感觉所折磨,但我无法实现我所希望的钦佩。此外,有迹象表明Apple II平台即将消亡。当我开始开发《波斯价格》时,Apple II仍然是游戏的第一平台。但是到了1988年,出现了更多颜色和分辨率更高的新车,更高级的声音功能。我当时正处在Apple II生命周期的尽头,但是我觉得切换到另一个平台后,我不得不重新开始。我担心自己会创造出一款精彩刺激的游戏,但没人会玩。

是的,出现了一个问题:当我开始怀疑自己对游戏的初衷时,我到达了开发的那个阶段。有时候正确的答案是:只相信原始的愿景,实现它,一切都会好起来的。但是有时在工作过程中,您会发现一些发现,使您意识到最初的愿景只是初稿。最初,我认为主要角色不会战斗,他不使用暴力,而是试图在残酷的世界的地牢中生存,那里有尖刺从地板上冒出来,有门和掉落的厚板可以压垮他,但他自己并不残酷。目的是克服这些陷阱并节省公主,并且要实现这一目标,我使用了Apple II的所有可用资源。我没有地方插入另一个字符。


当时,我与也从事自己项目的朋友们共享了办公室。罗伯特·库克(Robert Cook)从事D / Generation游戏。汤米·皮尔斯(Tommy Pearce)创建了教育软件,每当她经过我的屏幕上看到“波斯王子”时,她都会重复“战斗,打架,打架”。 “你需要战斗,否则这个游戏不会很有趣。”它困扰着我,因为我没有计划战斗。空手道是一场格斗游戏。整场比赛是与后卫见面,与他作战,然后进行下一场战斗。我向Tomi解释说:“我之所以无法制造它们,是因为我没有足够的记忆力,此外,我还需要一个流畅,充满活力的敌人,可以做敌人需要的一切事情。”但是当一个想法出现在Tomi的时候,她并没有放手,所以我不得不说:“现在墙上有火把了。现在我加了下颚陷阱削减了英雄并增加了紧张感。那不是更好吗?” Tomi评估了新功能并说:“打架,打架,打架。” [深呼吸]我绝望地意识到她的话有些含糊。无论我多么想让游戏快要准备就绪,它都无法幸免,这就是问题所在:两年的开发中,我几乎使用了所有可用的内存,但是游戏缺乏紧张感,愉悦感和使Karateka产生冲突的感觉“如此简单而且非常有趣。我该怎么办?但游戏缺乏使Karateka变得如此简单和有趣的张力,愉悦感和冲突感。我该怎么办?但游戏缺乏使Karateka变得如此简单和有趣的张力,愉悦感和冲突感。我该怎么办?

我可以确切地告诉你发生了什么。 1988年6月的那一天(我知道,因为我在日记中写了),托米再次回来,看着屏幕,说道:“打架,需要打架。”然后我再次提出我通常的论点:首先,这与游戏的概念不符,其次,没有足够的内存。她说:“在Karateka,您为英雄和敌人使用了相同的数字,您能这样做吗?”我回答:“不,因为英雄看起来像是一个有吸引力的,坚不可摧的角色。敌人不应该像那样。”她说:“好吧,如果您将敌人变成其他颜色,该怎么办?”于是我想到了:如果我对每个字节执行XOR,而自己又移位了一位,该怎么办?

据我现在所知,Apple II没有图像处理功能,因为所有图形都是位图。但是汇编程序指令之一称为“异或”(XOR)占用了两位,如果它们相同,则返回零,如果它们不同,则返回一。当我第十次向Tomi解释为什么我不能以错误的颜色绘制字符时,我意识到,如果您使用“异或”指令移动一位,这将产生闪烁的,幽灵般的轮廓主角。当我说这些话时,就出现了这个角色的名字:“影子人”(“影子人”)。当Tomi和Robert看着我的肩膀时,我只花了五分钟就编写了一个代码,将主角变成了自己的鬼怪。我们一看到影子人奔跑,跳跃和爬上地牢,就很明显他是游戏所需的敌人。


罗伯特(Robert)建议,当英雄跳过镜子时,影子人可能会出现:那一刻,他的幽灵副本朝另一个方向跳,然后迷失在地牢中,她成为敌人-偷药水,关闭玩家想要打开的门,并且通常会造成各种混乱。因此,这个角色是强制出生的,因此成为游戏的最佳功能之一。这是一个示例,说明有时约束会如何将您推向更具创造力的解决方案,而不是您一开始就能找到的解决方案。如果我的限制不是记忆,那我可能会在波斯王子中创造出各种各样的怪物和敌人来进行改变,但是由于它们没有空间,所以我不得不更深入地挖掘并提出影子人,好像变得更深入,更令人信服。

在游戏结束时,当玩家遇到自己的影子自我并用剑战斗时,每一次击中“影子”人,玩家就会失去力量点。玩家意识到,如果继续战斗,您将因此丧命,因此解决方案不是赢得剑战,而是移除剑。当您移开剑时,影子人也会这样做。如果您转向他并奔跑,那么影子人将奔向他。两个将合并并重新团聚,玩家将获得影子人在游戏中从他身上偷走的所有生命值。由于恢复了力量和完整性,他将能够与出色的Vizier战斗并完成比赛。如果没有必要,我永远都不会想出这个。

影子人一出现在游戏中,就很明显这是正确的,所以我设法在记忆中放了几帧来实现剑法战斗,以便玩家可以与自己的影子副本战斗。事实证明这是非常令人信服的,现在我需要以各种方式向地下城里布满警卫。在开发的后期,我找到了一种借用12 KB内存的方法,该内存被隐藏在附加的Apple II存储卡中,并添加了保护装置。但是同时,又出现了一个新问题-如何为敌人制作动画?

波斯王子的动画模特是我的弟弟,他现在离我三千英里。此外,他不知道如何与剑搏斗,因此首先我尝试在罗伯特(Robert)的办公室里记录自己和我的同事,我们握着剑并用栅栏围起来。不幸的是,这没有用。无奈之下,我和埃罗尔·弗林一起打开了我最喜欢的电影之一,罗宾汉(1938),结果发现这部电影中与罗勒·拉丝伯恩(Basil Rathbone)发生了一场高潮决斗。它包含一个大约六秒钟的场景,其中两个互相战斗的角色被完美拍摄。我从1938年的罗宾汉VHS录像带上拍摄了每个库存的照片,收到了角色进行剑术所需的动作,而当我意识到后卫后,这场比赛对我来说似乎就完成了。

现在,在地牢中穿行时,玩家感到了一种竞争,紧张和恐惧的感觉,这成为了Karateka成功的重要组成部分。我从中学到的教训可以表述为:如果您头脑中有两种声音,两种提供两种不同解决方案的方法,彼此截然相反,则您需要尝试聆听每种声音并思考,“这种声音是否告诉我大图景?”因为有时会出现一些好主意,使您偏离预期的道路,但有时,这种声音实际上会带您回到道路上。影子人是正确的决定,因为它与波斯王子的原始灵感来源相关。实际上,这是“斗篷和剑术电影”的现代版本,在这些老电影中,无论是埃罗尔·弗林(Errol Flynn),道格拉斯·费尔班克斯(Douglas Fairbanks)或印第安纳·琼斯(Indiana Jones)进行了战斗,因此完全符合游戏精神。

“波斯王子”于1989年底在Apple II上发布。正如我所担心的,随着时间的流逝,比赛已经失败了。到那个时候,Apple II已经是一个垂死的平台了,大约一年来,我感到痛苦的是,我一直在努力工作的游戏以及所有玩过它的人都会消失而不会留下任何痕迹。移植到其他平台拯救了我:在PC,Mac以及世嘉(Sega)和任天堂(Nintendo)等游戏机上,这些游戏在随后的几年中出现。这保存了游戏,将其从惨败变成了命中。这正是向我表明,添加影子人和战斗是正确的决定,因为在这些平台上,对于Apple II如此重要的内存问题已不复存在。

从动作和冒险电影中汲取的灵感被证明是将波斯王子转变成现实的最重要来源。事实证明,“波斯王子”在PC上的流行足以制作续集“波斯王子2:阴影与火焰”。到1993年游戏开始时,我们已经拥有了能够再现声音和音乐以及显示彩色图形的新一代PC。它的能力远远超过了80年代后期的能力,我们通过增加更多敌人,更多角色和丰富环境来利用这一优势。我们派王子前往世界各地,带领他前往地牢和城堡“波斯王子1”。但是基本的游戏玩法,陷阱,射击,解决难题,战斗和研究的公式非常接近出现在“波斯1王子”中。自从第一位波斯王子出世以来,技术一直在向前发展,但是游戏设计的基本问题几乎没有改变。当我们在2003年进行重制时,“波斯王子:时之沙”,我们使用了更新一代的游戏机。 PlayStation 2世代的游戏首次拥有3D图形,具有倒带时间,声音和音乐的功能,这是Apple II所无法承受的,但我们仍然有局限性。 《时光之沙》的初稿要复杂得多,王国内各种派别的政治阴谋诡计多多。但是从完成的游戏中我们将其全部删除,留下了一个简单得多的故事,其中王国中的每个人都变成了沙怪。这项决定使创建游戏成为可能,这实际上与控制器上的操作是同步的,因为您遇到的只是沙子怪兽。因此,您的选择是:杂技,格斗和逃跑,尽管我们仍然有机会实现对话,面部动画等功能,但这与玩家可以做的很好。拥有大量角色将使游戏远离其优势,也就是说,在创建游戏情节时,您需要计划强调其优势而非劣势的决策。拥有大量角色将使游戏远离其优势,也就是说,在创建游戏情节时,您需要计划强调其优势而非劣势的决策。拥有大量角色将使游戏远离其优势,也就是说,在创建游戏情节时,您需要计划强调其优势而非劣势的决策。


今年,第一个“波斯王子”已经30岁了,今天我告诉你的很多事情我都记得,因为我保留了一本杂志,所以为了纪念30周年,我们再次以“王子”一书的形式发行这些杂志。波斯。” 这些是我在创建游戏时所保留的杂志,所以其中充满了跌宕起伏,怀疑和热情:“这场比赛将是伟大的”,“这场比赛将是一场灾难”,我的想法是如何解决特定的问题。我们还用工作流程和草图的屏幕快照来说明杂志,所以我对这个周年纪念非常感兴趣,可以不时地回头看看这些杂志,我80年代主要是用笔在纸上用过。

All Articles