由于最近游戏引擎社区内发生太多匪夷所思的事件了,所以我决定重新回到 C++ 编程并尝试开发属于自己的游戏引擎。开发此项目的目的并不是为了取代我现在正在使用的引擎,而是为了能达到科技的自主权。谁知道接下来又会是哪个引擎入坑?
项目名称方面,就暂时称它为“Kemena 3D”吧。我是以我办公楼旁边的河流来命名这款游戏引擎的,因为我认为游戏引擎是用来构建虚拟世界的,所以跟大自然有关系的名字很适合用在游戏引擎上。
开发前期我会比较专注在引擎的框架(framework)。一旦框架成型,我将会使用该框架来继续开发关卡编辑器。目前引擎底层所使用的渲染器是基于 OpenGL 4.5 来构建的。你可能会问,为什么不使用 Vulkan 呢?其实我最初也尝试过 Vulkan,但我发现它仍处在积极的开发阶段,就连非常小的更新都会出现很多更改和变化,及其的不稳定。我并没有足够的资源和时间来这么折腾我自己。所以我暂时会使用 OpenGL 来开发这款引擎,直到它能被使用在真正的游戏项目为止。至于其他的事,以后再看怎么样。
在空闲之余敲了一堆代码之后,我目前已经完成了游戏框架的好几个关键功能,包括:
- 基本场景图
- FBX 网格加载(目前还不支持动画)
- 各种类型的照明(方向灯、点灯和聚光灯)
- 集成 AngelScript(还没链接任何函数)
- 使用 SDL 2 构建的基本输入系统
我发现随着引擎框架一步一步的被构建起来,增加新功能变得越来越容易。只要基础结构一步步的到位,我就能很快的把需要构建的新功能加装在这些基础结构之上,而不需要一直从底层写起。
其实这并不是我第一次尝试开发游戏引擎。早在 2012 年,我就开发过类似的东西,尽管当时我所做的更像是一个简单的关卡编辑器而不是一个完整的游戏引擎。不幸的是,我没有完成那个项目。主要原因是我并没有赢得我所参加的比赛,所以没有资金用于进一步的开发当时参加比赛的那款游戏以及用来制作游戏的编织器。再后来我找到了我在游戏业的第一份工作,所以就更加不得已的把它搁置在了一旁,慢慢的被遗忘。
好吧,今天就写到这里。如有任何更新我会第一时间在这里向大家汇报。