lost-ark-dev / loa-details

LOA Details allows you to track real-time stats of the game Lost Ark and view and parse its logged data.
GNU General Public License v3.0
130 stars 42 forks source link

rfc: LDN #26

Open liz3 opened 11 months ago

liz3 commented 11 months ago

What is this

This came to me out of the idea and complains i heard from a few friends saying their systems wouldnt handle Lost ark as a game and loa details, now i dont think the code of this project is the issue but it is true its spawns two electron windows, which means running 2 chromium instances extra.
LDN = Loa details native, idk can also suggest name changes

This is a very simplistic "alternative" damage meter window, targeted to directly render on the GPU, it has a very basic ui system for rendering fonts and rectangles and uses GLFW to target OpenGL.

Motivation

Part of the motivation is already explained above, but the other reason is just that it seamed fun to build.

Progress

THIS IS WIP Theres no way around that, that this isnt ready to be released, im opening the comment as the title says as a request for comments and feedback.

Supported tabs: (All tabs included by default in

Supported features:

It is is designed to look very similar to the main damage overlay window.

How does it work

I added a extra icon button to the main damage meter window which when pressed closes both electron windows(hides main rn because otherwise quasar would quit) and then spaws a localhost tcp socket server and starts the executable with that port who then connects to that server and starts receiving the live parsers state. the logic used to determine dps and buffs is sadly duplicated and reimplemented in c++, since the target is to entirely disable the two electron windows leaving only the node process.

How to run this

  1. You will need CMake and a installation of visual studios c++ build chain supporting c++ 17.
  2. Check out the submodules.
  3. in the root of this branch go to the ldn folder, there create a folder called build_release
  4. Open a terminal in that folder and run cmake .. -DCMAKE_BUILD_TYPE=Release after that cmake --build . --config Release
  5. From there you should be able to run dev or build and use the button, emphasis on should because im sure theres stuff which can go wrong. If it works, rn just close the window in the window bar and it will restart the electron windows.

Some other stuff

image image image image image image

Herysia commented 11 months ago

Tbh i think that it'd more appropriate to write a "network dispatch" for meter-core and run meter core headless with node. So that any app could use that network dispatch api to display it the way they like.

Loa details is the web based eletron rendered ui for the dps meter. I don't think that there is any reason to add a native replacement inside this repo.

Regarding loa details performance, i think that more than electron itself the ui code is garbage. Skill issue i guess 🤣...

liz3 commented 11 months ago

Regarding loa details performance, i think that more than electron itself the ui code is garbage. Skill issue i guess 🤣...

I do not think thats true, of course source code and ui code can always be optimised but running a browser just has a upfront overhead due to its nature, non of the opengl code is really optimised in this either currently and it can just be lower since its the code only and no overhead otherwise.

Loa details is the web based eletron rendered ui for the dps meter. I don't think that there is any reason to add a native replacement inside this repo.

As outlined its not meant as a replacement to replace the main electron one but was intended as a second option for users with lower specs/generally a faster window, building ui for this is just a lot harder then using vue.

Tbh i think that it'd more appropriate to write a "network dispatch" for meter-core and run meter core headless with node. So that any app could use that network dispatch api to display it the way they like.

Thats something i can look into it sounds like a good idea yeah