16.12.2016

开发者日记:Lords of Discord 的开发历程 (#2)

加里宁格勒的公司 HeroCraft 继续与 App2Top 分享关于他们如何在失去著名品牌 Disciples 的许可证后,仍然致力于游戏 Lords of Discord(混乱之王)的故事。

dnevniki-razrabotchikov-istoriya-razrabotki-lords-of-discord

正如我们在 上一篇文章 中所述,基于 Disciples 品牌的游戏开发始于五年前。游戏经过漫长的过程,终于在 App Store 中上线(现在已在 Google Play 上开放测试中)。本文将讨论该项目的软件组成部分。

引擎

为了在 iOS 和 Android 上开发游戏,我们选择了跨平台的 SDK Marmalade。作为图形引擎,我们采用了 Ogre 3D——它负责构建三维场景。

image01

Lords of Discord 游戏中的 3D 场景示例

image03

Lords of Discord 游戏中的 3D 场景示例

为什么选择这两个引擎,而不是说 Unity 呢?

首先,与 Unity 不同,Ogre 是开源的,这使得程序员可以自由发挥。我们在 Ogre 中扩展了对纹理压缩格式的支持,这提高了性能。

其次,Ogre 提供了底层功能:可以在所有阶段控制绘制过程——从摆放 3D 模型到处理输出的三角形,并编写顶点和片段着色器(顺便提一下,观察到在某些显卡上,着色器的表现怪异,甚至可能动摇物质主义的世界观)。

Ogre 拥有相当活跃的社区:许多开发者在使用它,论坛上也容易找到问题的答案。而且它是免费的。更重要的是,这一切发生在五年前。

游戏的服务器部分是在公司内部开发的:游戏使用与其他 HeroCraft 游戏相同的游戏服务器。

大量的时间花在为游戏开发资源编辑器上,而并非游戏本身。虽然最初考虑使用现有的某些 3D 编辑器,以便扩展其功能(例如 3D Max 或 Blender),但很快就发现其提供的灵活性不足。由于任务主要是专业性的,我们意识到自己编写编辑器将更加高效。

现在我们的自定义编辑器允许绘制关卡的地形,安置角色,设置动画,编辑高度图和可通过性地图。

image07

Lords of Discord 编辑器的屏幕截图

image00

Lords of Discord 编辑器的屏幕截图

image04

Lords of Discord 编辑器的屏幕截图

在任何大型项目中,我们都会引入第三方库来补充缺失的功能:GUI、声音系统或粒子系统。尽管这大大加快了开发速度,但对于部分选择我们至今仍感到后悔,然而已无退路。

放弃了什么

回顾一下:在 Disciples 中,玩家拥有城堡和军队,可以在地图上移动,解锁新领土。敌方建筑可以并且需要被占领并变为己有。也会遇到孤立的敌人,玩家与其进行战斗。敌人也同样在行动:在地图上移动,攻击玩家的建筑和军队,占领土地。

当我们失去对 Disciples 的许可证时,除了其他方面,我们还决定改变游戏的概念,因此也不得不去掉一部分代码。很多内容被重新审视,很多想法被推翻。由此,产生了我们的一个地方玩笑:当项目的程序员与游戏设计师沟通时,三个人的脸上都洋溢着一种被称为“混乱面孔”的表情。

例如,我们放弃了漂亮的地形变形,即将被占领的地形重新涂成占领种族的颜色。

image06

地形变形的示例

image02

地形变形的示例

我们还不得不放弃对敌军队的 AI 控制,因为这也违背了新的概念。对敌方建筑的占领方式也进行了修改——这些也被决定去掉。

复杂而有趣的任务

在开发地形和树木绘制系统时,程序员们尝试了很多不同的方案。在思考如何绘制地形的过程中,我们在选择预先制作的 3D 模型和具有特定拼接机制的瓷砖地形之间犹豫。最终选定了一种混合方法,包括具有可变细节的多边形网格、通用颜色地图、可混合的细节纹理和附加的 3D 对象。

在绘制树木方面,程序员和 3D 建模师尝试了超过十种不同的算法,以寻找最美观和高效的方案。最终选择的方法能够绘制灌木和树木,并描绘它们在风中的摇曳。顺便提一下,在研究树木的过程中,我们得出结论,制作松树更为理想:它们结构简单,绘制速度更快。这段代码的一部分是在“加里宁格勒-莫斯科”列车的硬卧车厢中编写的,当时一名程序员正看着无尽的白俄罗斯雪林。

image05

Lords of Discord 游戏中的松树

image08

Lords of Discord 游戏中的松树

大量时间用于连接各种广告和分析 SDK,最终选择由我们的经理和分析师决定。由于我们使用的是 Marmalade,因此有些还需特别适配。

结论

尽管 Marmalade SDK 的开发者计划停止支持它,我们仍然准备自己进行必要的更改。团队对游戏的未来发展有很多规划:引入公会系统、新种族,以及同步在线战斗。

在撰写本文期间,区域内的电力两次中断,且 Skype 服务器也曾掉线,但没有一棵树木受到伤害。

评论
写评论...
Related news