BDXKEngine

我在试图自己开发一个游戏引擎,当然纯造轮子玩的那种。
如果你有Unity的使用经验,入门将会非常轻松,因为我大多地方都是通过模仿Unity编写的。
但实际上我并未看过Unity源码,所以只能靠对Unity表层做实验抠字眼外加一点灵感,来得到编写思路。
既然没法得到Unity的源码,那我就自己做一款假的,这就是我最初的想法。
开发进展演示:https://space.bilibili.com/35949109/channel/collectiondetail?sid=556316

关于该引擎的说明

  • 目前并不是一个跨平台引擎,仅支持Windows平台,且有特定的编译要求。
  • 本质上是一个库而非应用程序,由源文件和静态库组成,Editor部分会额外使用一些资源文件。
  • 分为Engine和Editor两部分。Editor是基于Engine实现的扩展库,在打包正式游戏时可以去除。
  • 一切引擎功能的开发都优先实现效果,而非性能优化。所以请将这一切都看作demo,仅供参考。

如何安装引擎

前置要求

  • 安装了Visutal Studio
  • 安装了Visutal Studio工作负载 使用C++的桌面开发
  • 安装了Visutal Studio单个组件 适用于最新生成工具的 C++ ATL
  • 安装了CMake并已将路径添加至系统环境变量

开始配置

  1. 创建一个空文件,并重命名为你的项目名,下文称该文件夹为项目文件夹
  2. 打开命令提示符cd到项目文件夹并使用cmake命令构建本库中的Core文件夹。
  3. 构建完成后,项目将自动配置在项目文件夹中。
@REM 基于命令提示符的实现示例,详见Project/HelloWorld.bat文件
mkdir HelloWorld
cd HelloWorld
cmake ../../Core

如何导出游戏

  1. 排除掉Core/include/BDXKEditor文件夹,该文件夹内的文件此时请不要使用也不要编译。
  2. 新建一个游戏文件夹,用于存放导出的文件。
  3. 重新运行项目并将新生成的程序和项目目录下的Resources文件夹放到上文的游戏文件夹内。
  4. 此时你的游戏已导出到游戏文件夹中,运行游戏文件夹中的程序,以此测试你是否成功导出。


关于开发BDXKEngine

开发范围:

软件之内,标准之上。

开发规则:

1. 不要造标准库的轮子

能用C++标准库就用标准库

2. 不要造行业标准的轮子

举例:

  • 与硬件交互,如图形,声音,设备输入输出
  • 与操作系统交互,如窗口,COM组件
  • 标准数据的读写交换,如fbx,json,http

3. 允许使用一些主流第三方库

举例:

  • imgui及其常见扩展库

4. 第三方库除了以上情况一律禁用

外部依赖:

详见bin和include文件夹