PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding

Proof-of-concept Genetic Algorithm Optimization Build

Open
#5,602 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Lua
Stars
5.4k
Forks
2.4k
Avg merge
1d 12h
Merged PRs (30d)
26

Description

Check for duplicates
  • I've checked for duplicate issues by using the search function of the issue tracker
Is your feature request related to a problem?

Yes.

Describe the solution you'd like

I did two separate projects. In the first Lua implementation of the UI and the implementation of the genetic algorithm itself in Rust.

https://github.com/Tiikara/path_of_building_genetic_genetic_lualib - genetic library on rust for lua
https://github.com/Tiikara/pathofbuildinggenetic - PoB with genetic

Describe alternatives you've considered

No response

Additional context

Currently implemented:

  • Genetic algorithm
  • Multithreaded calculation
  • UI interface for setting the values the genetic algorithm will aim for
  • Saving the genetic algorithm settings in Build xml
  • Displaying the best results in the UI during the optimization process
  • Use of conventional nodes
  • Using ascendence nodes
  • Using mastery nodes

Current issues:

  • Slow performance due to long shortest path search (the algorithm takes 20 minutes on my Intel Core i9 12900k and uses 8 gigabytes of memory)
  • Memory leak on optimization restart

What needs to be done before merge:

The 64bit architecture is necessary because of threads' memory usage. The luajit2.0 used in the project now cannot allocate more than 2 Gbytes of memory, that's why I chose https://github.com/openresty/luajit2 without this limitation.

Project dependencies (runtime_x64) https://github.com/Tiikara/pathofbuildinggenetic compiled with Visual Studio 2019

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked pathofbuildinggenetic fork and its runtime_x64 dependencies, then compare the Lua UI and Rust genetic library with the main project's LuaJIT 2.0 setup. Reproduce the optimization workflow and investigate the reported 20-minute runtime, high memory use, and restart leak. Done requires a defined merge plan for 64-bit support and agreement on the remaining performance and memory issues.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua, rust
Domain
desktop, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.