查看原文
其他

追梦 40 年:一位男子的 8 位 Commodore 64 角色扮演游戏之旅

CSDN 2023-07-04

【CSDN 编者按】还记得自己研发的第一款作品是什么吗?本文主人公 Mike Brixius 在 1983 年获得了人生的第一台电脑,并在上面开发了一款游戏,但由于彼时的种种限制,这款游戏不得不被搁置,然而 40 年后,Mike Brixius 决定“复活”这款游戏……

原文链接:https://arstechnica.com/gaming/2023/06/one-mans-40-year-8-bit-quest-to-finish-the-c64-rpg-he-started-in-1984/

相关视频:https://www.youtube.com/watch?

本文根据 Kevin Purdy 的文章《One man’s nearly 40-year, 8-bit quest to finish his teenage Commodore 64 RPG》 和 Mike Brixius 的 Youtube 视频整理而成。

未经允许,禁止转载!


作者 | Kevin Purdy    译者 | 明明如月
责编 | 夏萌
出品 | CSDN(ID:CSDNnews)

迈克·布里克修斯(Mike Brixius)在他的 RavenWolf 复古科技频道上他下决心完成自己 1984 年开始编写的 Commodore 64 计算机角色扮演游戏。

图:布里克修斯的第一台电脑 Commodore 64

1983年,他得到了人生中的第一台电脑: Commodore 64。他在这台电脑上开发一款名为《数字地牢大师(Digital Dungeon Master)》的游戏。

图:《数字地牢大师(Digital Dungeon Master)》画面
布里克修斯的灵感来源于他酷爱的 Avalon Hill 桌面游戏。他特别研究了 Avalon Hill 在角色扮演游戏领域的杰作《寒境迷城(Telengard)》。这也是他在 Commodore 64 上体验的第一款角色扮演游戏。游戏设计巧妙且具挑战性,即使角色尚且很弱小,游戏也会故意配置强大的敌人。游戏的追踪机制也十分独特:如果敌人在地图上无法看到,以通过点的形式表示敌人相对于你的位置,模拟敌人正在追逐的感觉。这种设计增加了游戏的紧张和挑战感。此外,游戏的道具系统简洁明了,主要功能是增强角色的各种能力和力量。因为系统设计的直观,玩家可以很轻松地理解每个道具的功能,从而更有效地在游戏中强化自己的角色。

图:《寒境迷城(Telengard)》画面
布里克修斯被这款游戏的有限视野所震撼。游戏中的视野通常被限制在玩家角色周围的小范围内,只能看到周围的几个格子或房间。这种限制可以制造紧张和挑战感,因为玩家需要依靠自己的判断和策略来探索未知区域并应对可能的危险。因此他希望将有限视野融入自己的游戏中。
他还将计划引入他在 Commodore 64 上最喜欢的另一款经典角色扮演游戏《创世纪4:圣者传奇(Ultima IV: Quest of the Avatar)》中的地表世界的元素(如类似的地理环境、城镇、任务和与 NPC 的互动等要素)融入到他正在开发的游戏中,以增添游戏的深度、探索性和丰富度。

图:《创世纪4:圣者传奇(Ultima IV: Quest of the Avatar)》画面
由于多种原因,包括当时的他就业困难、军队服役,以及游戏的规模和复杂性可能超出他当时的开发能力,这款游戏在开发过程中被暂时搁置。然而,他一直珍藏着自己十几岁时编写的这款游戏的所有相关资料,如软盘、磁带、笔记以及手工编写的机器代码打印稿等。

图:布里克修斯保存的游戏资料
他这款游戏的的大部分代码都是用一个叫做 hessmon 的机器语言监视器卡片编写的,所以他只有它的可执行机器代码。如果他当初选择使用汇编语言编写代码编程体验和效率就可以大大提高,然而,当时他并没有使用汇编语言来编写该游戏,这让他感到非常遗憾和后悔。

图:hesmon 2.0 界面
然而,他并不后悔自己的收藏爱好。正因为他喜欢收集,他至今仍然保存着与游戏相关的所有资料,这为他提供了继续完成这款游戏的机会。他保存的资料主要包括:
  • 大部分来自 1985 年 5 月的可执行机器码,但有些甚至延续到 1989年,上面有手写的注释。
  • 某个时间点上游戏所有 4K RAM 的打印内存转储。
  • 一些磁带和软盘,其中一些可以加载,但没有一个能够正常运行没有损坏的游戏。
  • 1986 年用于检查和验证机器语言代码正确性的代码清单。
  • 详尽的手写笔记、地图和其他关于游戏设计的手稿。
他决定利用 Visual Studio 来编写代码,并使用 Commodore 64 的模拟器 Vice 以及 Kick 汇编器。经过数周的书籍阅读和视频观看,他提升了在 Commodore 64 上的 6502 机器语言的编码速度。至今,他已经完成了所有代码的输入和调整,游戏的地图代码基本上已经恢复到 35 年前的原始状态。

图:该游戏研发的目前的效果
除了一些基础的加载器代码之外都是汇编代码编写。所有的代码都是他亲手输入并添加了注释的,所以这是真正的源代码,而不是简单的可执行文件。所有的原始数据都已被转换成可编辑的汇编数据文件。

图:该游戏游戏部分画面
在这款游戏中,玩家可以自由穿行在地面世界,并探索已完成的小地图。当玩家来到山洞口时,只需按下"X"键,就能进入地下城。地下城的视线有限,但目前可以自由探索,因为还未设置行动限制。想返回地面时,只需回到初始的进入地点,再按下"X"键即可。
布里克修斯的目标是在 2024 年完成这款游戏,他已经规划了一个详细的开发计划。他打算每完成一个开发阶段就发布一期更新视频,并为每个阶段设定一个主题,公布自己的修正计划,并在某些情况下寻求粉丝的建议。凭借着近 40 年的经验,他决定首先着手管理源代码,然后处理地图代码,最后修复地牢的颜色搭配。

图:该游戏地图的手稿
他找到了一种节省内存的解决方案,通过将每个墙壁空间(墙壁、敞开的门、关闭的门、秘密门)定义为单个位,而不是他最初设计的双位。游戏占用了 12K RAM,代码和数据大致各占一半。他预计经过优化,地下城的尺寸可以缩小到 64×64,这意味着地下城将只占用 4K 的 RAM。考虑到物品和怪物的存储空间,地下城甚至可以优化到 48×48 的尺寸,这将释放近 2K 的空间。
他的计划是让这款游戏能在 Vice 模拟器或实际硬件上顺利运行。同时,他还希望为游戏设定合适的分辨率以提升性能。他希望在游戏完成后至少能提供一个可供下载的版本,例如一个完整版,包含游戏盒子、手册和执行程序。
他希望以这种方式向那个年代的游戏致敬,保持他最初设计这款角色扮演电子游戏(CRPG)的初衷——简洁而质朴,而非追求如《冰城传奇(The Bard's Tale)》般的复杂设计。

有很多网友表示和布里克修斯有相似的经历。有网友表示自己 90 年代初在 DOS 系统也有很多未完成游戏代码,可惜源这些代码都丢了。有网友表示自己 10 几年前,曾经花了几个星期深入研究 SNES 上的《四狂神战记》的 SRAM 映象。还有网友表示自己虽然保留了自己当初用 C 语言写的游戏的源代码,但是当时写的代码简直不忍直视,他最终使用 Z80汇编语言重写了该游戏,现在的版本更直接、易读,更适合 8 位硬件。也有网友表示从 1987年,自己 12 岁的时候开始编写一个简单的受 Uridium 启发的游戏。在 1991 年,淘汰 Commodore 64 前几周完成了它。该游戏包含 10K 的手写 SuperMon64 机器语言代码(当时他也不知道什么是汇编器!),还有超过 32K 的 RLE 压缩级数据,因此它大约使用了 C64 内存的四分之三。利用光栅中断实现了分屏滚动,以每秒 60 帧的速度在 255 字符宽的空间站上滚动,背景星空保持静止的视差效果,以及在站点和精灵中的动画。该游戏仍然可以下载,在任何 C64 模拟器中选择NTSC 模式即可。还有网友曾经尝试修改《毁灭战士(Doom)》的关卡,用自己艺术团的同事的尖叫表情来替换游戏中的怪物。
有少数网友对布里克修斯表示质疑,由于布里克修斯表示希望 Patreon 支持者和 YouTube 社区粉丝能够给他一些支持,有些网友认为布里克修斯这么做其实就是为了圈钱。
也有很多网友对布里克修斯表示支持甚至敬佩。有网友认为人们捐赠自己喜欢的项目非常正常。布里克修斯并没有高价兜售游戏,他完成复古游戏的事迹令人振奋,人们支持自己喜欢的项目无可厚非。也有网友认为,金钱上的支持的确是一种鼓励,布里克修斯初衷绝不是为了赚钱。该网友曾经花了 20 年写一首 14 行的诗,但是写了 12 行之后,始终没有写出令自己满意的两句结尾。他认为布里克修斯的复古游戏也与此相似。每个重新出发追逐梦想的人都值得尊重。
推荐阅读:

微软亚洲研究院辟谣撤离中国转移到加拿大;京东:未来二十年提供超过100万就业岗位;Meta发布新语音生成系统|极客头条

31岁音乐家零经验转行「软件开发」,薪资翻4倍!

英特尔重磅亮相中国开源顶会,分享开源心经:开源开放、生态共赢

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存