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

rfc: LDN #26

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open

rfc: LDN #26

wants to merge 19 commits into from

Conversation

liz3
Copy link

@liz3 liz3 commented Jul 20, 2023

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

  • Damage tab(no skill breakdown atm)
  • rdps tab
  • tank tab
  • Party synergies tab
  • Shield Given tab(SHIELD D)
  • Effective shield given(E SHIELD D)
  • Self buff damage(SBDMG)

Supported features:

  • Taking screenshot of the meter(without names)
  • passthrough for mouse events(ghost mode)
  • minimising
  • pausing the meter

It sits between 30-50mb ram and 0 cpu usage unless you interact with the windows.

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

  • Font is weird: currently its a hardcoded size and im working on pretty big screens, will adjust
  • Something does not work at all: leave a comment

image
image
image
image
image
image

@Herysia
Copy link
Member

Herysia commented Jul 20, 2023

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
Copy link
Author

liz3 commented Jul 20, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants