w3gh / ghost.js

Try to port Warcraft3 Game Host Ghost++ to js
MIT License
25 stars 4 forks source link

Current state #2

Open etinin opened 7 years ago

etinin commented 7 years ago

Is this currently working? If not, what needs to be done?

JiLiZART commented 7 years ago

Currently work only Battle.net part, i didn't test in official bnet servers, but on pvpgn this work very well. For now remain "game hosting" part. I need to realize how to implement broken SHA1 algorithm, for calculate map crc, sha1 and other params from map file. Than game join and handling protocol methods. But i don't have enough time to work on this as well. And i don't know how many time it takes.

JiLiZART commented 5 years ago

Yay, I have some progress, I found https://github.com/wowserhq/wowser (WoW client in the browser) and I can reuse some code to implement extracting information from MPQ files and calculate SHA1

b1glord commented 5 years ago

Does centos also work?

JiLiZART commented 5 years ago

You need compile libbncsutil.so and libstorm.so and this should work. Now only as chat bot

trediv commented 5 years ago

Hi. It's the awesome project. Once I thought about this idea and you started to do this in pro level. Nice job. For now I am a little bit confused with check this out because I know node.js but not C++ stuff and I get stuck on error Error: Dynamic Linking Error: /home/redcode/Downloads/ghost.js-master/libbncsutil.so: wrong ELF class: ELFCLASS32 and similar related to compiling libbncsutil.so. It's so strange to be exiting on node.js coding and stopped on C++:). I hope you continue contributing.

JiLiZART commented 5 years ago

Seems to libbncsutil need to be compiled with 64bit flag

trediv commented 5 years ago

@JiLiZART, I tried it, but no matter what I do I get this error

Error: Dynamic Linking Error: /home/gladiko/wc3/ghost/ghost.js/libbncsutil.so: undefined symbol: __gmpz_mul_ui

What I have checked : Ubuntu - 18.10 x64 Node.js - 6v, 8v, 10v, 12v Gcc/G++ - 4.4v, 4.8v, 5v, 8v Libbncsutil - 1.3.1v, 1.3.2v, 1.4.0v, 1.4.1v, and version from this repo

Also I installed libgmp3-dev and build from source with a lot of versions. And duplicate for sure to other dirs :

/usr/local/lib/libgmp.so.10
/usr/local/lib/libgmp.so.10.3.2
/usr/local/lib/libgmp.so
/usr/lib/libgmp.so.10
/usr/lib/x86_64-linux-gnu/libgmp.so.10
/usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
/usr/lib/x86_64-linux-gnu/libgmp.so
/usr/lib/libgmp.so
/usr/lib/i386-linux-gnu/libgmp.so.10
/usr/lib/i386-linux-gnu/libgmp.so.10.3.2
/usr/lib/i386-linux-gnu/libgmp.so

Last chance I play a little bit with the makefile explicitly specifying path in this way LDFLAGS = -L/usr/local/lib/ -L/usr/lib -L/usr/lib/x86_64-linux-gnu -lgmp -shared and etc.

Now after a couple of days and totally ruined mind I have no idea what the hell is this:)

Can you please share your proper environment set and build tools versions or give an advice if you have something different from Linux?

JiLiZART commented 5 years ago

@gladiko You can check this repo https://github.com/w3gh/bncsutil and this CI config https://github.com/w3gh/bncsutil/blob/master/.travis.yml its builds on Linux env

JiLiZART commented 4 years ago

I started to implement Game Protocol, so soon (i hope) it will be able to host and join to game 👍 image

And also I have refs to support Casc (new blizzard archive files) and implement Reforged support (i hope)

trediv commented 4 years ago

Wow, this is awesome! I am still keeping a server mostly for this purpose but I don't want to spend more time with C++. So your project last hope to resurrect it :) I bet that you are the last one from the old school wc3 ghost community who can finish it in a proper way. Please, can you tell me what the things are left there? I am interested just in a base game skeleton without 100+ extra features from ghost++/ghost one. And it will be easy to go forward from that point.

JiLiZART commented 4 years ago

Now I need to implement base protocols for able to play without any features like spoofchecks, bans, scores etc