FlaxEngine/FlaxEngine
GitHub: FlaxEngine/FlaxEngine
Flax Engine 是一款基于 C++ 和 C# 的开源跨平台 3D 游戏引擎,提供高质量渲染和快速开发工作流。
Stars: 6912 | Forks: 703
Flax Engine
Flax Engine 是一款使用 C++ 和 C# 编写的高质量现代 3D 游戏引擎。
从令人惊叹的图形到强大的脚本,它专为快速的工作流而设计,现已提供许多随时可用的功能供您体验。欲了解更多信息,请访问官方网站([www.flaxengine.com](https://flaxengine.com))。
此仓库包含 Flax Engine 的完整源代码(不包括受 NDA 保护的平台支持)。文档源代码也可以在单独的仓库中找到。欢迎任何人为其贡献代码,或在基于 Flax 的游戏中使用修改后的源代码。
# 开发
* [主页](https://flaxengine.com)
* [开发博客](https://flaxengine.com/blog)
* [文档](https://docs.flaxengine.com)
* [论坛](https://forum.flaxengine.com)
* [路线图](https://trello.com/b/NQjLXRCP/flax-roadmap)
# 截图



# 开始使用
请按照以下说明从源代码编译并运行引擎。
## Windows
* 安装 Visual Studio 2022 或更新版本
* 安装 Windows 8.1 SDK 或更新版本(通过 Visual Studio Installer)
* 安装 Microsoft Visual C++ 2015 v140 工具集或更新版本(通过 Visual Studio Installer)
* 为 **Windows x64** 安装 .NET 8 SDK(或更新版本)(通过 Visual Studio Installer 或[从网络获取](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* 安装带有 LFS 的 Git
* 克隆仓库(带有 LFS)
* 运行 **GenerateProjectFiles.bat**
* 打开 `Flax.sln` 并将解决方案配置设置为 **Editor.Development**,将解决方案平台设置为 **Win64**
* 将 Flax (C++) 或 FlaxEngine (C#) 设置为启动项目
* 编译 Flax 项目(按 F7 或 CTRL+Shift+B)
* 可选:将调试类型设置为 **Managed Only (.NET Core)** 以仅调试 C#,或设置为 **Mixed (.NET Core)** 以同时调试 C++ 和 C#
* 运行 Flax(按 F5 键)
## Linux
* 安装 Visual Studio Code
* 安装 .NET 8 或 9 SDK([https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* Ubuntu: `sudo apt install dotnet-sdk-8.0`
* Fedora: `sudo dnf install dotnet-sdk-8.0`
* Arch: `sudo pacman -S dotnet-sdk-8.0 dotnet-runtime-8.0 dotnet-targeting-pack-8.0 dotnet-host`
* 安装 Vulkan SDK([https://vulkan.lunarg.com/](https://vulkan.lunarg.com/))
* Ubuntu: `sudo apt install vulkan-sdk`(已弃用,请遵循官方文档)
* Fedora: `sudo dnf install vulkan-headers vulkan-tools vulkan-validation-layers`
* Arch: `sudo pacman -S vulkan-headers vulkan-tools vulkan-validation-layers`
* 安装带有 LFS 的 Git
* Ubuntu: `sudo apt-get install git git-lfs`
* Arch: `sudo pacman -S git git-lfs`
* `git-lfs install`
* 安装必需的依赖包:
* Ubuntu: `sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev zlib1g-dev`
* Fedora: `sudo dnf install libX11-devel libXcursor-devel libXinerama-devel ghc-zlib-devel`
* Arch: `sudo pacman -S base-devel libx11 libxcursor libxinerama zlib`
* 安装 Clang 编译器(版本 14 或更高):
* Ubuntu: `sudo apt-get install clang lldb lld`
* Fedora: `sudo dnf install clang llvm lldb lld`
* Arch: `sudo pacman -S clang lldb lld`
* 克隆仓库(带有 LFS)
* git-lfs clone https://github.com/FlaxEngine/FlaxEngine.git
* 运行 `./GenerateProjectFiles.sh`
* 使用 Visual Code 打开工作区
* 构建并运行(配置和任务名为 `Flax|Editor.Linux.Development|x64`)
## Mac
* 安装 XCode 16.4(或更新版本)
* 安装 .NET 8 SDK(或更新版本)([https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* 安装 Vulkan SDK([https://vulkan.lunarg.com/](https://vulkan.lunarg.com/))
* 克隆仓库(带有 LFS)
* 运行 `GenerateProjectFiles.command`
* 使用 XCode 或 Visual Studio Code 打开工作区
* 构建并运行(配置 `Editor.Mac.Development`)
#### 故障排除
* `Could not execute because the specified command or file was not found.`
重启电脑 - 确保 DotNet 已添加到 PATH 中以便执行命令行工具。
* `Microsoft.NET.TargetFrameworkInference.targets(141,5): error NETSDK1045: The current .NET SDK does not support targeting .NET 8.0. Either target .NET 5.0 or lower, or use a version of the .NET SDK that supports .NET 8.0`
使用 Visual Studio 2022,.NET SDK 8 不支持旧版本。
* `Building for Windows without Vulkan rendering backend (Vulkan SDK is missing)`
安装 Vulkan SDK,然后在运行 GenerateProjectFiles.bat 之前设置环境变量以提供 SDK 的路径:`set VULKAN_SDK=%sdk_path%`。
* `The NuGetSdkResolver did not resolve this SDK`
在 Visual Studio 组件中安装 `.NET SDK`、`NuGet package manager` 和 `NuGet targets and build tasks`。
## 工作区目录
- **Binaries/** - 可执行文件
- **Editor/** - Flax Editor 二进制文件
- **Tools/** - 工具二进制文件
- **Cache/** - 引擎和工具使用的本地数据缓存文件夹
- **Intermediate/** - 用于引擎构建的中间文件和缓存
- ***ProjectName*/** - 各项目的构建缓存数据
- **Deps/** - Flax.Build 依赖构建缓存
- **Projects/** - 项目文件位置
- **Content/** - 引擎和编辑器使用的资产和二进制文件
- **Development/** - 引擎开发文件
- **Scripts/** - 实用脚本
- **Source/** - 源代码位置
- **Editor/** - Flax Editor 源代码
- **Engine/** - Flax Engine 源代码
- **Platforms/** - 各平台的源代码和依赖文件
- **DotNet/** - C# 依赖项
- **Editor/** - Flax Editor 二进制文件
- ***PlatformName*/** - 各平台文件
- **Binaries/** - 各平台二进制文件
- **Game/** - Flax Game 二进制文件
- **ThirdParty/** - 预构建的第三方二进制文件
- **Shaders/** - shader 源代码
- **ThirdParty/** - 第三方源代码
- **Tools/** - 开发工具源代码
# 许可与贡献
使用 Flax 源代码受 Flax Engine 最终用户许可协议的严格管辖。如果您不同意这些不时修订的条款,则不允许您访问或使用 Flax Engine。
我们欢迎通过 GitHub 上的 Pull Request 为 Flax Engine 的开发做出任何贡献。我们大部分的活跃开发都在 master 分支中进行,因此我们更倾向于在那里接受 Pull Request(尤其是对于新功能)。我们会努力确保所有新代码都符合 Flax 的编码标准。所有贡献均受 [EULA](https://flaxengine.com/licensing/) 条款的约束。
## SAST 工具
[PVS-Studio](https://pvs-studio.com/en/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source) - 用于 C、C++、C# 和 Java 代码的静态分析器。标签:3D渲染, C++, 数据擦除, 游戏引擎