游戏

最近处于窗口期,抽空看了点游戏引擎和游戏开发相关的资料。

在琢磨游戏行业是否像互联网行业(这里可以特指电商)一样,进入了一个技术成熟期,大部分从业者基于成熟的组件、按成熟的套路做一些逻辑开发,剩下的留给管理,行业客观上已经低端化了。想看看游戏行业在架构方法、开发模式、发展方向上有没有什么可以启发的。

还没想通,隐约觉得有些类似,区别在于大型游戏一般是绑定在某个私有引擎之上,互联网技术是基于许多开源组件,没有严重的捆绑。另外如电商系统的开发,不论团队还是系统,天然是服务化和分布式的,这种开发模式是否适用于大型游戏的开发?不太了解大型游戏的实际开发过程,粗想没问题,无非是个模块划分的问题。

我好奇的是:一个成熟的工业级的游戏引擎本身(而非其上的游戏)是否可以按互联网公司的做事套路,拉一个大规模的团队,做好顶层设计,拆分成一堆独立的小组,依靠执行力,在一到两年的时间里,完成一个功能完备可用、有竞争力的产品。

我实际好奇的是:互联网公司的开发套路,对于一个技术含量很高的产品,是否也可行?例如,是否能通过将系统拆分成数百个模块,配备几十个团队,一两千人,在一定周期内,复刻一个UE出来?我们可以假设每个单点Feature都有团队负责且能够攻克(不用原创,仅实现),也假设引擎的Kernel部分和整体架构有能力搭建,在这个基础之上,是否能将其拆分成可以规模化的劳动密集型的工作。

打算一边写些代码了解引擎整体架构,一边想问题的答案。白天顺着这个思路想,打算初期就按服务化方式写起:

  • 最核心的是3D数据对象的数据结构和API,算是Model。
  • 渲染服务用C++写,仅做Rendering,基本是个只读的进程,不会更新Model,算是个View。用Blender的话说,是一个”struct visualizer“。
  • 游戏逻辑和场景对象更新包括EditorUI用Electron试试看,算是Controller,这里的UI还算不上是View。
  • Controller和View之间通过网络交互,可能对象多了以后性能是个问题,不过允许逻辑分布在不同节点,有会有很多其他可能性。这是不是网游的思路?有没有游戏引擎是按网游的思路设计的,例如支持多人协作编辑大规模场景会不会更友好。(育碧的scalar似乎在探索这个方向

另,发现MVC是个很天然的模式,其实不需要谁来提出。

Leave a Reply

Your email address will not be published. Required fields are marked *