贝博恩创新科技网

project anarchy教程

Project Anarchy 完整入门教程

第一部分:什么是 Project Anarchy?

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

project anarchy教程-图1
(图片来源网络,侵删)

核心特点:

  1. 完全免费:对于个人开发者、初创团队、学生和教育机构完全免费,没有版税或收入限制。
  2. 功能强大:拥有媲美商业引擎的图形渲染能力(支持OpenGL ES 2.0/3.0、PBR物理渲染)、物理模拟(Havok Physics)、AI(Havok AI)等。
  3. 跨平台:原生支持 iOS 和 Android,并可以方便地导出到 Windows 和 macOS 进行开发。
  4. 易于上手:提供了基于 Visual Studio 的集成开发环境,对 C# 和 Lua 脚本语言有良好支持,降低了学习门槛。

重要提示:Havok 在 2025 年宣布停止对 Project Anarchy 的更新和支持,它不适合用于开发需要长期维护或追求最新技术的商业项目,它对于学习游戏开发、制作原型、独立游戏开发以及教学 purposes 仍然是一个非常优秀的工具。


第二部分:准备工作与安装

在开始之前,请确保你的电脑满足最低要求。

系统要求:

project anarchy教程-图2
(图片来源网络,侵删)
  • 操作系统: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 安装时会自动包含。

安装步骤:

  1. 下载 Project Anarchy

    • 访问 Havok 官方网站(现在可能需要通过一些开发者社区或存档网站找到下载链接,因为官网已下架),搜索 "Project Anarchy Download" 可以找到一些可靠的资源链接。
    • 下载最新版本的安装包(ProjectAnarchy_vX_X_XXXX.exe)。
  2. 运行安装程序

    • 以管理员身份运行下载的 .exe 文件。
    • 按照安装向导的提示进行操作,建议安装到默认路径,以避免后续配置环境变量时出现问题。
  3. 安装过程

    project anarchy教程-图3
    (图片来源网络,侵删)

    安装程序会下载并安装所有必要的组件,包括引擎、工具、示例和文档,这个过程可能需要一些时间,请耐心等待。

  4. 验证安装

    • 安装完成后,在开始菜单中找到 "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 的基本工作流程。

目标:将旋转的立方体改为一个旋转的球体。

步骤:

  1. 打开 HelloWorld 项目

    • 如上所述,在 Project Anarchy IDE 中打开 Samples/Graphics/HelloWorld 项目。
  2. 理解项目结构

    • 在 "Solution Explorer" 窗口中,你会看到几个关键文件夹:
      • Source:存放 C++ 源代码文件(如 .cpp.h)。
      • Assets:存放所有游戏资源,如模型、纹理、音频等。
      • Scripts:存放 Lua 脚本文件(.lua)。
      • Shaders:存放着色器文件(.fx)。
  3. 找到并修改模型文件

    • 在 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"。
  4. 修改 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");
  5. 运行项目

    • 确保目标平台仍然是 Windows,然后点击 "Play" 按钮(▶)。
    • 你应该能看到一个旋转的球体而不是立方体了!恭喜,你已经成功修改了你的第一个 Project Anarchy 项目。

第四部分:核心概念与工作流

为了更深入地开发,你需要了解 Project Anarchy 的几个核心概念。

实体-组件-系统 架构

Project Anarchy 的核心架构是 ECS,这是一种现代的游戏设计模式,非常灵活和高效。

  • Entity (实体):可以看作是一个“空的容器”或“游戏对象”,它本身没有任何功能,只是用来组合组件,一个“玩家”可以是一个实体。
  • Component (组件):是数据和功能的集合,它们被附加到实体上,定义了实体的属性。
    • VTransform:定义位置、旋转、缩放。
    • VModel:包含 3D 模型数据。
    • VPhysicsCharacter:提供角色物理特性(如移动、跳跃)。
    • VScript:附加一个 Lua 脚本。
  • System (系统):是“行为”的执行者,它们遍历拥有特定组件的实体,并执行逻辑。
    • RenderSystem:查找所有带有 VModelVTransform 组件的实体,并将它们渲染到屏幕上。
    • 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 等)。

第五部分:进阶学习路径

当你掌握了基础后,可以按照以下路径深入学习:

  1. 探索更多示例

    • Samples 文件夹是你的宝库,仔细研究 GraphicsPhysicsAI 等目录下的示例,每个示例都演示了引擎的特定功能,尝试修改它们的代码,看看会发生什么。
  2. 学习着色器

    • 打开 Shaders 文件夹,查看 DefaultShader.fx,这是基础的渲染着色器,尝试修改其中的代码,比如改变物体的颜色,来理解渲染管线的工作原理。
  3. 创建自己的项目

    不要总是依赖示例,在 IDE 中,尝试 "File" -> "New" -> "Project" 来创建一个空白项目,然后从零开始构建一个简单的场景(一个地面和一个可以移动的立方体)。

  4. 物理与AI

    • 学习如何使用 VPhysics 组件创建静态/动态物体、触发器等。
    • 尝试使用 Havok AI 系统为敌人设置简单的巡逻和追击行为。
  5. 发布到移动设备

    • 当你的项目在 Windows 上运行稳定后,切换目标平台到 AndroidiOS
    • 你需要配置相应的 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 或其他现代引擎上。

动手实践是学习的关键,不要害怕修改代码、破坏项目,从修改示例开始,逐步建立你自己的信心和知识体系,祝你开发愉快!

分享:
扫描分享到社交APP
上一篇
下一篇