IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 游戏引擎Flax Engine源码分析(一)综述 -> 正文阅读

[游戏开发]游戏引擎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的部分,但后续是否会增加其他部分的分析需要根据后续分析的情况而定。

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

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

????????

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:12:29  更:2021-10-01 17:13:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:34:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码