开源天之炼狱

2021-06-11

1.

Darkeden 是一款很老的网游,推出的时间大概是 2002 年,韩国一家游戏公司研发的。然后由国内一家叫"天之图“的公司代理,游戏名改成了天之炼狱。后来这家公司倒闭了,于是也就没有了所谓的官服。

这个游戏的研发或者立项,可能在 2000 年更早以前,那个年代是一个网游刚开始兴起的年代。更早的时候能联机的游戏就是 MUD,没有图形界面,以及那个年代的单机游戏。时间到 2000 多年,才开始网游的时代出现。同期的火爆的游戏可能就像传奇,暗黑破坏神之类的。暗黑可能要更早一点,不过那个年代,游戏界面方面大概都是这种画风,或者说画质都很 low 的 2D。魔兽世界后来出现算是那个年代的吊打其它的水平了。天之炼狱在当时,算是小火爆一阵,当然影响力跟传奇比是差了数量级了。

我玩这款游戏可能还在读初中,或者刚刚升高中,算是正儿八经接触的第一款网游,其它更早接触的,都没有对游戏进行比较深入的研究。官方的天之图倒闭之后,出现了两家私服,分别叫太极和风神。再然后,两家合并了,出来了 DK2。尽管不是什么官服,由于一家独大,DK2 在那个时期有可能是这款游戏最鼎盛的时期,好像有十几个区,每个区都服务器暴满的那种,我忘记自己当时好像是七区还是多少来着。官服倒了,私服经营得比原本官服要好,很讽刺的事情,说明是代理商的锅,非游戏本身的锅。DK2 不是官服,没有韩方那边的技术支持,然后他们那伙人魔改一些内容。反正我觉得技能平衡性做得是不太好的,bug 不少,什么超狼,超导,马甲魔,烂苹果等等。不过 bug 也有 bug 的特点,就好比一代版本一代神,只能加强不能去削弱,否则玩家就弃坑了。这个版本也成了一个很经典的记忆。

经历了天图,天极风神,DK2,然后就慢慢转向没落期了。这款游戏的私服并没有像其它游戏那样雨后春笋的出现。断断续续地有一些"所谓"的代理商,一直到后来聚圣,昊嘉等等一系列的。昊嘉好像称自己是官服,这个时候是不是官服也说不清楚了,反正去问一个一直玩过来的老玩家,那应该只承认天图时代是真正意义上的官服的。倒是在没有所谓官服,也没有泛烂的私服时期,小众私服更容易赚到钱。现在嘛,游戏自然是慢慢没有了当年的味道,也是普通的无人问津的泡菜游戏。

2.

2010 年的时候,网上有人发了 dk2 的单机版,流传得比较广的版本,鬼魅炼狱,是一个打包好的客户端加虚拟机的服务器,但是源代码没有流出来。后来,我误打误撞到了程序员行业,一直都对当年这个游戏的源代码念念不忘,保持关注着。其实源代码应该泄漏了好几波,鬼魅炼狱的版本,既然有打包好的镜像,肯定是有人有源代码的。然后还有 6.67 之类的版本,再更早网上能找到一个 OpenDE 的,是一个残缺的服务端版本,我拿着代码研究了一番,但是太老了,跑不起来,也无法编译。

2012 年,在逛 RageZone 论坛发现有人把 dk2 服务端的代码放出来了,这一份服务端的代码是可以编译的,于是我在 github 创建了 opendarkeden 这个 repo,然后修复编译后放了上去。但是只有服务端,没有客户端。我试过鬼魅炼狱的客户端,但是版本不匹配。修改了封包的顺序,以及加密方式,所以用鬼魅炼狱那个版本的客户端连编译出来的服务端连不了。当时尝试了很多努力去修复,但是发现没有客户端源代码的情况下,几乎是无底洞,看不到修复的可行性。

2014 年我换工作,中间有一阵短暂的休整期,还考虑过自己去开发一款游戏的,也学习和参考过这个游戏,当然工作量太大,时间精力有限,一个人写个游戏的事情也就不了了之。再换工作最终也没有选择游戏行业,于是这一脚之差,就与游戏开发无缘了。

由于 opendarkeden 开源了服务器的代码,时不时会有人留言或者联系到我。我发现原来这个游戏在全球范围还是有不少的玩家的,不只是中国,还有巴西的,当然大本营韩国的... 开源的魅力就在于此,它可以让全世界很小众的人,能有机会在网络的某个角落相遇。

大概是 15 年的时候,有个匿名网友找到我,给了我一份据说是可以完整编译的客户端的源代码。他自己不是程序员但是希望有程序员能对这份代码做些什么有意义的贡献。可惜那个时候我的兴趣已经不在这个点上了,只是大略地扫了一下代码,这份客户端代码,应该跟 opendarkeden 的服务端的代码是不匹配的。换成我最有热情的时期,肯定会义无反顾去投入研究和修复这份代码,说不定就修复了。只能说可惜没有如果,最好的时间没有遇上最好的资源。

2020 年的时候,注意到这个游戏的私服开始好像比较多了。我到接近 21 年才发现,RageZone 又流出了一份新的代码,这一次,客户端服务源是一起放出来的,版本能对得上。我把服务器给编译出来的。然而在编译客户端,却又遇到了一点问题。这份代码太老太老了,游戏是 win xp 时代的游戏,再在 win xp 都已经退出历史舞台了。用到的编译器,库也找不到了,旧版本的STL 和 directx7 之类的。再次的遗憾,我没有编译环境能修复它。从一些迹象上看,这一份源代码像是天堂炼狱(一个私服)的某个版本,ttdk2。

直到最近,又遇到两个韩国人,他们说手上有一份代码,但是编译环境比较老,希望可以弄到比较现代的环境上编译,找我一起修复一下。客户端是 dk2th 的某个版本,跟 ttdk2 那个代码的差异性不算特别大,我们折腾了两个周末的时间之后,居然跑通了!

这是一个很有意义的事情。其实挺难搞的,因为游戏很复杂,环境也很复杂,网上泄漏的零星的代码往往都是残缺的,版本又不停在变化,没有匹配得上的客户端和服务端,就没法跑起来。而且还涉及到数据库文件,服务端的数据文件比如地图,怪物,物品掉落,NPC 之类的,客户端那边的数据文件,图片资源声音脚本等等等。这次在东拼西凑了不同的客户端,服务端,数据库,资源文件之后,终于修复到能让游戏跑起来了。

这款游戏的生命力还是非常旺盛的,20 多年的历史。如果有一份开源的代码,还有许多玩家和开发者,它就可以一直存活下去。像仙镜传说RO一类的,就有网上开源的版本。继续在这份代码之上做研发,或者追上韩国官方的版本,是一个不太靠谱的事情,靠一个人的力量是不行的。但是有一份代码可以学习和演进,说不定网上还会遇到其它感兴趣的人。眼下至少可以做的事情,比如降低门槛:

  • 提供 docker 支持,这样让 Win10 上面可以同时把客户端和服务端跑起来。
  • 提供编译好的单机版。

待修复的东西就更多了,各种编译 warning,还有很多 panic 的地方,并不稳定。还有 NPC 没加载出来,还得抽时间再看看怎么修... anyway,至少是一个可以跑起来的东西了。

3.

老实说,这个游戏虽然跟传奇差不多时代,但是我认为它的游戏性要远高于非常多的后来的游戏。游戏里面有三个种族,三个种族之间是可以直接开 PK 的,这就像后来的魔兽世界的阵营一样,杀异族没有红名机制,鼓励 PK。游戏里面最有特点的活动叫"圣战“,每个周六的时候一次,三个种族的玩家之间需要相互抢夺 13 本圣书,拥有圣书的种族会在接来来的一周有一定的加成,比如抗9,魔攻,物攻这些...所以这个就是每周一次的全服 PK。

三个种族的技能和属性成长完全不一样。先说加点,吸血鬼是自由加点的,每升一级有3个属性点,可以分配到力量,敏捷,或者智力上去,不同的属性影响不一样,比如说力量影响防御力和血量,敏捷影响回避和命中,智力对于法系会影响攻击力,也有些技能的持续时间或者施法成功率受智力影响。吸血鬼可以按不同的加点方案配置,主要是战鬼和智鬼,战鬼那边可以主加力或者主加敏,智鬼一般敏智。没有职业的限制,就是加点方案不一样决定玩法不一样。

人类这个种族是没有自由加点,由系统默认的三围成长,等级和职业的升级是分开的。通过使用不同的武器,来增加不同职业的等级。人类可以玩枪,刀,剑,这是物理系的军人和武士,或者是十字架,权杖,这是法师系的治疗,祝福。

魔灵有属性加点和职业加点,方案就更灵活了。我没有玩过其它游戏比这个的职业种族更丰富的。

种族和职业说了,然后说说技能。这个游戏里面总共有上百种不同的技能,不同的职业学习的技能都不一样。不光是攻击类,或者治疗,强化类,辅助类,或者控制类,有些是有特别的。最有特点的几个技能,比如吸血鬼的雾,这个是一个非常特别的技能,传统的网游,基本上是数值游戏。而雾这个技能的存在,使天之炼狱变得跟数值完全不一样了。吸血鬼在雾里面可以看到其它职业,而如果其它职业没有破解技能,在雾里面是看不到的,看不到就没法打了。战局一下子就复杂起来。像圣战,或者去异族堵门,就是满屏幕的雾。再比如祝福这个职业有个技能叫烂苹果,烂苹果这个技能是在一个玩家或者怪物身上释放,会对周围造成当前掉血等比例的伤害。这个等比例的伤害就挺有意思了,可以用一个一丝血的怪物,当种子,引到一群怪物里面,然后砰一下,全部秒掉。对玩家也是有效的,再强,也要小心比自己等级低很多的祝福,使用特殊的技能秒杀。有一点儿 dota 里面的技能的味道。这让平衡性特别难讲,但是可玩性特别高,就跟数值游戏的充钱是大哥太一样了。技能的多样性,对于 PK 的影响特别大。

拿团战来说,从小规模的遭遇战,到大的圣战,团战无处不在。一般来说吸血鬼的单挑能力比较高,而人类的阵地战比较强。主要原因是人类祝福的辅助,对于队友的加成特别高。上了杯子,123的战士,跟没有加状态的战士,按战斗力是完全不一样的战士。还有人类的医生的群体复活技能,死了一堆,一个技能全拉起来。吸血鬼就没有这种 1 加 1 大于 3 的效果了。魔灵种族的单兵作战也还行,拥有整个游戏中最高的法系输出职业火法,但是讲配合没有人类强,讲单兵没有吸血鬼的综合性好。还有一个致命的问题,魔灵职业只有女性形象。所以整体下来,魔灵种族的玩家一般是最少的,圣战中种族也最弱。

白天黑夜系统,游戏里面是有白天黑夜变换的,黑夜之后吸血鬼的战斗力迅速提升,夜越黑,鬼越强。比如白天一个人类玩家跟能同等级装备的吸血鬼玩家 PK 打个 6:4 开,到了晚上再打,就是 10:0 开了。

副本倒没有什么特色,跟其它网游相比很一般。而且有特定的触发时间,比如音乐副本,或者小巴。野外 boss 也有,总体上还是鼓励 PK,打到一半,其它种族过来抢。

其它的就不说了,可以这么说吧,传奇里面有的游戏,这个游戏都是包舍了的,而且丰富得多。就说说代码量,服务器的代码量有 60w 行以上,这是一个相当恐怖的规模了,足以说明游戏的丰富性。

如果想体验一下游戏,可以看一下有些私服,或者是等我把单机版本搞好哈。如果是想研究代码的,直接来提 pr 或者 issue 吧。

darkeden

HNS.to is a highly insecure way of browsing Handshake domains and should only be used for demo or educational purposes. Click to see preferable resolutions methods