剑侠 The Swordsman

剑侠 The Swordsman

我的Ludum Dare #30 作品。

Ludam Dare游戏连接:Ludum Dare 30

U77游戏连接:剑侠,The Swordsman

Kongregate游戏连接:Play The Swordman on Kongregate


此次的主题是Connected Worlds。说实话,公布主题的时候算是让我措手不及。因为最近几天的一些温(da)习(you)功(xi)课(ji)都是为Platformer和Topdown的动作类游戏准备的。例如Steam上的《废土之王》,这一周我玩得很疯,哦不,研究得很透彻。

在磨磨蹭蹭犹豫了一个小时之后,横竖一想,既然之前想做动作类游戏,就不管什么主题了,先做出来再说。于是第一天就用来做打斗的机制。



编程 Coding

在Ludum Dare #30之前我曾经参加过两次Game Jam。每次都有一种在写垃圾代码的感觉,因为以前实习的前辈老师建议在做Demo的时候不用考虑代码的复用性,最重要是快速实现功能。但这次我尝试了另外一种的方式——尽力按照之前所总结的Object Model结构,即如何在Unity中实现MVC模式?,加上一个自己还在不断打磨的行为树框架来进行开发,力求代码清晰优美和可复用。在打斗机制的开发上,这次尝试是挺成功的。虽然战斗逻辑不算复杂,但代码的整体结构很清爽,而且具备不错的可拓展性。


美术 Art

第一天的程序开发是从星期六早上10点开始的。直到下午5点,实现了打斗的框架和大部分机制,才开始美术方面的开发。艺术上我没有太多的天分,当年考建筑系在画画的测试被刷了下来就是最好的佐证。但是Ludum Dare要求开发者必须单独完成所用开发工作,所以只能硬着头皮上了。

俗话说,像素画是独立游戏最好的朋友。这一点也没错,随便点一点,就成了“有风格,够复古”的艺术。

画画和写代码一样,都是要多做多练才能掌握的技能。这次美术上遇到的困难,主要在特效方面。这次我没有采用粒子系统来做特效,而是选择纯手绘的帧动画,因为它能带来更多的个性。然而,我高估了自己的能力和低估了绘制的难度——开着绘画软件根本下不了手。另一句俗话说得好,熟玩游戏三百款,不会创作也会偷。照着之前记下的精美的像素游戏,粗劣地模仿起来,效果也不错。


声音 Sound

我对做声音,包括背景音乐和音效,都惭愧地一概不通。不过幸运的是,不像美术这么直接当面的接触,声音对于玩家的影响更像是润物细无声,而且绝大多数玩家和我一样,没有音乐底子——也就是说,大多数玩家在游戏的过程只能分辨出音乐On,Off,Loud,or Not,Fast,Slow这些基本的属性(来源请求)。所以我斗胆做个总结:对于Game Jam,声音,没有的话不行,但是也不用力求完美。

本着这个不成熟的想法,我上网找音乐生成器,音效生成器,居然也能找出不少有趣的软件!

最奇葩的算是这个Fake Music Generator,只要按一个按钮,就能自动生成一个专辑,有七八首音乐。不过它生成的音乐大多数都一类风格,和我的游戏的主题不相符,所以最终没用它。



游戏设计 Game Design

上面说到,虽然做完了打斗的机制,但是整个游戏还没有一个整体的骨架,就像拿着篮球在球场练习投篮,但远远算不上打比赛。其实游戏大概的流程我是心中有数的,这类型的打斗游戏,不是横版过关,就是对战,还有最近新兴的塔防(不是严格的塔防,而是指怪物一波一波来的形式)。

但是由于横版过关需要很多的美术工作和关卡设计,这两者都是我的短板,这个方案弃而不用;对战需要对AI有很精确的拿捏,聪明了就不好玩,笨了又显得无聊,而且不同人有不同的游戏水平。因此在没有大范围测试的情况下,对战不是一个好选择。于是乎,就选择了塔防的形式。

然而,纯粹无理由的砍人和被砍很难将游戏变得有内涵,除非做得很出彩,不然在独立游戏这个圈子里,因该是会被嫌弃的?于是在开发的第二天晚上,也就是最后一个晚上,就和女朋友讨论应该如何设计剧情,如何让游戏独特。最后我们确定了一个剧情:

一个因故盲眼的剑客心灰意冷,回到曾经兴盛过后来却败落的故居(家道中落和盲眼有关?)。这时候早已耳有所闻的仇家都赶来要向盲眼的剑客报仇。一战败落的剑客摔倒在地,不省人事。等他睁开双眼,却发现已成游魂。游魂回到故居里,望着家里物非人非的景象,惆怅不已。忽然间,墙的另一面冲出来一团杀气。竟是..黑无常。剑客游魂已经没有退路,是让过往的光辉尘封在历史当中,还是再杀出更加灿烂的血花?没有人知道答案...

最艰难之处 The Difficulty

可以说大部分的开发过程都是愉快的,唯一让我真正感到艰难,甚至难受的,是故事的编程。真正开发来说,游戏的剧情是用专门开发出来的脚本系统来写的,但我没有接触过,只能用C#艰难地编写。C#的Coroutine在写这种比较线性事件是不错的选择,但是我仍然觉得写出来的代码过于”底层“。以后如果有机会,要往脚本这方面看看。



总结 Conclusion

这次的Game Jam有不少新的尝试,在编程方式上,在游戏类型上,在声音制作上。但是也暴露了很多不足,在美术上缺乏练习,导致大量时间花在场景设计上和特效绘制上;游戏机制创新不足,说明对游戏设计的思考,平时灵感的收集没有做到位。

但无论如何,Game Jam总是有趣的,因为努力一段时间之后,可以和全世界分享自己的成果。



工具 Tools

游戏引擎: Unity3d + 2d Toolkit

美术:Pixen + Photoshop

声音:cfxr + Otomata



游戏提示 Tips

  1. 游戏的一些内容需要剑客被杀掉,如果你太厉害了,尝试一下自杀...
  2. 操作
    1. 移动:WASD
    2. 闪避:双击移动键
    3. 鼠标:控制剑的方向
    4. 鼠标左键:攻击


特别鸣谢:@卢泳霖 大人,谢谢你的包容,谢谢你熬的汤,谢谢你的测试,谢谢你的建议。



------------------Update------------------

评论 Comments

昨天游戏做完,到今天为止就收到了不少评论和建议。最主要的围绕在以下几个方面:

  1. 在某些点不知如何进行游戏。因为《剑侠》在游戏进行的过程之中需要走到特定的地点来触发剧情,所以需要有相应的提示。这一点在开发的时候没有注意到。
  2. 生命值的提示。这一点也有几个朋友提到。
  3. 更多的技能。这点在前两天开发的时候的确无能为力,因为时间不够...不过我本身是有设计以下几个,不知合适不合适:
    1. 敌人出暗器(远程),可以被主角打飞
    2. 近战中敌我同时出招的话会产生格挡
    3. 敌人也可以闪避
  4. 看对话时经常忘了按鼠标。

所以说,有大家的一起试玩测试,的确能发现漏洞,让游戏更好。

编辑于 2014-10-15

文章被以下专栏收录