Diablo 2 levels generator questions

Threads that no longer serve a purpose. Read-only.
morzher
Skeleton
2 | 0
Hello, guys!

I'm working on an open-source diablo 2 implementation. And since preset levels are working fine, I'm going to develop procedural levels generator. However there is a huge gap in metainformation needed.

I've read several discussions related to the topic:
http://d2mods.info/forum/viewtopic.php?t=9098
http://www.medianxl.com/t498-levels-the-less-obvious-things

And still not getting the idea of:
1) lvlprest.txt. This file contains a LOT of ds1 files used in the generation process, but where are the links to it?
For example, I found that bord1o.ds1 is an open level border, which can be used as a passage between levels, etc. But I really don't like the idea to hardcode all this knowledge into the generator.
Also lvlprest.txt contains such unique locations like Cairn stones, Inifuss tree, but where is the link with particular levels to place those locations?
Same story with mazes. How does the game knows which lvlprest records to use in order to generate a particular level?

2) How game does detect/know ds1 files orientations? For example act 1 town has 4 variations, but I can't find any txt/ds1 files information about particular ds1 orientation. Also south and east variations have following transitions (TownETrans.ds1, TownSTrans.ds1), but I have no glue how to generate it. I hope and believe that it's not hard coded into the code.

3) How game does know that Burial Grounds level is connected to the Cold Planes? I'm trying to build an outdoor levels graph using levels.txt file. Everything seems very logical, except -1 offsets, which level is considered as a base starting point?
Levels.txt slice just for your convenience:
https://drive.google.com/file/d/0B56lP1jrdajxX1JnaVRyWWMtYTA/view

Any help and information is highly appreciated, thank you!

P.S. I'm not sure that it's an appropriate forum for such questions. Point me to the right direction if needed.
Edited by morzher 6 years.
User avatar
RollsRoyce
Djinn
523 | 51
Common Love Badge
Earned over 20 cookies
Great Supporter Badge
Donated 5 times
Legendary Patron Badge
Patreon Contributor
Common Contribution Badge
Has collaborated to our forums, realms or mod
hi is your code open source?
Which language/frameworks do you base your development on?

Im sorry but i cannot answer those question, i coudl only guess
morzher
Skeleton
2 | 0
RollsRoyce wrote:hi is your code open source?
Which language/frameworks do you base your development on?


Yes, it's open-source, you can find source code here https://github.com/mofr/diablerie. It's written on pure C# currently and based on the Unity Engine. In future I'll probably write some critical parts in C/C++ (such as mpq decompression or dcc files decoding).

RollsRoyce wrote:Im sorry but i cannot answer those question, i coudl only guess


Please, tell me all of your guesses, even if it's crazy as hell, because I'm out of ideas.
The only thing that I could imagine is that the game scans all ds1 files/lvlpresets and based on tile grid edges decide how to stitch them together. However, it sounds unrealistic to me.