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

Dependencies / build instructions? #1

Open
squeek502 opened this issue Jan 2, 2018 · 4 comments
Open

Dependencies / build instructions? #1

squeek502 opened this issue Jan 2, 2018 · 4 comments

Comments

@squeek502
Copy link

I'd like to update D2ID to work with the latest DiabloInterface (0.4.0, which has a different pipe interface), but am not familiar enough with python to know how to get D2ID running from the provided source. Any help is appreciated.

@palmettos
Copy link
Owner

Hey! I'm actually working on a new version of the program that borrows DiabloInterface's memory reading code and implements all of the communication with the extension back-end as well. It will be completely standalone and DiabloInterface will no longer be necessary. There are a few reasons I'm taking this route, and this issue just made me realize another...

  1. The Python program is pretty clunky. Logically it's fine but I didn't know much about Tkinter or the websocket library when I wrote it. It was pretty quickly whipped together. It takes a long time to start up when you run it, which I don't like. I've also heard from one user that the packaged executable was considered malicious by their antivirus software, and I've read similar complaints about PyInstaller elsewhere on the internet. Not good.

  2. The pipe interface is unnecessary for this application and serves only as an additional point of failure. The developers of DiabloInterface have also talked about creating an actual plugin system and removing the pipe server interface. A standalone program will perform much better, and I'll be able to achieve nearly perfect stream delay syncing with no interprocess communications as they currently exist.

  3. DiabloInterface is more heavily focused on speedrunning than I intend for the extension to be. In that regard, it has more features (autosplits mainly) than I care about maintaining in the future as DiabloInterface is updated or as Diablo 2 is patched. The new DiabloInterface code has a lot of added complexity that is unnecessary for this application, and it would be a waste of time integrating them all for no reason. I would prefer to shrink the amount of code where possible, not expand it.

  4. Having one standalone program will be much easier for extension users. Some extension users don't care about DiabloInterface's features or its panel display and prefer to just minimize and forget it.

  5. Having one standalone program will be much easier for me to develop and maintain.

  6. Having one standalone program will be much easier for others to contribute to.

You are more than welcome to contribute to the new version (it will be in C#) when I push it to this repo. It will be updated for the new memory tables in the newest version of DiabloInterface, but there is plenty more data that needs to be exposed to the extension back-end, and I'd love to have help with that. But, for all of these reasons, I'm not going to provide any details on contributing to the code in its current state, as it would be a waste of time for both of us.

@squeek502
Copy link
Author

squeek502 commented Jan 2, 2018

Nice, sounds good. I actually did something similar when I only wanted a small portion of what Diablo Interface did.

I'll watch for the C# version and contribute where I can. How far along are you? Not worth pushing anything yet (even the WIP)?

@squeek502
Copy link
Author

@palmettos any update on the C# version?

@palmettos
Copy link
Owner

@squeek502 Sorry for the huge delay in responding to this. I was focused on another project for a while. I'm back to working on the extension with a big overhaul in the works. I've decided to build the broadcasting functionality into DiabloInterface and eventually Zutatensuppe will merge it. You can see my progress on the d2id branch of my fork here. This will eliminate the need for my python program, so I'll probably delete this repo eventually.

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

No branches or pull requests

2 participants