Wargus / wargus

Importer and scripts for Warcraft II: Tides of Darkness, the expansion Beyond the Dark Portal, and Aleonas Tales
GNU General Public License v2.0
357 stars 55 forks source link

Use leak as Reference point for code adjustments and compatibility #347

Closed junkster2point0 closed 3 years ago

junkster2point0 commented 3 years ago

To deliver old news, Last year Warcraft 2's ps1 source code got leaked online. While its unlikely Wargus will use it as a direct source implementation due to copyright reasons (however I would love another project to make a direct source port,) it should be used as a reference point for Wargus to get a 100% accurate replication of the original games engine feel. it also should be considered as a potential reference point to enable compatibility with the base warcraft 2 game (E.G. a Wargus Client could connect with a Warcraft 2 BNET client and play together in multiplayer,) as well as providing some help in improving the installation method of Wargus in the future (as apparently the code also contains compilation information for PUD files, meaning someone with a pre existing copy installing Wargus could point it to the file path of PUD data and Wargus could more easily impliment those assets during Installation.)

timfel commented 3 years ago

Hi @junkster2point0, and thanks for that input.

We have discussed this before on the Discord and Gitter channels with other people. Wargus is not meant to be a 100% accurate replica of Warcraft 2. It is it's own game that aims to replicate the feel (and maybe nostalgia), but also changes the game in many important ways to be more modern or moddable or otherwise enjoyable.

Regarding BNET support, Stratagus already supports the BNET protocol and authenticates as Warcraft 2 client. However, we will never be compatible to play with original clients. That is just not a goal and also frankly impossible unless we write a completely new engine that is 100% compatible with the original (the reason is the way that networking works with WC2 and Wargus - there is almost no synchronization, each client computes everything locally and only the inputs from the different players are sent over the network - so unless the code does 100% the same thing including things like generating exactly the same pseudo-random numbers, it is entirely impossible to network two different engines)

We support PUD importing using the pudconvert executable and we import the default PUD files from the BNE CD. You can easily import more PUD files with that tool.