Hi. I’ve been learning Rust for a while, and I want to take on an actual project now to learn even more. I need to be pointed in the right direction for one aspect of the affair, and I hope someone here can help me.

I want to create a deck tracker for Hearthstone that runs natively in Linux. This is, on the back end, a fairly simple matter of parsing a constantly updated file that tracks everything that happens in the game. On the front end, however, I want to create a window that sits on top of the fullscreen Hearthstone window and shows me stuff. The “stuff” doesn’t have to be images or anything fancy, I’ll take whatever I can get, but I don’t know how to get started on this part.

So the task is as follows: Create an overlay on top of the fullscreen Hearthstone client, preferably under Wayland, and update it constantly with new information about cards drawn, cards left in deck, that sort of thing.

How do I tackle this problem? Are there any crates that’ll let me create such a window and render stuff to it? How would you approach the problem?

Thanks in advance.

  • Commodore@lemmy.worldOP
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    Thanks for your detailed reply. I can feel I’m out of my depth in many ways, but between your reply and the others I’ve gotten, I have a lot of entryways into the problem, and I’m looking forward to figuring out how to make it work. I’ve done a bit of coding in C++ in the past as well; maybe that would also be an option. But since the purpose of the exercise is primarily to get more familiar with Rust, I think I’ll exhaust whatever options I have down that path first. Thanks again :)

    • xan1242@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      2
      ·
      3 months ago

      No problem. Please do report back!

      We really do not have many (if any) Rust alternatives for code hooking and injection and doing stuff with rendering like we do with C++.

      Maybe you could finally figure something out we can use for other games as well!