Topic: Diablo 2 running and modding private server
Hello folks,
this is my first post here but it will be long one. I want to ask few questions regarding modding and handling private server. I hope this won't be too overwhelming. If these should be redirected somewhere please point me where. It is a shame that Phrozen Keep ToS are forbidding discussing this things there so I'm looking in other places.
Basically I'm starting my adventure with Diablo 2 modding. I'm embedded software programmer but I have some lacks in knowledge of networking/game programming/server-client architectures so I need some clarification. Some questions may be dumb but better to ask the way than to go astray.
1) I want to run private server and I need additional information how to mod Diablo 2 at server side. If I understand completely if I'm going to make changes to some dlls or game.exe locally these won't take affect when I setup PVPGN server as server is using his own copies of all dlls? Am I correct? If yes maybe some of you know what changes can be done locally? For example handling of some new menus would have to be done locally so I would need to provide dll for every client to render it and write server code which handles it right?
2) Can someone clarify for me what exactly D2GS, D2CS and D2CE (not sure if this one is not the same as D2GS) are responsible for? I saw this diagram https://pvpgn.pro/d2gs_installation.html. I understand that D2GS is emulating the game like game.exe. Is D2CS proxy for easy communication with game running on D2GS and bnet simulator or it does something more?
3) What version of Diablo 2 should I use? Post 1.14a all dlls were merged to game.exe. What this means for running server? I assume I would need to have dlls for 1.14x and D2GS supporting those? How game modding can be done in this situation? Is it possible to run server on version 1.13c and have client with 1.14? (is there even point actually?) I know PoD is doing similar thing. If I'm not mistaken their server runs on 1.13d but clients are 1.13c. So it means that all fixes for 1.13d are present on server, like for this particular patch 'aura stacking bug'? What about differences between two versions? Are there no conflicts with outdated code? PVPGN states it supports versions 1.14 so I'm particulary intrested how this is achieved? Or is just luck that code merged to game.exe does not differ from original dlls and all works toghether?
4) D2GS. I read some history about this tool but I'm a little bit confused. Original one was developed by three guys and supported by Marsgod until 1.13c. Also no source code is available for his dll apart from original release for 1.09d.
There is also version for 1.13c done by Tesseract. If I'm correct this guy took source code for 1.09d and modified it with some cool stuff. But apparently nobody is able to build his source code with PVPGN yes? Or nobody is able to build it only under Windows? Is it working on Linux? I assume running D2GS by Tesseract is the holy grail as it provides source code which can be modified. Does his work also includes things which were developt by Marsgod until he stopped supporting it?
I also saw some posts about people concened about some vulnerabilities of D2GS? Is Tesseract one more safe?
Hopefully I'll get some answers about these.
Cheers