游戏引擎Flax Engine源码分析(一)综述

 2021SC@SDUSC


 一、概述

        第一篇综述主要介绍我们分析的项目和一些暂定的分工。这个过程将通过项目网站和项目部署的过程进行。 

        Flax Engine是一款开源的轻量级游戏引擎,跨平台支持(Windows、Linux、Android、PS4.Switch、Xbox One、Xbox Series X/S、UWP...),是由游戏开发者为游戏开发者制作的一整套游戏开发工具。

        网站地址:

 Flax - Flax Engine

        Flax Engine前身是由波兰的Wojtek Figat作为首席开发人员开发的Celelej,目前已更新到Flax1.2版本。Flax1.0于2020年底推出同时开放源代码,有关引擎开发过程的更多内容可到官方网站上自行查看开发博客。


 二、软件

         因下载安装Flax Launcher的过程较为简单,不再赘述,以下是安装好后的软件截图:

        仅下载Launcher App是无法进行游戏开发的,需要在客户端的Engine界面下载对应版本的Flax Engine。 

 编辑器Editor:


三、项目部署

        接下来将介绍项目源码部署过程 。

        首先登陆Flax官网,点击GET STARTED NOW:

 

         进入下载页面,该页面最底部即该项目源码地址,也可点击此处进入GitHub

         下图是项目所在,我们现在主要关注源代码部分:

        点击FlaxEngine进入:  

         我们首先看它的README部分,它一般会介绍项目部署的方法和一些注意事项。因此,我们在其中看到了Windows系统下部署该项目的方法:

用于 Visual Studio 的 Flax 插件

Flax Visual Studio 扩展提供更好的编程工作流、C# 脚本调试功能,并允许附加到正在运行的引擎实例以调试 C# 源代码。我们可以直接使用Visual Studio搜索该插件安装。

Windows

  • 安装 Visual Studio 2015 或更新版本
  • 安装 Windows 8.1 SDK 或更新版本
  • 安装 Microsoft Visual C++ 2015 v140 工具集或更新版本(下载安装Visual Studio的过程不在该博客阐述)
  • 克隆源码(使用 LFS)
  • 运行GenerateProjectFiles.bat
  • 打开Flax.sln并将解决方案配置设置为Editor.Development和解决方案平台为Win64
  • 将 Flax (C++) 或 FlaxEngine (C#) 设置为启动项目
  • 编译 Flax 项目(按 F7 或 CTRL+Shift+B)
  • 运行Flax(按 F5 键)

下载安装VS的过程不在该博客阐述,请读者自行搜索其他博客。我将直接从克隆源码仓库开始:

 (1)Clone repo

点击右上角的Code,复制URL:

         这里我们注意到上面项目的README.md中Clone repo(with LFS)也就是说,这里我们需要用到Git的大项目管理工具LFS(提到LFS,全称Git Large File Storage,GitHub 限制了存储库中允许的文件大小。要跟踪超出此限制的文件,需要使用 Git Large File Storage),也就是说Flax Engine的源代码大小超过了100MB,Git LFS 具体使用方法可到GitHub文档的存储库/处理文件/管理大文件查看,这里我们不需要管理,仅需要下载编译,使用更简单的方式。

        下载GitHub Desktop,新版本的GitHub Desktop自带LFS,我们将上面复制的源代码下载URL粘贴到此处,接下来就等待项目下载完毕:

 下载完毕: 

 (2)运行GenerateProjectFiles.bat

 (3)使用VS进行项目编译 

        在解决方案处找到Flax.sln:

         

点击后项目结构变更为(请忽略此处的已忽略标志,因为我更改分支后未重新编译):

         

        按步骤将解决方案配置设置为Editor.Development和解决方案平台为Win64 ,将 Flax (C++) 或 FlaxEngine (C#) 设置为启动项目:

        点击编译( F7 or CTRL+Shift+B): 

         编译完成:

         运行FlaxEngine(C#),因为运行Flax(c++)需要打开具体Flax项目,这里不做演示:

         至此,项目部署完毕。

四、项目结构

        我们首先看看官方文档给出的项目结构:

如下: 

工作区目录

  • Binaries/ - 可执行文件
    • Editor/ -Flax Editor二进制文件
    • Tools/ - 工具二进制文件
  • Cache/ - 引擎和工具使用的本地数据缓存文件夹
    • Intermediate/ - 引擎构建的中间文件和缓存
      • ProjectName / - 每个项目的构建缓存数据
      • Deps/ - Flax.Build 依赖项构建缓存
    • Projects/ - 项目文件位置
  • Content/ - 引擎和编辑器使用的资产和二进制文件
  • Development/ - 引擎开发文件
    • Scripts/ - 实用程序脚本
  • packages/ - Nuget 包缓存位置
  • Source/ - 源代码涂层
    • Editor/ - Flax 编辑器源代码
    • Engine/ - Flax 引擎源代码
    • Platforms/ - 每个平台的源和依赖文件
      • DotNet/ - C# 依赖项
      • Editor/ -亚麻编辑器二进制文件
      • PlatformName / - 每个平台的文件
        • Binaries/ - 每个平台的二进制文件
          • Game/ - 亚麻游戏二进制文件
          • Mono/ - Mono 运行时文件和数据
          • ThirdParty/ - 预构建第三方二进制文件
    • Shaders/ - 着色器源代码
    • ThirdParty/ - 第三方源代码
    • Tools/ - 开发工具源代码

         再来看一下我们编译之后的目录:

        

        

         这里将c++代码和c#代码分离了,具体原因和区别我暂时不清楚,不过也能明显看到一些第三方工具和平台支持是使用c++。

        接下来是引擎的目录结构:

         接下来我的工作是分析引擎渲染部分的代码,也就是Renderer和Render2D的部分,但后续是否会增加其他部分的分析需要根据后续分析的情况而定。

        和我同组的其他组员将分析引擎其他一些部分的代码。

        以上是这次项目的综述,了解并部署了项目,后续将进行源码的分析阶段,也是学习的过程。

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值