Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dungeon generation of Cathedral #17

Open
mewmew opened this issue Jan 23, 2018 · 2 comments
Open

Dungeon generation of Cathedral #17

mewmew opened this issue Jan 23, 2018 · 2 comments

Comments

@mewmew
Copy link
Contributor

mewmew commented Jan 23, 2018

Now that DGEngine supports TMX maps, it would be interesting to hook the engine up to make use of the original dungeon generation algorithms of Diablo 1.

@7i and I wrote a stand-alone tool which outputs the tiles of a Cathedral map based on its dungeon level, seed and active quest.

For dungeon level 1 with seed 123, the dynamic random layout generation algorithm of Diablo 1 produces the following map.

Dungeon level 1, seed 123

To produce the above map, run the following commands:

# Download Go (https://golang.org/doc/install)
$ export GOPATH=/tmp/go
$ export PATH=$GOPATH/bin:$PATH

$ mkdir /tmp/foo
$ cd /tmp/foo

# Extract DIABDAT.MPQ to the diabdat/ directory (files should have lowercase filenames).
$ go get github.com/sanctuary/mpq
$ cp /path/to/diabdat.mpq diabdat.mpq
$ mpq -dir diabdat -m diabdat.mpq

# Get the l1 tool
$ go get github.com/sanctuary/djavul/cmd/l1

# Copy Diablo.exe version 1.09b to the current working directory.
# The l1 tools reads tables for tile shadows from the executable.
$ cp /path/to/diablo-v1.09b.exe diablo.exe

# Output the dungeon pieces of the map with dungeon level 1 and seed 123.
$ l1 -seed 123 -dpieces
40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,5,6,5,6,41,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,41,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,39,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,39,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,23,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,23,2,286,287,346,347,262,263,23,2,346,347,346,347,216,217,30,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,7,4,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,288,289,348,349,264,265,7,4,348,349,348,349,218,219,32,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,224,225,350,351,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,350,351,346,347,23,2,124,290,262,263,23,2,350,351,30,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,226,4,352,353,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,352,353,348,349,7,4,291,292,264,265,7,4,352,353,32,33,36,33,36,33,40,31,40,31,9,6,5,6,197,198,5,6,5,6,241,242,245,246,448,438,40,31,40,31,40,31,40,31,319,2,300,2,300,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,350,351,23,2,216,217,350,351,346,347,346,347,346,347,30,31,40,31,40,31,36,33,36,33,3,4,7,4,199,200,7,4,7,4,7,4,7,4,446,440,36,33,36,33,36,33,36,33,320,302,301,302,301,302,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,352,353,7,4,218,219,352,353,348,349,348,349,348,349,32,33,36,33,36,33,40,31,40,31,1,2,346,347,23,2,23,2,224,225,262,263,350,351,9,6,5,6,9,6,5,6,5,6,20,11,22,11,22,11,30,31,40,31,40,31,40,31,40,31,9,6,5,6,243,244,237,238,5,6,5,6,28,2,350,351,262,263,220,221,346,347,124,290,23,2,23,2,216,217,437,438,40,31,40,31,36,33,36,33,3,4,348,349,7,4,7,4,226,4,264,265,352,353,3,4,7,4,3,4,7,4,7,4,3,4,7,4,7,4,32,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,7,4,7,4,7,4,7,4,352,353,264,265,222,223,348,349,291,292,7,4,7,4,218,219,439,440,36,33,36,33,40,31,40,31,1,2,284,285,346,347,220,221,350,351,23,2,296,297,1,2,312,2,1,2,346,347,312,2,1,2,262,263,312,2,437,438,40,31,40,31,40,31,40,31,1,2,286,287,262,263,346,347,293,2,23,2,23,2,346,347,23,2,284,285,346,347,9,6,45,46,5,6,445,442,37,31,40,31,40,31,36,33,36,33,3,4,7,4,348,349,222,223,352,353,7,4,298,299,3,4,313,314,3,4,348,349,313,314,3,4,264,265,313,314,439,440,36,33,36,33,36,33,36,33,3,4,288,289,264,265,348,349,294,295,7,4,7,4,348,349,7,4,7,4,348,349,3,4,7,4,7,4,446,440,36,33,36,33,36,33,40,31,40,31,1,2,224,225,346,347,350,351,216,217,346,347,296,297,21,2,307,308,28,2,350,351,307,308,28,2,23,2,307,308,14,15,41,31,40,31,40,31,40,31,1,2,346,347,346,347,346,347,350,351,350,351,350,351,216,217,262,263,350,351,23,2,1,2,350,351,23,2,30,31,40,31,40,31,40,31,36,33,36,33,3,4,226,4,348,349,352,353,218,219,348,349,298,299,12,4,7,4,7,4,352,353,7,4,7,4,7,4,7,4,7,4,39,33,36,33,36,33,36,33,3,4,348,349,348,349,348,349,352,353,352,353,352,353,218,219,264,265,352,353,7,4,3,4,352,353,7,4,32,33,36,33,36,33,36,33,40,31,40,31,1,2,350,351,224,225,350,351,346,347,23,2,216,217,1,2,23,2,346,347,350,351,346,347,23,2,293,2,23,2,220,221,437,438,40,31,40,31,40,31,1,2,346,347,346,347,346,347,23,2,23,2,350,351,23,2,262,263,350,351,346,347,1,2,350,351,350,351,30,31,40,31,40,31,40,31,36,33,36,33,3,4,352,353,226,4,352,353,348,349,7,4,218,219,3,4,7,4,348,349,352,353,348,349,7,4,294,295,7,4,222,223,439,440,36,33,36,33,36,33,3,4,348,349,348,349,348,349,7,4,7,4,352,353,7,4,264,265,352,353,348,349,3,4,352,353,352,353,32,33,36,33,36,33,36,33,40,31,40,31,42,35,34,35,34,35,34,35,441,442,13,2,350,351,207,2,300,2,300,2,300,2,300,2,220,221,293,2,350,351,346,347,9,6,5,6,5,6,41,31,1,2,350,351,346,347,350,351,220,221,300,2,300,2,300,2,300,2,300,2,300,2,1,2,23,2,350,351,437,438,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,352,353,208,4,301,302,301,302,301,302,301,302,222,223,294,295,352,353,348,349,3,4,7,4,7,4,39,33,3,4,352,353,348,349,352,353,222,223,301,302,301,302,301,302,301,302,301,302,301,302,3,4,7,4,352,353,439,440,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,441,442,47,48,45,46,64,48,445,442,34,35,34,35,441,442,13,2,224,225,224,225,437,438,42,35,441,442,9,6,45,46,197,198,445,442,20,11,22,11,22,11,22,11,22,11,38,35,34,35,441,442,37,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,49,4,7,4,7,4,446,440,36,33,36,33,443,440,3,4,226,4,226,4,439,440,36,33,443,440,3,4,7,4,199,200,446,440,3,4,7,4,7,4,7,4,7,4,39,33,36,33,443,440,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,29,2,262,263,23,2,9,6,5,6,241,242,203,204,28,2,220,221,350,351,9,6,5,6,5,6,28,2,350,351,23,2,30,31,1,2,346,347,216,217,350,351,350,351,30,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,264,265,7,4,3,4,7,4,7,4,7,4,7,4,222,223,352,353,3,4,7,4,7,4,7,4,352,353,7,4,32,33,3,4,348,349,218,219,352,353,352,353,32,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,235,2,346,347,346,347,346,347,1,2,346,347,346,347,346,347,350,351,350,351,296,297,1,2,262,263,220,221,216,217,346,347,350,351,30,31,1,2,350,351,350,351,346,347,23,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,236,4,348,349,348,349,348,349,3,4,348,349,348,349,348,349,352,353,352,353,298,299,3,4,264,265,222,223,218,219,348,349,352,353,32,33,3,4,352,353,352,353,348,349,7,4,32,33,36,33,36,33,36,33,36,33,36,33,36,33,9,6,5,6,203,204,5,6,5,6,5,6,5,6,41,31,40,31,40,31,207,2,23,2,220,221,282,283,43,2,346,347,23,2,346,347,300,2,300,2,296,297,21,2,282,283,300,2,300,2,300,2,300,2,30,31,235,2,350,351,346,347,350,351,350,351,437,438,40,31,40,31,40,31,40,31,40,31,40,31,3,4,7,4,7,4,7,4,7,4,7,4,7,4,39,33,36,33,36,33,208,4,7,4,222,223,7,4,44,4,348,349,7,4,348,349,301,302,301,302,298,299,12,4,7,4,301,302,301,302,301,302,301,302,32,33,236,4,352,353,348,349,352,353,352,353,439,440,36,33,36,33,36,33,36,33,36,33,36,33,1,2,350,351,350,351,23,2,23,2,293,2,23,2,30,31,40,31,40,31,449,442,9,6,245,246,45,46,445,442,34,35,34,35,441,442,9,6,22,11,5,6,445,442,34,35,441,442,20,11,22,11,22,11,30,31,42,35,34,35,34,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,3,4,352,353,352,353,7,4,7,4,294,295,7,4,32,33,36,33,36,33,443,440,3,4,7,4,7,4,446,440,36,33,36,33,443,440,3,4,7,4,7,4,446,440,36,33,443,440,3,4,7,4,7,4,32,33,36,33,36,33,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,1,2,23,2,262,263,23,2,23,2,23,2,296,297,437,438,40,31,40,31,40,31,1,2,124,290,23,2,9,6,5,6,5,6,5,6,28,2,124,2,346,347,14,15,5,6,5,6,28,2,350,351,23,2,437,438,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,3,4,7,4,264,265,7,4,7,4,7,4,298,299,439,440,36,33,36,33,36,33,3,4,291,292,7,4,3,4,7,4,7,4,7,4,7,4,273,274,348,349,7,4,7,4,7,4,7,4,352,353,7,4,439,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,239,2,262,263,220,221,346,347,350,351,23,2,303,304,65,15,237,238,5,6,5,6,13,2,346,347,346,347,1,2,124,2,106,107,110,111,124,2,275,276,270,271,220,221,350,351,350,351,350,351,38,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,247,242,5,6,41,31,40,31,40,31,240,4,264,265,222,223,348,349,352,353,7,4,305,306,58,4,7,4,7,4,7,4,3,4,348,349,348,349,3,4,125,126,108,109,112,113,273,274,7,277,272,4,222,223,352,353,352,353,352,353,39,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,39,33,36,33,36,33,1,2,23,2,23,2,346,347,286,287,282,283,303,304,62,2,350,351,23,2,312,2,1,2,350,351,346,347,1,2,122,123,114,115,118,119,275,276,270,271,350,351,124,2,262,263,346,347,216,217,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,350,351,30,31,40,31,40,31,3,4,7,4,7,4,348,349,288,289,7,4,305,306,63,4,352,353,7,4,313,314,3,4,352,353,348,349,3,4,7,4,116,117,120,121,7,277,272,4,352,353,273,274,264,265,348,349,218,219,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,352,353,32,33,36,33,36,33,256,2,346,347,346,347,346,347,346,347,23,2,303,304,62,2,220,221,350,351,307,308,28,2,350,351,346,347,1,2,124,2,23,2,315,316,23,2,23,2,315,316,275,276,270,271,346,347,346,347,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,23,2,350,351,30,31,40,31,40,31,257,4,348,349,348,349,348,349,348,349,7,4,305,306,63,4,222,223,352,353,7,4,7,4,352,353,348,349,3,4,273,274,7,4,317,318,7,4,7,4,317,318,7,277,272,4,348,349,348,349,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,352,353,32,33,36,33,36,33,1,2,23,2,262,263,346,347,262,263,346,347,303,304,62,2,262,263,346,347,350,351,350,351,23,2,23,2,1,2,275,276,270,271,307,308,25,26,216,217,307,308,25,26,346,347,346,347,293,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,124,290,350,351,30,31,40,31,40,31,3,4,7,4,264,265,348,349,264,265,348,349,305,306,63,4,264,265,348,349,352,353,352,353,7,4,7,4,3,4,7,277,272,4,7,4,27,4,218,219,7,4,27,4,348,349,348,349,294,295,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,291,292,352,353,32,33,36,33,36,33,42,35,441,442,9,6,5,6,201,202,13,2,303,304,62,2,350,351,350,351,350,351,346,347,346,347,23,2,1,2,23,2,350,351,23,2,220,221,350,351,282,283,124,2,23,2,350,351,23,2,30,31,40,31,40,31,40,31,40,31,40,31,137,138,448,438,40,31,1,2,346,347,282,283,30,31,40,31,40,31,36,33,443,440,3,4,7,4,7,4,3,4,305,306,63,4,352,353,352,353,352,353,348,349,348,349,7,4,3,4,7,4,352,353,7,4,222,223,352,353,7,4,273,274,7,4,352,353,7,4,32,33,36,33,36,33,36,33,36,33,36,33,139,140,446,440,36,33,3,4,348,349,7,4,32,33,36,33,36,33,40,31,40,31,1,2,350,351,312,2,1,2,296,297,43,2,346,347,350,351,350,351,23,2,350,351,224,225,1,2,293,2,23,2,315,316,350,351,346,347,315,316,275,276,270,271,346,347,23,2,30,31,40,31,40,31,40,31,9,6,5,127,129,130,133,134,5,6,9,6,5,6,45,46,30,31,40,31,40,31,36,33,36,33,3,4,352,353,313,314,3,4,298,299,44,4,348,349,352,353,352,353,7,4,352,353,226,4,3,4,294,295,7,4,317,318,352,353,348,349,317,318,7,277,272,4,348,349,7,4,32,33,36,33,36,33,36,33,3,4,7,128,131,132,135,136,7,4,3,4,7,4,7,4,32,33,36,33,36,33,9,6,5,6,28,2,23,2,307,308,28,2,303,304,62,2,23,2,346,347,346,347,350,351,445,442,441,442,13,2,23,2,224,225,307,308,25,26,23,2,307,308,25,26,23,2,350,351,216,217,30,31,40,31,40,31,40,31,1,2,262,263,141,142,143,2,23,2,1,2,350,351,23,2,30,31,40,31,40,31,3,4,7,4,7,4,7,4,7,4,7,4,305,306,63,4,7,4,348,349,348,349,352,353,446,440,443,440,3,4,7,4,226,4,7,4,27,4,7,4,7,4,27,4,7,4,352,353,218,219,32,33,36,33,36,33,36,33,3,4,264,265,7,4,7,4,7,4,3,4,352,353,7,4,32,33,36,33,36,33,1,2,350,351,23,2,350,351,216,217,220,221,303,304,62,2,23,2,350,351,346,347,445,442,40,31,40,31,1,2,124,290,224,225,23,2,346,347,350,351,220,221,350,351,350,351,346,347,220,221,30,31,40,31,40,31,40,31,1,2,350,351,350,351,350,351,23,2,1,2,23,2,282,283,30,31,40,31,40,31,3,4,352,353,7,4,352,353,218,219,222,223,305,306,63,4,7,4,352,353,348,349,446,440,36,33,36,33,3,4,291,292,226,4,7,4,348,349,352,353,222,223,352,353,352,353,348,349,222,223,32,33,36,33,36,33,36,33,3,4,352,353,352,353,352,353,7,4,3,4,7,4,7,4,32,33,36,33,36,33,1,2,350,351,346,347,346,347,293,2,346,347,303,304,62,2,23,2,282,283,346,347,9,6,201,202,5,6,13,2,350,351,346,347,124,290,220,221,346,347,284,285,346,347,220,221,350,351,346,347,437,438,40,31,40,31,40,31,1,2,350,351,23,2,23,2,346,347,227,2,350,351,350,351,30,31,40,31,40,31,3,4,352,353,348,349,348,349,294,295,348,349,305,306,63,4,7,4,7,4,348,349,3,4,7,4,7,4,3,4,352,353,348,349,291,292,222,223,348,349,7,4,348,349,222,223,352,353,348,349,439,440,36,33,36,33,36,33,3,4,352,353,7,4,7,4,348,349,228,4,352,353,352,353,32,33,36,33,36,33,42,35,441,442,9,6,45,46,5,6,38,35,34,35,34,35,34,35,34,35,441,442,13,2,346,347,284,285,1,2,216,217,23,2,300,2,300,2,300,2,300,2,23,2,346,347,346,347,350,351,9,6,5,6,322,323,448,438,1,2,346,347,23,2,346,347,23,2,1,2,23,2,23,2,30,31,40,31,40,31,36,33,443,440,3,4,7,4,7,4,39,33,36,33,36,33,36,33,36,33,443,440,3,4,348,349,7,4,3,4,218,219,7,4,301,302,301,302,301,302,301,302,7,4,348,349,348,349,352,353,3,4,7,4,298,299,446,440,3,4,348,349,7,4,348,349,7,4,3,4,7,4,7,4,32,33,36,33,36,33,40,31,40,31,1,2,23,2,23,2,437,438,40,31,40,31,40,31,40,31,40,31,239,2,23,2,23,2,9,6,245,246,5,6,445,442,47,48,45,46,64,48,38,35,34,35,34,35,441,442,13,2,346,347,296,297,24,6,28,2,346,347,23,2,346,347,346,347,1,2,346,347,284,285,30,31,40,31,40,31,36,33,36,33,3,4,7,4,7,4,439,440,36,33,36,33,36,33,36,33,36,33,240,4,7,4,7,4,3,4,7,4,7,4,446,440,49,4,7,4,7,4,39,33,36,33,36,33,443,440,3,4,348,349,298,299,12,4,7,4,348,349,7,4,348,349,348,349,3,4,348,349,7,4,32,33,36,33,36,33,40,31,40,31,42,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,312,2,1,2,23,2,23,2,30,31,1,2,23,2,23,2,30,31,40,31,40,31,40,31,207,2,350,351,296,297,21,2,23,2,262,263,346,347,350,351,312,2,1,2,23,2,312,2,437,438,40,31,40,31,36,33,36,33,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,313,314,3,4,7,4,7,4,32,33,3,4,7,4,7,4,32,33,36,33,36,33,36,33,208,4,352,353,298,299,12,4,7,4,264,265,348,349,352,353,313,314,3,4,7,4,313,314,439,440,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,29,2,346,347,307,308,28,2,224,225,350,351,30,31,1,2,350,351,350,351,30,31,9,6,5,6,5,6,13,2,224,225,312,2,21,2,124,290,350,351,350,351,350,351,307,308,28,2,346,347,307,308,14,15,41,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,348,349,7,4,7,4,226,4,352,353,32,33,3,4,352,353,352,353,32,33,3,4,7,4,7,4,3,4,226,4,313,314,12,4,291,292,352,353,352,353,352,353,7,4,7,4,348,349,7,4,7,4,39,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,23,2,350,351,23,2,23,2,23,2,262,263,30,31,256,2,350,351,350,351,30,31,1,2,350,351,23,2,28,2,350,351,307,308,14,15,13,2,23,2,23,2,23,2,23,2,346,347,262,263,23,2,346,347,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,352,353,7,4,7,4,7,4,264,265,32,33,257,4,352,353,352,353,32,33,3,4,352,353,7,4,7,4,352,353,7,4,7,4,3,4,7,4,7,4,7,4,7,4,348,349,264,265,7,4,348,349,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,284,285,23,2,23,2,220,221,350,351,350,351,437,438,1,2,346,347,312,2,437,438,1,2,124,290,350,351,23,2,346,347,23,2,346,347,1,2,224,225,346,347,23,2,220,221,346,347,350,351,284,285,346,347,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,7,4,222,223,352,353,352,353,439,440,3,4,348,349,313,314,439,440,3,4,291,292,352,353,7,4,348,349,7,4,348,349,3,4,226,4,348,349,7,4,222,223,348,349,352,353,7,4,348,349,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,441,442,9,6,229,230,45,46,9,6,29,2,350,351,307,308,14,15,13,2,346,347,312,2,350,351,23,2,23,2,350,351,319,2,300,2,300,2,300,2,300,2,300,2,300,2,300,2,300,2,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,7,4,7,4,3,4,7,4,352,353,7,4,7,4,3,4,348,349,313,314,352,353,7,4,7,4,352,353,320,302,301,302,301,302,301,302,301,302,301,302,301,302,301,302,301,302,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,29,2,216,217,124,2,28,2,220,221,220,221,23,2,346,347,28,2,350,351,307,308,14,15,38,35,34,35,441,442,20,11,22,11,22,11,22,11,22,11,22,11,22,11,22,11,248,249,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,218,219,273,274,7,4,222,223,222,223,7,4,348,349,7,4,352,353,7,4,7,4,39,33,36,33,443,440,3,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,23,2,275,276,270,271,350,351,23,2,350,351,23,2,346,347,216,217,286,287,23,2,30,31,40,31,40,31,1,2,350,351,23,2,346,347,224,225,23,2,350,351,286,287,346,347,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,7,4,7,277,272,4,352,353,7,4,352,353,7,4,348,349,218,219,288,289,7,4,32,33,36,33,36,33,3,4,352,353,7,4,348,349,226,4,7,4,352,353,288,289,348,349,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,346,347,346,347,350,351,350,351,23,2,220,221,220,221,300,2,300,2,300,2,300,2,346,347,437,438,40,31,40,31,42,35,34,35,34,35,441,442,13,2,346,347,350,351,23,2,23,2,437,438,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,348,349,348,349,352,353,352,353,7,4,222,223,222,223,301,302,301,302,301,302,301,302,348,349,439,440,36,33,36,33,36,33,36,33,36,33,443,440,3,4,348,349,352,353,7,4,7,4,439,440,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,441,442,13,2,350,351,350,351,286,287,350,351,20,11,22,11,22,11,65,15,14,15,5,6,203,204,41,31,40,31,40,31,40,31,42,35,34,35,34,35,34,35,441,442,37,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,352,353,352,353,288,289,352,353,3,4,7,4,7,4,58,4,7,4,7,4,7,4,39,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,34,35,441,442,13,2,23,2,296,297,43,2,350,351,293,2,346,347,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,7,4,298,299,44,4,352,353,294,295,348,349,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,303,304,62,2,293,2,23,2,262,263,437,438,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,305,306,63,4,294,295,7,4,264,265,439,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,262,263,350,351,445,442,34,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,264,265,352,353,446,440,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33

Note that the TMX map is 80x80 in size.

Screenshot from within DGEngine

{
...
 "height":80,
 "width":80
 "layers":[
        {
         "data":[40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,5,6,5,6,41,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,41,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,39,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,39,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,23,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,23,2,286,287,346,347,262,263,23,2,346,347,346,347,216,217,30,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,7,4,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,288,289,348,349,264,265,7,4,348,349,348,349,218,219,32,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,224,225,350,351,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,350,351,346,347,23,2,124,290,262,263,23,2,350,351,30,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,226,4,352,353,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,352,353,348,349,7,4,291,292,264,265,7,4,352,353,32,33,36,33,36,33,40,31,40,31,9,6,5,6,197,198,5,6,5,6,241,242,245,246,448,438,40,31,40,31,40,31,40,31,319,2,300,2,300,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,350,351,23,2,216,217,350,351,346,347,346,347,346,347,30,31,40,31,40,31,36,33,36,33,3,4,7,4,199,200,7,4,7,4,7,4,7,4,446,440,36,33,36,33,36,33,36,33,320,302,301,302,301,302,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,352,353,7,4,218,219,352,353,348,349,348,349,348,349,32,33,36,33,36,33,40,31,40,31,1,2,346,347,23,2,23,2,224,225,262,263,350,351,9,6,5,6,9,6,5,6,5,6,20,11,22,11,22,11,30,31,40,31,40,31,40,31,40,31,9,6,5,6,243,244,237,238,5,6,5,6,28,2,350,351,262,263,220,221,346,347,124,290,23,2,23,2,216,217,437,438,40,31,40,31,36,33,36,33,3,4,348,349,7,4,7,4,226,4,264,265,352,353,3,4,7,4,3,4,7,4,7,4,3,4,7,4,7,4,32,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,7,4,7,4,7,4,7,4,352,353,264,265,222,223,348,349,291,292,7,4,7,4,218,219,439,440,36,33,36,33,40,31,40,31,1,2,284,285,346,347,220,221,350,351,23,2,296,297,1,2,312,2,1,2,346,347,312,2,1,2,262,263,312,2,437,438,40,31,40,31,40,31,40,31,1,2,286,287,262,263,346,347,293,2,23,2,23,2,346,347,23,2,284,285,346,347,9,6,45,46,5,6,445,442,37,31,40,31,40,31,36,33,36,33,3,4,7,4,348,349,222,223,352,353,7,4,298,299,3,4,313,314,3,4,348,349,313,314,3,4,264,265,313,314,439,440,36,33,36,33,36,33,36,33,3,4,288,289,264,265,348,349,294,295,7,4,7,4,348,349,7,4,7,4,348,349,3,4,7,4,7,4,446,440,36,33,36,33,36,33,40,31,40,31,1,2,224,225,346,347,350,351,216,217,346,347,296,297,21,2,307,308,28,2,350,351,307,308,28,2,23,2,307,308,14,15,41,31,40,31,40,31,40,31,1,2,346,347,346,347,346,347,350,351,350,351,350,351,216,217,262,263,350,351,23,2,1,2,350,351,23,2,30,31,40,31,40,31,40,31,36,33,36,33,3,4,226,4,348,349,352,353,218,219,348,349,298,299,12,4,7,4,7,4,352,353,7,4,7,4,7,4,7,4,7,4,39,33,36,33,36,33,36,33,3,4,348,349,348,349,348,349,352,353,352,353,352,353,218,219,264,265,352,353,7,4,3,4,352,353,7,4,32,33,36,33,36,33,36,33,40,31,40,31,1,2,350,351,224,225,350,351,346,347,23,2,216,217,1,2,23,2,346,347,350,351,346,347,23,2,293,2,23,2,220,221,437,438,40,31,40,31,40,31,1,2,346,347,346,347,346,347,23,2,23,2,350,351,23,2,262,263,350,351,346,347,1,2,350,351,350,351,30,31,40,31,40,31,40,31,36,33,36,33,3,4,352,353,226,4,352,353,348,349,7,4,218,219,3,4,7,4,348,349,352,353,348,349,7,4,294,295,7,4,222,223,439,440,36,33,36,33,36,33,3,4,348,349,348,349,348,349,7,4,7,4,352,353,7,4,264,265,352,353,348,349,3,4,352,353,352,353,32,33,36,33,36,33,36,33,40,31,40,31,42,35,34,35,34,35,34,35,441,442,13,2,350,351,207,2,300,2,300,2,300,2,300,2,220,221,293,2,350,351,346,347,9,6,5,6,5,6,41,31,1,2,350,351,346,347,350,351,220,221,300,2,300,2,300,2,300,2,300,2,300,2,1,2,23,2,350,351,437,438,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,352,353,208,4,301,302,301,302,301,302,301,302,222,223,294,295,352,353,348,349,3,4,7,4,7,4,39,33,3,4,352,353,348,349,352,353,222,223,301,302,301,302,301,302,301,302,301,302,301,302,3,4,7,4,352,353,439,440,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,441,442,47,48,45,46,64,48,445,442,34,35,34,35,441,442,13,2,224,225,224,225,437,438,42,35,441,442,9,6,45,46,197,198,445,442,20,11,22,11,22,11,22,11,22,11,38,35,34,35,441,442,37,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,49,4,7,4,7,4,446,440,36,33,36,33,443,440,3,4,226,4,226,4,439,440,36,33,443,440,3,4,7,4,199,200,446,440,3,4,7,4,7,4,7,4,7,4,39,33,36,33,443,440,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,29,2,262,263,23,2,9,6,5,6,241,242,203,204,28,2,220,221,350,351,9,6,5,6,5,6,28,2,350,351,23,2,30,31,1,2,346,347,216,217,350,351,350,351,30,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,264,265,7,4,3,4,7,4,7,4,7,4,7,4,222,223,352,353,3,4,7,4,7,4,7,4,352,353,7,4,32,33,3,4,348,349,218,219,352,353,352,353,32,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,235,2,346,347,346,347,346,347,1,2,346,347,346,347,346,347,350,351,350,351,296,297,1,2,262,263,220,221,216,217,346,347,350,351,30,31,1,2,350,351,350,351,346,347,23,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,236,4,348,349,348,349,348,349,3,4,348,349,348,349,348,349,352,353,352,353,298,299,3,4,264,265,222,223,218,219,348,349,352,353,32,33,3,4,352,353,352,353,348,349,7,4,32,33,36,33,36,33,36,33,36,33,36,33,36,33,9,6,5,6,203,204,5,6,5,6,5,6,5,6,41,31,40,31,40,31,207,2,23,2,220,221,282,283,43,2,346,347,23,2,346,347,300,2,300,2,296,297,21,2,282,283,300,2,300,2,300,2,300,2,30,31,235,2,350,351,346,347,350,351,350,351,437,438,40,31,40,31,40,31,40,31,40,31,40,31,3,4,7,4,7,4,7,4,7,4,7,4,7,4,39,33,36,33,36,33,208,4,7,4,222,223,7,4,44,4,348,349,7,4,348,349,301,302,301,302,298,299,12,4,7,4,301,302,301,302,301,302,301,302,32,33,236,4,352,353,348,349,352,353,352,353,439,440,36,33,36,33,36,33,36,33,36,33,36,33,1,2,350,351,350,351,23,2,23,2,293,2,23,2,30,31,40,31,40,31,449,442,9,6,245,246,45,46,445,442,34,35,34,35,441,442,9,6,22,11,5,6,445,442,34,35,441,442,20,11,22,11,22,11,30,31,42,35,34,35,34,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,3,4,352,353,352,353,7,4,7,4,294,295,7,4,32,33,36,33,36,33,443,440,3,4,7,4,7,4,446,440,36,33,36,33,443,440,3,4,7,4,7,4,446,440,36,33,443,440,3,4,7,4,7,4,32,33,36,33,36,33,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,1,2,23,2,262,263,23,2,23,2,23,2,296,297,437,438,40,31,40,31,40,31,1,2,124,290,23,2,9,6,5,6,5,6,5,6,28,2,124,2,346,347,14,15,5,6,5,6,28,2,350,351,23,2,437,438,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,3,4,7,4,264,265,7,4,7,4,7,4,298,299,439,440,36,33,36,33,36,33,3,4,291,292,7,4,3,4,7,4,7,4,7,4,7,4,273,274,348,349,7,4,7,4,7,4,7,4,352,353,7,4,439,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,239,2,262,263,220,221,346,347,350,351,23,2,303,304,65,15,237,238,5,6,5,6,13,2,346,347,346,347,1,2,124,2,106,107,110,111,124,2,275,276,270,271,220,221,350,351,350,351,350,351,38,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,247,242,5,6,41,31,40,31,40,31,240,4,264,265,222,223,348,349,352,353,7,4,305,306,58,4,7,4,7,4,7,4,3,4,348,349,348,349,3,4,125,126,108,109,112,113,273,274,7,277,272,4,222,223,352,353,352,353,352,353,39,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,39,33,36,33,36,33,1,2,23,2,23,2,346,347,286,287,282,283,303,304,62,2,350,351,23,2,312,2,1,2,350,351,346,347,1,2,122,123,114,115,118,119,275,276,270,271,350,351,124,2,262,263,346,347,216,217,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,350,351,30,31,40,31,40,31,3,4,7,4,7,4,348,349,288,289,7,4,305,306,63,4,352,353,7,4,313,314,3,4,352,353,348,349,3,4,7,4,116,117,120,121,7,277,272,4,352,353,273,274,264,265,348,349,218,219,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,352,353,32,33,36,33,36,33,256,2,346,347,346,347,346,347,346,347,23,2,303,304,62,2,220,221,350,351,307,308,28,2,350,351,346,347,1,2,124,2,23,2,315,316,23,2,23,2,315,316,275,276,270,271,346,347,346,347,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,23,2,350,351,30,31,40,31,40,31,257,4,348,349,348,349,348,349,348,349,7,4,305,306,63,4,222,223,352,353,7,4,7,4,352,353,348,349,3,4,273,274,7,4,317,318,7,4,7,4,317,318,7,277,272,4,348,349,348,349,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,352,353,32,33,36,33,36,33,1,2,23,2,262,263,346,347,262,263,346,347,303,304,62,2,262,263,346,347,350,351,350,351,23,2,23,2,1,2,275,276,270,271,307,308,25,26,216,217,307,308,25,26,346,347,346,347,293,2,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,124,290,350,351,30,31,40,31,40,31,3,4,7,4,264,265,348,349,264,265,348,349,305,306,63,4,264,265,348,349,352,353,352,353,7,4,7,4,3,4,7,277,272,4,7,4,27,4,218,219,7,4,27,4,348,349,348,349,294,295,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,291,292,352,353,32,33,36,33,36,33,42,35,441,442,9,6,5,6,201,202,13,2,303,304,62,2,350,351,350,351,350,351,346,347,346,347,23,2,1,2,23,2,350,351,23,2,220,221,350,351,282,283,124,2,23,2,350,351,23,2,30,31,40,31,40,31,40,31,40,31,40,31,137,138,448,438,40,31,1,2,346,347,282,283,30,31,40,31,40,31,36,33,443,440,3,4,7,4,7,4,3,4,305,306,63,4,352,353,352,353,352,353,348,349,348,349,7,4,3,4,7,4,352,353,7,4,222,223,352,353,7,4,273,274,7,4,352,353,7,4,32,33,36,33,36,33,36,33,36,33,36,33,139,140,446,440,36,33,3,4,348,349,7,4,32,33,36,33,36,33,40,31,40,31,1,2,350,351,312,2,1,2,296,297,43,2,346,347,350,351,350,351,23,2,350,351,224,225,1,2,293,2,23,2,315,316,350,351,346,347,315,316,275,276,270,271,346,347,23,2,30,31,40,31,40,31,40,31,9,6,5,127,129,130,133,134,5,6,9,6,5,6,45,46,30,31,40,31,40,31,36,33,36,33,3,4,352,353,313,314,3,4,298,299,44,4,348,349,352,353,352,353,7,4,352,353,226,4,3,4,294,295,7,4,317,318,352,353,348,349,317,318,7,277,272,4,348,349,7,4,32,33,36,33,36,33,36,33,3,4,7,128,131,132,135,136,7,4,3,4,7,4,7,4,32,33,36,33,36,33,9,6,5,6,28,2,23,2,307,308,28,2,303,304,62,2,23,2,346,347,346,347,350,351,445,442,441,442,13,2,23,2,224,225,307,308,25,26,23,2,307,308,25,26,23,2,350,351,216,217,30,31,40,31,40,31,40,31,1,2,262,263,141,142,143,2,23,2,1,2,350,351,23,2,30,31,40,31,40,31,3,4,7,4,7,4,7,4,7,4,7,4,305,306,63,4,7,4,348,349,348,349,352,353,446,440,443,440,3,4,7,4,226,4,7,4,27,4,7,4,7,4,27,4,7,4,352,353,218,219,32,33,36,33,36,33,36,33,3,4,264,265,7,4,7,4,7,4,3,4,352,353,7,4,32,33,36,33,36,33,1,2,350,351,23,2,350,351,216,217,220,221,303,304,62,2,23,2,350,351,346,347,445,442,40,31,40,31,1,2,124,290,224,225,23,2,346,347,350,351,220,221,350,351,350,351,346,347,220,221,30,31,40,31,40,31,40,31,1,2,350,351,350,351,350,351,23,2,1,2,23,2,282,283,30,31,40,31,40,31,3,4,352,353,7,4,352,353,218,219,222,223,305,306,63,4,7,4,352,353,348,349,446,440,36,33,36,33,3,4,291,292,226,4,7,4,348,349,352,353,222,223,352,353,352,353,348,349,222,223,32,33,36,33,36,33,36,33,3,4,352,353,352,353,352,353,7,4,3,4,7,4,7,4,32,33,36,33,36,33,1,2,350,351,346,347,346,347,293,2,346,347,303,304,62,2,23,2,282,283,346,347,9,6,201,202,5,6,13,2,350,351,346,347,124,290,220,221,346,347,284,285,346,347,220,221,350,351,346,347,437,438,40,31,40,31,40,31,1,2,350,351,23,2,23,2,346,347,227,2,350,351,350,351,30,31,40,31,40,31,3,4,352,353,348,349,348,349,294,295,348,349,305,306,63,4,7,4,7,4,348,349,3,4,7,4,7,4,3,4,352,353,348,349,291,292,222,223,348,349,7,4,348,349,222,223,352,353,348,349,439,440,36,33,36,33,36,33,3,4,352,353,7,4,7,4,348,349,228,4,352,353,352,353,32,33,36,33,36,33,42,35,441,442,9,6,45,46,5,6,38,35,34,35,34,35,34,35,34,35,441,442,13,2,346,347,284,285,1,2,216,217,23,2,300,2,300,2,300,2,300,2,23,2,346,347,346,347,350,351,9,6,5,6,322,323,448,438,1,2,346,347,23,2,346,347,23,2,1,2,23,2,23,2,30,31,40,31,40,31,36,33,443,440,3,4,7,4,7,4,39,33,36,33,36,33,36,33,36,33,443,440,3,4,348,349,7,4,3,4,218,219,7,4,301,302,301,302,301,302,301,302,7,4,348,349,348,349,352,353,3,4,7,4,298,299,446,440,3,4,348,349,7,4,348,349,7,4,3,4,7,4,7,4,32,33,36,33,36,33,40,31,40,31,1,2,23,2,23,2,437,438,40,31,40,31,40,31,40,31,40,31,239,2,23,2,23,2,9,6,245,246,5,6,445,442,47,48,45,46,64,48,38,35,34,35,34,35,441,442,13,2,346,347,296,297,24,6,28,2,346,347,23,2,346,347,346,347,1,2,346,347,284,285,30,31,40,31,40,31,36,33,36,33,3,4,7,4,7,4,439,440,36,33,36,33,36,33,36,33,36,33,240,4,7,4,7,4,3,4,7,4,7,4,446,440,49,4,7,4,7,4,39,33,36,33,36,33,443,440,3,4,348,349,298,299,12,4,7,4,348,349,7,4,348,349,348,349,3,4,348,349,7,4,32,33,36,33,36,33,40,31,40,31,42,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,312,2,1,2,23,2,23,2,30,31,1,2,23,2,23,2,30,31,40,31,40,31,40,31,207,2,350,351,296,297,21,2,23,2,262,263,346,347,350,351,312,2,1,2,23,2,312,2,437,438,40,31,40,31,36,33,36,33,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,313,314,3,4,7,4,7,4,32,33,3,4,7,4,7,4,32,33,36,33,36,33,36,33,208,4,352,353,298,299,12,4,7,4,264,265,348,349,352,353,313,314,3,4,7,4,313,314,439,440,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,29,2,346,347,307,308,28,2,224,225,350,351,30,31,1,2,350,351,350,351,30,31,9,6,5,6,5,6,13,2,224,225,312,2,21,2,124,290,350,351,350,351,350,351,307,308,28,2,346,347,307,308,14,15,41,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,348,349,7,4,7,4,226,4,352,353,32,33,3,4,352,353,352,353,32,33,3,4,7,4,7,4,3,4,226,4,313,314,12,4,291,292,352,353,352,353,352,353,7,4,7,4,348,349,7,4,7,4,39,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,23,2,350,351,23,2,23,2,23,2,262,263,30,31,256,2,350,351,350,351,30,31,1,2,350,351,23,2,28,2,350,351,307,308,14,15,13,2,23,2,23,2,23,2,23,2,346,347,262,263,23,2,346,347,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,352,353,7,4,7,4,7,4,264,265,32,33,257,4,352,353,352,353,32,33,3,4,352,353,7,4,7,4,352,353,7,4,7,4,3,4,7,4,7,4,7,4,7,4,348,349,264,265,7,4,348,349,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,284,285,23,2,23,2,220,221,350,351,350,351,437,438,1,2,346,347,312,2,437,438,1,2,124,290,350,351,23,2,346,347,23,2,346,347,1,2,224,225,346,347,23,2,220,221,346,347,350,351,284,285,346,347,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,7,4,7,4,222,223,352,353,352,353,439,440,3,4,348,349,313,314,439,440,3,4,291,292,352,353,7,4,348,349,7,4,348,349,3,4,226,4,348,349,7,4,222,223,348,349,352,353,7,4,348,349,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,441,442,9,6,229,230,45,46,9,6,29,2,350,351,307,308,14,15,13,2,346,347,312,2,350,351,23,2,23,2,350,351,319,2,300,2,300,2,300,2,300,2,300,2,300,2,300,2,300,2,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,7,4,7,4,3,4,7,4,352,353,7,4,7,4,3,4,348,349,313,314,352,353,7,4,7,4,352,353,320,302,301,302,301,302,301,302,301,302,301,302,301,302,301,302,301,302,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,9,6,29,2,216,217,124,2,28,2,220,221,220,221,23,2,346,347,28,2,350,351,307,308,14,15,38,35,34,35,441,442,20,11,22,11,22,11,22,11,22,11,22,11,22,11,22,11,248,249,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,7,4,218,219,273,274,7,4,222,223,222,223,7,4,348,349,7,4,352,353,7,4,7,4,39,33,36,33,443,440,3,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,7,4,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,23,2,275,276,270,271,350,351,23,2,350,351,23,2,346,347,216,217,286,287,23,2,30,31,40,31,40,31,1,2,350,351,23,2,346,347,224,225,23,2,350,351,286,287,346,347,30,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,7,4,7,277,272,4,352,353,7,4,352,353,7,4,348,349,218,219,288,289,7,4,32,33,36,33,36,33,3,4,352,353,7,4,348,349,226,4,7,4,352,353,288,289,348,349,32,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,346,347,346,347,350,351,350,351,23,2,220,221,220,221,300,2,300,2,300,2,300,2,346,347,437,438,40,31,40,31,42,35,34,35,34,35,441,442,13,2,346,347,350,351,23,2,23,2,437,438,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,348,349,348,349,352,353,352,353,7,4,222,223,222,223,301,302,301,302,301,302,301,302,348,349,439,440,36,33,36,33,36,33,36,33,36,33,443,440,3,4,348,349,352,353,7,4,7,4,439,440,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,441,442,13,2,350,351,350,351,286,287,350,351,20,11,22,11,22,11,65,15,14,15,5,6,203,204,41,31,40,31,40,31,40,31,42,35,34,35,34,35,34,35,441,442,37,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,352,353,352,353,288,289,352,353,3,4,7,4,7,4,58,4,7,4,7,4,7,4,39,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,34,35,34,35,441,442,13,2,23,2,296,297,43,2,350,351,293,2,346,347,30,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,3,4,7,4,298,299,44,4,352,353,294,295,348,349,32,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,350,351,303,304,62,2,293,2,23,2,262,263,437,438,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,352,353,305,306,63,4,294,295,7,4,264,265,439,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,1,2,262,263,350,351,445,442,34,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,3,4,264,265,352,353,446,440,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,42,35,34,35,441,442,37,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,443,440,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,40,31,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33,36,33],
         "height":80,
         "width":80,
...

Note: The l1 tool has extensive tests to ensure that it implements the drlg algorithms correctly. At current, one edge case has been discovered where the output of l1 differs from the original output of Diablo 1. Compare for instance the output of the original and the reimplementation for seed 2588. Notice, that in the original map, there exist an area that is unreachable by players. This area is not reproduced in the reimplementation (but probably should be?). Therefore, the seed changes, and subsequent randomization of floor tiles etc change in the map. The reason for this oddity is that the original drlg algorithm contained a couple of out-of-bounds errors, which we decided to fix in the rewrite. However, the intention is to make it possible to also generate these broken maps, so that the output is identical to the original. At that point, we will run the original drlg algorithm for each of the 2^32 unique seeds and compare its output with that of the rewrite. Once they are identical for all seeds, the l1 tools is considered done.

Final note: The default output of the l1 tool is tile ID numbers (sometimes referred to as squares). Given the -dpieces flag, the l1 tool outputs dungeon piece ID numbers (sometimes referred to as pillars).

Cheers!
/u & i

@ghost
Copy link

ghost commented Jan 23, 2018

Thank you for letting me know. Level generation is one of the last things I had planned, as I can always load some of the .dun provided to test other missing functionality (doors, enemy AI, etc). What I was thinking initially was to get some nice auto generated levels as .JSON/.dun files and add them to the repo (sure, they would always be the same, but it would give a user the impression of having a full playable game engine while I work on the missing parts).

This is the roadmap I have in mind (doesn't necessarily mean I will follow it):

  • make engine generic enough to load levels / game assets other than Diablo's (done)
  • do the same for player textures (next - not major as most of the work was done for levels)
  • add some hardcoded levels + quests to test the game
  • implement enemy AI (for swords/enemies that don't throw missiles)

With these, the engine is playable.

Another thing I want to do is create a gamefiles folder that uses freely available game assets but is still Diablo (same quests, town folk, enemies). Was thinking of adding some of flare's game assets as a proof of concept.

I'll add some labels, features to the issues section to track stuff I want to implement.

@mewmew
Copy link
Contributor Author

mewmew commented Jan 24, 2018

Great to learn more about your rough roadmap! It definitely makes sense to focus on core elements first, and I think it would be a wonderful idea to make use of public game assets, such as those provided by flare, so that the engine becomes playable after a simple git clone (probably with --recursive, to download flare game assets as a subrepo).

As a side note, it would be trivial to make l1 output DUN files if that's preferable for interacting with the engine. That is basically what the -raw flag does today. Only need to add the width and height of the dungeon before the tiles (i.e. square IDs), and it's done.

Definitely create issues for the dedicated topics, so they may be discussed, tracked and elaborated upon.

@mewmew mewmew mentioned this issue Sep 12, 2018
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant