
我最近偶然发现了一个古怪的Youtube视频,引起了我的兴趣。在视频中,James O'Grady演示了一个3D迷宫游戏。他从一本听起来很熟悉的名为Graphic Adventures for the Spectrum 48K的书中输入了游戏的代码。
这本书的名义作者Richard Hurley是我的老师之一,他包括我和我的一些朋友写的程序。这个3D迷宫游戏是我在1984年写的,当时我16岁。在视频中,詹姆斯继续批判了这个游戏,探讨了一些改进它的方法,并阅读了当时杂志上对这本书的一些评论。
在我十几岁的时候,我在ZX81和后来的Spectrum上玩了很多游戏,但随着年龄的增长,我开始对玩游戏感到厌倦,而对编写游戏更感兴趣。我从杂志和书籍中输入代码,学到了很多游戏编程的知识。
我开发的第一个游戏完全是用Sinclair BASIC编写的,例如在早期的书中发表的Sub Hunt,但我很快意识到我需要使用机器代码来获得我想要的性能。最初我写了一些小的机器代码来加速游戏的关键部分。然而,视频中的3D迷宫游戏是我第一个完全用Z80机器代码编写的游戏,它使用了优秀的Zeus汇编器和我信赖的《完整光谱ROM拆解》。它是在J.K. Greye软件公司的 "3D怪物迷宫 "游戏的基础上编写的。
ZX81的原创
最重要的是,从视频游戏历史的角度来看,ZX81是承载世界上第一个家用电脑上的3D游戏的计算机。JK Greye的3D怪物迷宫,一个简单的迷宫产生了,玩家必须找到他们的出路,同时被一只霸王龙跟踪。整个体验是以现在所说的 "第一人称 "视角呈现的,即你看到的是你在迷宫中看到的人物的眼睛,正如ZX81的相当块状但仍然有效的图形所描绘的那样。建议所有《毁灭战士》、《雷神》、《虚幻》、《半条命》和所有其他现在非常流行的FPS游戏的粉丝在模拟器上快速玩一下这款游戏,因为它确实是它们的祖先。现在很难描述这款游戏对从未见过类似游戏的公众的影响。 克莱夫-辛克莱尔的奇妙计算机
我的版本
有一点令人失望的是,与 "3D怪物迷宫 "不同,在我的游戏版本中没有 "怪物",至少在詹姆斯玩的版本中没有。我知道我最终确实在游戏中加入了一只霸王龙,但我依稀记得要赶着出版的最后期限,所以这只怪物可能已经错过了。如果我没有记错的话,一个艺术水平比我高的朋友在一系列 "框架 "中画了一只霸王龙向观察者走去。然后,我把这些画描到图画纸上,并把它们转换成用户定义的图形字符。我想知道这些是否可能是詹姆斯在视频中提到的神秘字节。否则,我相信程序会使用对ROM的调用,例如这个画线子程序,来绘制迷宫的墙壁。
Youtube上的视频
詹姆斯一定是非常耐心地输入了所有机器代码的原始数字,而且只进行了非常简单的校验。而且,考虑到游戏完全是用机器代码写的,而汇编器的源代码已经消失在时间的迷雾中,我印象深刻的是,詹姆斯成功地以几种不同的方式修改了游戏,使用了大量明智的PEEKs和POKEs,显然没有使用反汇编器。特别是他写了一个漂亮的迷宫编辑器程序,可以在Spectrum上运行,允许你设计自己的迷宫。当我得知迷宫必须是正方形时,我感到非常有趣--我无法想象,如果允许长方形的迷宫,对我来说会难得多!"。
詹姆斯对这个游戏的批评非常公正。他的主要看法是,这个游戏玩起来不是很有趣,但与其他类似的游戏相比,这个游戏非常快。我也很喜欢读他在当时的几本杂志上找到的关于这本书的评论。我和他在Youtube的评论中进行了愉快的交流,他把Youtube视频的标题改成了我的名字,这是一个很好的姿态。无论如何,这对我来说是一次精彩的记忆之旅,让我想起了我的编程之根。
玩游戏
如果你觉得你想要完整的 "输入 "体验,葡萄牙语(!)版本的书可以从Spectrum Computing 下载,你可以在 "Labirinto"(第四章,第105页)中找到这个游戏。否则,这个GitHub repo包括一组TAP格式的文件,可能在Spectrum模拟器中工作,尽管我还没有机会亲自尝试。