ButterflyStats / butterfly

Butterfly Dota Replay parser
24 stars 6 forks source link

Any hopes for a windows compatible build? #5

Open devolution2409 opened 5 years ago

devolution2409 commented 5 years ago

Hi based Nox, we're trying to make some app for windows that need to parse replays.. We tried compiling protobuff etc but to no avail..

I was wondering if had any plan to port this stuff to the unfriendly os that's windows?

thanks :)

Noxville commented 5 years ago

I had a chat with @spheenik about this today. In general, it is probably possible - but with quite a bit of work.

Neither of us has the time to invest into getting that working really, but we'd be willing to help out where possible if someone really wanted to work on it. I think making another Docker build system is the easiest way to start.

Philaeux commented 5 years ago

We had troubles to even build dota protobuff+google protobuff on a windows system but I will focus onto it.

The plan is to build an offline solution to parse replays for coaching purposes (basically parse replays of scrims for a team that asked me to). The app is built over QT and C++ so it seems natural to use Butterfly for parsing, however the target has to Windows for obvious reasons...

Noxville commented 5 years ago

I'd suggest you use the built javascript bindings; since running a nodejs-like-process from C++ seems reasonable. Alternatively, make it web-based?

Noxville commented 5 years ago

(there are also Python-bindings, but I've actually never built them nor tested them)

devolution2409 commented 5 years ago

That could be interesting indeed. I have no previous experience with emscripten whatsoever tho. I'm guessing the necessary node modules are already compiled inside the dist folder?

Noxville commented 5 years ago

Yeah - I'll add a Dockerfile_js to the repo which can build the Javascript bindings; and here's an example of how it's used in the JS devkit.

devolution2409 commented 5 years ago

I saw an example here: https://github.com/ButterflyStats/butterfly/blob/master/examples/js/example.js

// you can get the packet IDs from the protobufs at <Link>

'citation needed' as would wiki say :D

Noxville commented 5 years ago

https://github.com/SteamDatabase/GameTracking-Dota2/blob/master/Protobufs/dota_usermessages.proto#L98

Noxville commented 5 years ago

In https://github.com/ButterflyStats/butterfly/commit/1f14a282876824b19dd16cca7c29fb52a73ed9b6 I did a first stab at what the Javascript binding build would look like, just having some issues with snappy in the makefile. Perhaps @spheenik can help a bit - I won't have time for a day or two to look at this.