近中期3D编程研究目标

近几年一直在用业余时间研究3D编程,研究的中期目标是建立一个实用的开源3D编程框架。3D编程技术最直接的应用是开发游戏,所以3D编程框架也就是3D游戏开发框架。在我看来,游戏是否好玩的关键是能否为玩家提供足够的“丰富度”,一个好的游戏应该是一个随着玩家的行为不断揭示新内容的世界。
然而相对于早期的经典游戏,当代游戏在丰富度上的表现总是不能让玩家完全满意。以策略类游戏英雄无敌为例,在最为经典的3代作品中玩家可以在12个各具特色的种族间自由选择,在尚算佳作的4代中玩家可以选择8个种族,5代6个种族,6代、7代则更少(选择额外种族需要购买DLC)。以此为代表,当代的策略类游戏大多只有3-4个势力可供免费选择,玩家们感到游戏的画面越来越精致,但游戏的内容却越来越少。
事实上,画面的进步正是游戏丰富度下降的重要原因,更好的画面要求更多的单位细节,而更多的单位细节意味着更多的开发时间和经费,在总成本不变的情况下,商业游戏开发者只能通过减少单位种类来平衡成本。讽刺的是由于硬件设备和玩家接受能力的限制,牺牲游戏丰富性所换来的单位细节往往不能被完全发挥。
厂商们也在尝试各种变通的方式增加游戏的丰富度,比如使用随机生成的地图和具有自主能力的AI为玩家提供新鲜感;比如为玩家提供基础建筑元素,由玩家按照自己的意愿建造场景;比如将游戏的重心放在玩家的联机互动上,用人类的不确定性弥补游戏丰富性的不足。
某种程度上,这些替代方案取得了成功,为厂商节约了大笔的设计经费。但是这种由计算机随机产生或由玩家不确定性产生的丰富度并不能作为游戏本身的内涵,缺少“核心丰富度”的游戏难以在创作者和玩家之间产生连接,并生成牢固的游戏文化。
商业化游戏的另一个问题是过度的重复开发,由于人择原理的作用,每个游戏公司的小世界都需要包含最基础的“魔化野狼”、“强盗头领”之类大众单位,这些小世界的相互隔离导致每个开发团队都必须重复前人已经进行过的开发,这一点大大增加了独立游戏开发的难度。同时并存的多个小世界也会给玩家造成认知上的矛盾,比如玩过魔兽世界的玩家会疑惑“暗夜精灵”究竟应该住在森林里还是住在地底世界,又比如玩王者荣耀的玩家会很困惑荆轲到底是男是女。
在我看来,相比于分裂的商业化开发,开源精神能够为创造具有足够丰富性的游戏世界提供一种根本的解决方案。可以建立一个保存各种游戏单位的图片、模型、声音、动画、文本、数值信息的开源单位数据库。对各种大量重复的单位提供一个基于投票的最优解决方案,对具有分歧的单位则保存不同的副本设计,开发者可以选取其中的一部分数据作为自己的单位数据库支持自己的游戏开发。
建立这样的数据库一方面可以降低中小型开发团队和独立开发者的开发成本,另一方面可以借助开源的力量构建出单一厂商所无力承担的超大型游戏世界(比如仙侠小说中数量惊人的材料、法宝设定)。
要建立一个这样的开源数据库需要两方面的准备,一是要编制一系列零基础的Web*数据库教程,让更多非专业编程者参与进来;另一方面则要全面的了解主流的游戏开发模式,设计出足够实用的数据结构。
如无意外,六个月到一年的时间可以完成这两方面的准备,愿世界和平,留给我足够的时间。