This package includes high performance, modular and scalable navigation for agents. It is developed with DOTS in mind. As a result, it takes advantage of Unity's latest technology stack, like SIMD mathematics, Jobs, Burst compiler and EntityComponentSystem. Additionally, there is hybrid mode support that enables using it with GameObjects in Object Oriented Programming.
Pillars of this package:
Seamless Unity Integration: Harmoniously integrates with existing Unity technology, supporting both mono and dots.
Intuitive and Streamlined UX: Offers a clean and simple user experience tailored for perfect alignment with Unity.
Optimized Performance Out of the Box: Ensures default high performance through parallelized and optimized code.
Clear Code Architecture: Adheres to clean coding practices with a clear architecture.
Employs a multi-layered API, facilitating low-level interactions.
Scalable and Modular Codebase: Built with scalability and modularity in mind, allowing easy extension with minimal package changes.
What navigation features are contained in this package?
Unity NavMesh multithreaded support 3D
Avoidance 2D/3D
Flocking (Alignment, Cohesion) 3D
Separation 2D/3D
Collision 2D/3D
Can I use this in non ECS/Dots code?
Yes, there is a hybrid workflow where Game Object are synced with Entities. This allow to use this package in Object Oriented Programming too. Of course, it should be expected that performance going to be slightly worse.
Can I use it with ECS?
Yes, this package uses ECS.
What game genres this navigation targets?
This package was developed as a foundation for any navigation needs. However, this early version is currently focused on 3D/2D RTS, Moba, RPG, Shooter style genre games navigation.
Can I extend functionality?
Yes, the package was designed in mind that it could be extended as every game has unique needs for AI navigation. This solution is very modular and allows trivial adding/removing of existing behaviors. However, to extend functionality efficiently, you will need to have knowledge of ECS.
Can I use this package with other pathing solutions (etc. A* Pathfinding Project Pro, AnyPath)?
The solution in this package is very modular, so users can extend it to use different solutions without needing to modify this package. There are plans in the future to do collaboration with other pathing packages.
Can I use this for crowd flow?
Yes and no. As currently there is no implementation of motion fields/vectors, which usually produces the best results for huge crowds. However, current navigation also produces smooth motion in big groups. In the future, I plan to add motion fields.
Is it deterministic?
All systems are running in fixed update. In theory, it should be deterministic for Intel/AMD platforms (Burst). However, it still uses floats for navigation operations, which will not produce deterministic code across all the platforms. In the future, I plan to address this by introducing fixed point types.
How does this package differ from Local Avoidance?
This is a new version of local avoidance. It is a separate package as it contains a much bigger scope than just avoidance, but full navigation (etc. global pathing, boids, collisions...). For those who have a Local Avoidance package, they can do a paid upgrade instead of paying full price.
Support Discord, Forums, Documentation
Review Turbo Makes Games (Sales information is outdated)
Dependencies
Minimum Unity 2022.2
Package com.unity.entities
该软件包包括高性能、模块化和可扩展的代理导航。它是以 DOTS 为中心开发的。因此,它利用了 Unity 的最新技术栈,如 SIMD 数学、Jobs、Burst 编译器和 EntityComponentSystem。此外,它还支持混合模式,可在面向对象编程中与 GameObjects 配合使用。
该软件包的支柱
无缝集成 Unity: 与现有的 Unity 技术和谐集成,同时支持单点和点。
直观、精简的用户体验:提供简洁的用户体验,与 Unity 完美契合。
开箱即用的优化性能: 通过并行化和优化的代码确保默认的高性能。
清晰的代码架构: 坚持简洁的编码实践和清晰的架构。
采用多层 API,促进底层交互。
可扩展的模块化代码库: 考虑到可扩展性和模块性,只需对软件包进行最小的改动即可轻松扩展。
该软件包包含哪些导航功能?
Unity NavMesh 多线程支持 3D
规避 2D/3D
成群(对齐、聚合) 三维
分离 2D/3D
碰撞 2D/3D
可以在非 ECS/Dots 代码中使用吗?
可以,在混合工作流程中,游戏对象与实体是同步的。这样就可以在面向对象编程中使用该程序包。当然,性能会稍差一些。
能否与 ECS 一起使用?
可以,本软件包使用 ECS。
此导航针对哪些游戏类型?
本软件包是作为满足任何导航需求的基础而开发的。不过,这个早期版本目前主要针对 3D/2D RTS、Moba、RPG 和射击类游戏导航。
我可以扩展功能吗?
可以,由于每个游戏对人工智能导航都有独特的需求,因此本软件包在设计之初就考虑到了它的扩展性。该解决方案非常模块化,允许琐碎地添加/删除现有行为。不过,要有效地扩展功能,您需要具备 ECS 知识。
能否将本软件包与其他路径解决方案(如 A* Pathfinding Project Pro、AnyPath)一起使用?
本软件包中的解决方案非常模块化,因此用户无需修改本软件包即可扩展使用不同的解决方案。未来还计划与其他寻路软件包合作。
可以用于人群流动吗?
可以,也不可以。目前还没有实现运动场/矢量,而运动场/矢量通常能为庞大的人群带来最佳效果。不过,目前的导航也能在大群体中产生平滑的运动。未来,我计划添加运动场。
它是确定性的吗?
所有系统都在固定更新中运行。理论上,英特尔/AMD 平台(Burst)应该是确定性的。不过,它仍然使用浮点数进行导航操作,因此无法在所有平台上生成确定性代码。今后,我计划引入定点类型来解决这个问题。
本软件包与本地回避有何不同?
这是一个新版本的本地回避。它是一个独立的软件包,因为它包含的范围远远大于避让,而是完整的导航(如全局路径、boids、碰撞......)。对于那些拥有本地避障软件包的用户,他们可以进行付费升级,而无需支付全额费用。
|