« 给大家做个交代吧 | 返回首页 | 分布式的版本控制工具 »

周末过了两天黑白颠倒的日子

都是游戏给害的。

一开始迷上 Puzzle Quest ,装了个 PSP 版玩,一发不可收拾。初看起来就是一个 Bejeweled (钻石迷情) 的改版,很多手机上都装的小游戏,我见过许多 mm 喜欢玩。但是这次人家硬是做了极大的创新,变成了一个 RPG 。

职业、魔法、任务、升级、打怪、抓宠、合成装备,一个都没少。甚至战斗起来比大部分粗制滥造的网游有趣多了。消除方块也变的有意义,不再是比谁消的快,而是给不同的方块赋予了四系魔力、经验、金钱、攻击等不同含义。在对战的环境下,可以发挥更多的策略。与传统 RPG 不同,在 Puzzle Quest 里低等级玩家打败高等级玩家也是有可能的,即使级别相差很大而 RP/技术 足够好的话,总能有一丝胜利的希望。

把方块游戏玩出这种花样来,就不简单的等同于 PUZ+RPG 的组合了。相比我这几年经常听到的,“让我们把 XXX 类型 和 RPG 结合起来放到网游中”,“在 MMORPG 中加几个小游戏吧”,这才是真正的创新。而为啥我们的策划就如此没想象力呢?

好吧,没想象力就没想象力,退一步那就抄去吧。其实这个游戏抄到任何一个休闲游戏平台上都是绝对大作了。鉴于它拥有无数 RPG 元素,可以做角色培养,应该是很好赚钱的呢。:)

就这样,我用 Puzzle Quest 打发了周五的夜晚,一直睡到周六下午。


给同事推荐 Puzzle Quest 的同时,也有人给我推荐了 PSP 上新出的《勇者别嚣张》。从画面初看起来就是一个简化版的《地下城守护者》,但玩起来感觉却不太一样,只能说游戏目的类似吧:扮演魔王驱使怪物杀掉来进犯的勇者。

《勇者别嚣张》是全日文的,还尽是假名。(其实学过几天日语的人就该知道,其实片假名的词大多数就是对英文单词的音译,花两天时间背一下,外加日语中大量出现的汉字,玩日文游戏其实没多少语言障碍。)不要被菜单和游戏对白吓到。其实这个游戏的操作极其简单,就是方向键加一个挖掘键便可以玩了。

在今天,游戏/软件菜单越来越复杂的今天,我们这些游戏制作人应该好好反思了。复杂的游戏规则应该隐藏在背后,交给玩家用户的应该是最简单的交互接口。

这个游戏也非常耐玩,我周末打了一天,到第八关那个金色的勇士冲起来后就抗不住了。这激起我无比的好胜心,计划在下个周末通关。


《勇者别嚣张》的画面非常复古,不仅是基于 2d 平面 Tile 的,精灵的形象也是极其简陋的像素图。那个主角魔王的造型,立马让我联想到 FC 上的最终幻想一。勇者则是经典的 DQ 里的风格。

这个画风让我想起前些年有朋友推荐我玩的 NetHack 。一个发展了 20 多年,在今天仍旧在向我们展示 Ascii Art 的游戏。

当时我正着迷于《不可思议的迷宫》,有朋友建议我看看 NetHack 。NetHack 的前身是 rogue ,rogue 在《Unix 编程艺术》上也提到过,就是一个迷宫探险游戏。这个游戏影响之深远,以至于大量使用键盘热键交互控制的 console 软件都被称之为 roguelike 。

《不可思议的迷宫》应该就是这类游戏的直系后代。另外一些著名的游戏,如《Diablo》应该也算远亲,不过 Diablo 的自动生成迷宫表现的就远没它的祖先好了。

当年我没太把 NetHack 玩进去,今天心血来潮又当了一个试试。其实我的主要目的是想读一下源码,看看它如何自动生成随机迷宫和迷题的。这些代码早在 1985 年就成型了,还是很古老的 C 语言风格。但是设计人员的想象力却不比今人差。今天还有多少游戏程序员把心思放在“如何随机生成更好玩的迷宫”这样的题目上?

可惜 NetHack 的源码写的时候没考虑过支持中文,它的底层 API 是硬把字符一个字节一个字节写到 console 屏幕上的。中文一个需要两个字节,自然就不能正确显示了。

不支持中文可能是这个游戏一直没有爱好者去汉化的原因之一。另一个原因是其中有数以十万字的英文文本,用到大量普通字典也查不到的奇幻小说中才会出现的名词或缩写,工作量太大吧。

我试着做了下程序上的汉字支持,第一步是让其可以显示汉字出来。这里用了个 work around 的方法,因为字符串显示肯定是依次调用 xputc_core 函数。我在函数里检测字符的 ascii 值,一旦大于 128 就记录下来暂时不于显示。等下一次调用时,把两个字符连接起来一次调用 write console 的 api 。

第二步是做字符串替换。因为游戏逻辑都直接写到了源文件里,或是用一些代码生成数据。所以许多地方做一下字符串的汉化即可。我原本想把一些不熟悉的名词替换成汉字以便自己游戏时不用再查字典。后来发现,NetHack 里大量使用自生成代码,有的串该成非字母后会不太正常。这个时候就需要改些代码了,不过也不算太麻烦,毕竟人家程序写的很清晰,注释也很详细。

还有一些地方会成字符串中提取字母做游戏里用到的热键,直接换成汉字,游戏中就激活不了热键了。最终我保留了英文字符串,在数据结构中增加了中文字符串的字段,修改源码,让其在显示的时候调用中文信息。开源还真是个好东西啊!:D


不过以上也只是一些业余爱好,我已不是学生时代的我。那个时候有大量闲余时间做这些。

对 NetHack 有兴趣,并想继续汉化的朋友可以和我联系。我可以私下讲述一下自己对 NetHack 源码的理解,和做汉化的思路,节省汉化爱好者们的时间。

btw, 假如能把 NetHack 套上一个现代游戏的漂亮外壳,并修改操作方式让其适应现代玩家,我想它依旧拥有万人迷的魅力。

Comments

Puzzle Quest现在被抄了,搬到webgame上了,叫晶石传说
好牛啊,听着都入迷了,看来云风的水平没有几个人能敌了
中文nethack, 很有趣。 I couldn't really get interested in nethack, but if it helped me learn Chinese characters, it would be really cool. Plus you could use characters like 上 and 下 for up/down stairs, 人 for people, all sorts of cool things.
做为一名策划,也很想把这些家用机游戏的理念融合到网络游戏里去.可惜挚肘的因素太多 ~~比如是操作方式,举个例子:半即时的RPG用手柄玩很舒服,但在PC上,就需要动脑子了,否则只会让玩家觉得手忙脚乱,完全没有操作的快感. 话说回来,策划最大的敌人是时间和老板~~只能等厚积薄发的机会了~
建议玩玩PALAPON,2D版MHP,个人觉得是PSP上最有意思的游戏,一只手都可以玩:)
psp最近出了很多好游戏啊, 比如啪嗒彭,很另类的音乐游戏。用节拍控制角色战斗的。
Puzzle Quest相当不错,我玩的是pc版。
云疯,你开始堕落了,我会继续关注你的表演。
云风开始玩nethack了啊,有空我们交流一下。我玩了好长时间这个游戏,通关过一次不过作弊了(load/save)。nethack的bone file这个设计当时玩的时候觉得特别有趣,很有mmorpg的感觉...
nethack 好玩,既不在画面,自然也不在程序实现,甚至因为交互界面观念的落后,操作也远远跟不上时代。 作为一个“制作者把一切都考虑到了”的游戏,重写是需要有很大的精力的。 上下楼用大于号小于号。
不如你把nethacker重写一下了,另外,觉得汉化的意义,不如写个更好的随机生成迷宫的算法更有意思。
用gnome-nethack玩,不知道怎么上(下?)楼梯,囧
看着就入迷!

Post a comment

非这个主题相关的留言请到:留言本