Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Navigation benchmarks #78

Merged
merged 9 commits into from
Jun 24, 2024
Merged

Conversation

OverloadedOrama
Copy link
Contributor

Adds the following benchmarks from #36:

  • 🟪Algorithm🟪 AStar3D: Create random map with 1000 inter connected points (probably using Delaunay3D), Benchmark solving it 1000 times from random 2 points
  • 🟪Algorithm🟪 Navigation: On a premade map, solve 1000 random paths between two points on the surface of the shapes.
  • Agents : Benchmark 1000 moving agents in a map with local collision avoidance.

It wasn't clear if the benchmarks needed to be for 2D or 3D, so I made both, along with a benchmark for AStar2D. The 3D navigation benchmarks use a navmesh baked from the Sponza scene, while the 2D counterparts use the nav polygon from the 2D navigation demo.

Results on my PC

{
"benchmarks": [
{
"category": "Navigation > Astar 2d",
"name": "Astar 5000 Times 5000 Points",
"results": {
"time": 739.1
}
},
{
"category": "Navigation > Astar 3d",
"name": "Astar 1000 Times 1000 Points",
"results": {
"time": 891.1
}
},
{
"category": "Navigation > Moving Agents 2d",
"name": "1000 Moving Agents",
"results": {
"render_cpu": 0.1948,
"time": 0.023
}
},
{
"category": "Navigation > Moving Agents 3d",
"name": "1000 Moving Agents",
"results": {
"render_cpu": 6.03,
"time": 0.047
}
},
{
"category": "Navigation > Navigation 2d",
"name": "Navigation 10 000 Random Paths",
"results": {
"time": 134.8
}
},
{
"category": "Navigation > Navigation 3d",
"name": "Navigation 10 000 Random Paths",
"results": {
"time": 104.6
}
}
],
"engine": {
"version": "v4.3.beta2.official",
"version_hash": "b75f0485ba15951b87f1d9a2d8dd0fcd55e178e4"
},
"system": {
"cpu_architecture": "x86_64",
"cpu_count": 12,
"cpu_name": "AMD Ryzen 5 1600 Six-Core Processor",
"os": "Linux"
}
}

Copy link
Member

@Calinou Calinou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally, it works as expected.

I pushed an additional commit to reduce the CPU requirements on the rendering side, as this benchmark should isolate navigation performance as much as possible: eabd2cb (#78)

Thanks!

@Calinou Calinou merged commit 8f36c32 into godotengine:main Jun 24, 2024
@OverloadedOrama OverloadedOrama deleted the navigation branch June 24, 2024 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants