骑马与砍杀2:霸主 开发日志 ——界面编辑器

ddc5004bddf6691ad45579a46e3d21d12f7d2be3.jpg
 
翻译:贤狼赫萝@骑马与砍杀中文站
 
卡拉迪亚的战士们,大家好!
 
游戏开发可能会是一件棘手的事情。有的时候现有的技术或者工具并不能完全按照做到你想要的地步,或者没有你想象那样有效率。这就让你做出艰难的选择:改变你的设计或者自己定制一个解决方案。
 
这是我们在处理霸主的用户界面(UI)时意识到的问题。之前,我们把Flash和Scaleform结合起来创建自己的UI,这是游戏界里很常见的方法。我们先用Flash创建UI,然后用Scaleform让UI在游戏里运行。技术上来说,Scaleform和Flash的运行都很好,并让我们能够去通过喜好来应用UI。然而在之后不久,我们在创建和利用UI的时候发现了一些问题。
 
首先,这个制作过程非常缓慢。在放到游戏上测试之前,任何UI的的更改都需要在Flash上操作。随着界面变得复杂, .swf文件生成时间就会更长。然后我们每次做的更改都需要重新加载才能看到结果。即便是个小的改动,也需要把一个东西向左移动5位,这也需要很漫长的过程。
 
此外,Scaleform和Flash都是我们不能有效控制的第三方框架。由于需求而去更换和修改所造成的困难,让我们开始怀疑我们做的这些努力是不是值得。
 
最终,我们意识到我们在UI上花费的时间和精力确实拖了我们的后腿,而能拥有符合我们自己所要的游戏UI就是创建我们自己的UI库。毕竟,一些困难实际上是机会伪装起来的!
 
这是一个可怕的前景,因为我们在现有的UI中花了上千小时。幸运的是,在开发过程的早期我们就决定用一个叫MVVM的框架创建UI。这意味着我们部分代码会是简洁的C#而不需要依赖某个特定的UI库,而我们可以把这部分代码重新利用起来,即便我们我们也需要重新做这部分工作。耶!
 
接下来,我们决定了我们的新UI库是什么样子,我们提出了以下需求:
 
·新的库必须快速而且灵活,我们的引擎团队很努力地去削减旋绕周期的每一毫秒,他们也不希望在UI上浪费太多时间而没办法去优化配置。
 
·新的库也能简易运行并在运行中更改。它能有先使用文本基础的格式,比如xml,因为文本基础能让多个开发人员能更简单地合作。
 
·系统必须简易以便制造互动性更高的UI。
 
·UI布局必须独立于外观。这能让UI设计师和美工能独立工作。
 
我们决定命名我们的新UI框架叫Gauntlet【护手,臂铠】(没别的原因,也就是听起来很酷!)。有了Gauntlet,我们能即时进行更改,也就是在不关闭游戏的情况下编辑界面,不需要生成文件或者额外的步骤。当我们用xml文件更改界面时,我们能通过保存文件来看到结果。而且因为我们可以完全控制系统,我们就能根据需求对系统进行更改。
 
那这个东西是怎么运作的呢?这个系统实际上很简单。我们把xml合并到游戏界面里,当游戏加载的时候这个界面就会打开。界面的所有信息布局都指定在这个文件里。我们还能在每个xml之间引用其他xml,这意味着如果我们创建了可以多次使用的UI元素(能用在其他界面里),我们就直接引用这个元素。这能让我们能随意更改文件,并能在这类xml引用的时候直接发生变化。
 
我们也有一套独立的xml文件来指定不同元素的外观,就像html页面中的css文件。这种外观系统非常强大,美工可以轻松指定某个UI元素的外观和运行细节。比如说,当玩家把鼠标放在一个按钮上时,按钮就会变色,点击的时候就能播放一段动画。(也就是说UI做好了就能有绚丽的效果)
 
blog_post_61_taleworldswebsite_02.jpg
库存的xml代码
 
 
blog_post_61_taleworldswebsite_03.jpg
显示在游戏中的库存
 
我们希望Gauntlet系统能受到mod团体的欢迎。在战团,UI编辑一直是一件头疼的事情,而且总会有一些限制无法解决。有了Gauntlet系统,mod制作者就能完全掌控每个界面,唯一的限制就是他们的想象力
 
下一周,我们就会和设计助理Cihan Şekercioğlu谈话。如果你有什么问题想问他,请在下面留言,我们会选择一个问题来对他进行问答。

相关新闻