Project Anarchy 完整入门教程
第一部分:什么是 Project Anarchy?
Project Anarchy 是由 Havok(现属微软)开发的一套免费的移动游戏开发工具包,它的核心是 Havok Vision Engine,这个引擎曾被用于开发《刺客信条》、《古墓丽影》等众多3A级大作。

核心特点:
- 完全免费:对于个人开发者、初创团队、学生和教育机构完全免费,没有版税或收入限制。
- 功能强大:拥有媲美商业引擎的图形渲染能力(支持OpenGL ES 2.0/3.0、PBR物理渲染)、物理模拟(Havok Physics)、AI(Havok AI)等。
- 跨平台:原生支持 iOS 和 Android,并可以方便地导出到 Windows 和 macOS 进行开发。
- 易于上手:提供了基于 Visual Studio 的集成开发环境,对 C# 和 Lua 脚本语言有良好支持,降低了学习门槛。
重要提示:Havok 在 2025 年宣布停止对 Project Anarchy 的更新和支持,它不适合用于开发需要长期维护或追求最新技术的商业项目,它对于学习游戏开发、制作原型、独立游戏开发以及教学 purposes 仍然是一个非常优秀的工具。
第二部分:准备工作与安装
在开始之前,请确保你的电脑满足最低要求。
系统要求:

- 操作系统:Windows 7 或更高版本 (推荐 Windows 10)
- CPU:多核处理器 (Intel Core i5 或 AMD 同等级别)
- 内存:至少 8GB RAM (推荐 16GB 或更多)
- 显卡:支持 DirectX 11 的独立显卡
- 硬盘空间:至少 10GB 可用空间
- 必需软件:
- Visual Studio:需要安装 Visual Studio 2025 或 2025,在安装 Visual Studio 时,请务必选择“使用C++的桌面开发”工作负载,因为 Project Anarchy 的 IDE 是基于 C++ 的。
- Windows SDK:Visual Studio 安装时会自动包含。
安装步骤:
-
下载 Project Anarchy:
- 访问 Havok 官方网站(现在可能需要通过一些开发者社区或存档网站找到下载链接,因为官网已下架),搜索 "Project Anarchy Download" 可以找到一些可靠的资源链接。
- 下载最新版本的安装包(
ProjectAnarchy_vX_X_XXXX.exe)。
-
运行安装程序:
- 以管理员身份运行下载的
.exe文件。 - 按照安装向导的提示进行操作,建议安装到默认路径,以避免后续配置环境变量时出现问题。
- 以管理员身份运行下载的
-
安装过程:
(图片来源网络,侵删)安装程序会下载并安装所有必要的组件,包括引擎、工具、示例和文档,这个过程可能需要一些时间,请耐心等待。
-
验证安装:
- 安装完成后,在开始菜单中找到 "Project Anarchy" 文件夹。
- 打开 Project Anarchy IDE,你应该能看到一个类似 Visual Studio 的界面。
- 在 IDE 中,点击 "File" -> "Open" -> "Project/Solution",然后导航到你的安装目录(
C:\Program Files (x86)\Havok\Project Anarchy vX.X\Samples)。 - 打开一个示例项目,
Graphics\HelloWorld。 - 在 IDE 顶部的工具栏中,选择目标平台为 Windows,然后点击绿色的 "Play" 按钮(▶)。
- 如果一切顺利,一个窗口会弹出,显示一个旋转的 3D 立方体,这表明你的 Project Anarchy 环境已经成功搭建好了!
第三部分:你的第一个项目 - "Hello World"
我们将通过修改 HelloWorld 示例来了解 Project Anarchy 的基本工作流程。
目标:将旋转的立方体改为一个旋转的球体。
步骤:
-
打开 HelloWorld 项目:
- 如上所述,在 Project Anarchy IDE 中打开
Samples/Graphics/HelloWorld项目。
- 如上所述,在 Project Anarchy IDE 中打开
-
理解项目结构:
- 在 "Solution Explorer" 窗口中,你会看到几个关键文件夹:
- Source:存放 C++ 源代码文件(如
.cpp和.h)。 - Assets:存放所有游戏资源,如模型、纹理、音频等。
- Scripts:存放 Lua 脚本文件(
.lua)。 - Shaders:存放着色器文件(
.fx)。
- Source:存放 C++ 源代码文件(如
- 在 "Solution Explorer" 窗口中,你会看到几个关键文件夹:
-
找到并修改模型文件:
- 在 Solution Explorer 中,找到
Assets文件夹。 - 展开
Models子文件夹,你会看到Cube.vcmx文件,这就是我们当前显示的模型。 - 我们需要将其替换为球体,在
Models文件夹上右键 -> "Add" -> "Existing Item..."。 - 浏览到你的 Project Anarchy 安装目录下的
Content/Models文件夹,找到一个球体模型,Sphere.vcmx,将其添加到项目中。 - 重要:添加后,右键点击新添加的
Sphere.vcmx文件,选择 "Properties",在 "Property Pages" 中,确保 "Copy to Output Directory" 选项设置为 "Copy if newer"。
- 在 Solution Explorer 中,找到
-
修改 C++ 代码以加载新模型:
- 在
Source文件夹中,找到HelloWorld.cpp文件并打开它。 - 查找类似这样的代码行:
// V 瓦片加载模型 hkRefPtr<hkvModel> model = VAssetLibrary::load<hkvModel>("Models/Cube.vcmx"); - 将
"Models/Cube.vcmx"修改为"Models/Sphere.vcmx"。hkRefPtr<hkvModel> model = VAssetLibrary::load<hkvModel>("Models/Sphere.vcmx");
- 在
-
运行项目:
- 确保目标平台仍然是 Windows,然后点击 "Play" 按钮(▶)。
- 你应该能看到一个旋转的球体而不是立方体了!恭喜,你已经成功修改了你的第一个 Project Anarchy 项目。
第四部分:核心概念与工作流
为了更深入地开发,你需要了解 Project Anarchy 的几个核心概念。
实体-组件-系统 架构
Project Anarchy 的核心架构是 ECS,这是一种现代的游戏设计模式,非常灵活和高效。
- Entity (实体):可以看作是一个“空的容器”或“游戏对象”,它本身没有任何功能,只是用来组合组件,一个“玩家”可以是一个实体。
- Component (组件):是数据和功能的集合,它们被附加到实体上,定义了实体的属性。
VTransform:定义位置、旋转、缩放。VModel:包含 3D 模型数据。VPhysicsCharacter:提供角色物理特性(如移动、跳跃)。VScript:附加一个 Lua 脚本。
- System (系统):是“行为”的执行者,它们遍历拥有特定组件的实体,并执行逻辑。
RenderSystem:查找所有带有VModel和VTransform组件的实体,并将它们渲染到屏幕上。PhysicsSystem:更新所有带有物理组件的实体的状态。
工作流程:你创建一个实体 -> 给它添加需要的组件 -> 编写系统或脚本去操作这些组件。
脚本系统
Project Anarchy 对 Lua 脚本有非常好的支持,这使得快速实现游戏逻辑而无需重新编译 C++ 代码成为可能。
-
如何附加脚本:在 C++ 中创建一个实体时,可以给它附加一个
VScript组件,并指定.lua文件的路径。// 创建一个实体 hkRefPtr<VEntity> myEntity = new VEntity("MyObject"); // 创建一个脚本组件 hkRefPtr<VScript> scriptComponent = new VScript(); scriptComponent->setScriptFile("Scripts/MyObjectLogic.lua"); // 指定脚本文件 // 将脚本组件附加到实体 myEntity->addComponent(scriptComponent); -
在 Lua 中访问实体:在
MyObjectLogic.lua文件中,你可以通过全局变量this来访问附加了该脚本的实体。-- MyObjectLogic.lua -- 每帧调用 function onUpdate(dt) -- 获取实体的 Transform 组件 local transform = this:findComponent("VTransform") -- 旋转实体 local rot = transform:getRotation() rot.y = rot.y + dt * 90 -- 每秒旋转90度 transform:setRotation(rot) end
资源管理
- 所有资源(模型、纹理、音效等)都通过
VAssetLibrary进行加载和管理。 - 资源路径通常是相对于
Assets文件夹的。 - 常用的加载函数:
VAssetLibrary::load<T>(path),T是资源的类型(如hkvModel,hkvTexture等)。
第五部分:进阶学习路径
当你掌握了基础后,可以按照以下路径深入学习:
-
探索更多示例:
Samples文件夹是你的宝库,仔细研究Graphics、Physics、AI等目录下的示例,每个示例都演示了引擎的特定功能,尝试修改它们的代码,看看会发生什么。
-
学习着色器:
- 打开
Shaders文件夹,查看DefaultShader.fx,这是基础的渲染着色器,尝试修改其中的代码,比如改变物体的颜色,来理解渲染管线的工作原理。
- 打开
-
创建自己的项目:
不要总是依赖示例,在 IDE 中,尝试 "File" -> "New" -> "Project" 来创建一个空白项目,然后从零开始构建一个简单的场景(一个地面和一个可以移动的立方体)。
-
物理与AI:
- 学习如何使用
VPhysics组件创建静态/动态物体、触发器等。 - 尝试使用
Havok AI系统为敌人设置简单的巡逻和追击行为。
- 学习如何使用
-
发布到移动设备:
- 当你的项目在 Windows 上运行稳定后,切换目标平台到 Android 或 iOS。
- 你需要配置相应的 SDK 和 NDK 路径(IDE 通常会引导你完成)。
- 连接你的手机,设置为调试模式,然后点击 "Play" 按钮旁边的下拉箭头,选择 "Device",再点击 "Play",项目会直接部署到你的手机上运行。
第六部分:资源与社区
虽然 Project Anarchy 已停止更新,但仍有大量资源可供学习:
- 官方文档 (离线版):安装包中包含了完整的 PDF 文档,这是最权威的参考资料。
- Havok 论坛 (存档):通过互联网搜索,可以找到 Havok 论站的存档,里面有大量的开发者问答和教程。
- YouTube:搜索 "Project Anarchy tutorial",可以找到一些视频教程,虽然可能比较旧,但基础概念是通用的。
- GitHub:搜索 "Project Anarchy",可以找到一些开源的示例项目或社区工具。
Project Anarchy 是一个进入游戏开发世界的绝佳跳板,它提供了专业级的工具,而无需任何成本,虽然它不是当前的主流引擎,但通过学习它,你将掌握 C++、Lua、图形学、物理模拟等核心游戏开发技能,这些知识可以无缝地迁移到 Unreal Engine、Unity 或其他现代引擎上。
动手实践是学习的关键,不要害怕修改代码、破坏项目,从修改示例开始,逐步建立你自己的信心和知识体系,祝你开发愉快!
