-
Notifications
You must be signed in to change notification settings - Fork 387
Home
Welcome to the Ant wiki! Please visit these Chinese pages by using something like Google or Deepl translate.
Ant 是一个开源的游戏引擎。它是一个活跃的项目,仍在开发中。在现阶段,开发团队很难维护一份详尽的文档,同时保证文档能时刻跟上项目的变化。尝试引擎仓库 test 目录下自带的简单实例,会是一个很好的开始。
我们开源了使用这个引擎开发中的第一款游戏 。这个游戏的技术部分已经完成,剩下的工作是游戏性上的调整。游戏代码也会是个不错的引擎学习案例。
在这里,会有一些文章介绍 Ant 的设计思路和重要模块的结构。理解它们为什么是这样、解决的是什么问题、是如何达成设计目的的。这些比介绍 API 更为重要。API 的变化或许很快,但设计思路要稳定的多。应尽可能的跟进引擎仓库的更新(就像我们正在开发的游戏那样),不要停留在某个历史版本。不要害怕 Breaking changes ,变化是为了让引擎变的更好。
在开始之前,你可以先了解一下 Ant 的技术特点 ,看看是否符合你的技术品味,希望同时也能打消你在引擎性能上的顾虑。
用 Ant 引擎编写第一个可以运行的小程序是非常简单的。HelloWorld 讲解了 /test/simple 中的小 demo 运行背后发生了什么,引擎是怎样运作的。在了解引擎其它部分之前,还需要理解一下 虚拟文件系统 ,以及运作在 vfs 上面的 包系统 。整个引擎就是由一个个包组合而成的。
Ant 引擎使用了基于 Actor 的并发模型,不同的功能运行于不同的服务中,每个服务有独立的 Lua 虚拟机和执行线程。主游戏服务基于 ECS 架构,辅以 消息信箱 运作。游戏场景 由众多含有场景组件的 entity 构成。这些 entity 可通过引擎自带的编辑器制作的 预制件 实例化而来。在游戏代码中,只需要实例化这些预制件即可。我们可以 分组 管理场景对象,并用 动画 控制它们。并可以在预制件上添加 特效 和 声音 。
Ant 使用 3D 渲染技术,这 渲染管线 这篇文章中,介绍了材质、光源等概念,以及 Ant 引擎渲染器的实现细节。
制作游戏除了编写代码,还需要制作大量的 多媒体资产 。绝大部分资产文件,使用 DataList 这种结构化文本格式,方便维护。
我们可以使用 RmlUI ,一种基于 html/css 的解决方案,轻松的搭建起游戏中图形交互界面。对于开发调试,我们还可以在游戏中嵌入 imgui 制作的调试界面,或使用 基于 Web 的控制台 。
最后,还有一些可能需要了解的部分: