Designing game maps over email
Aug. 29th, 1992 05:58 pmSomewhere I have the Applesoft BASIC program I wrote to translate these drawings into the binary format we used for maps in the game. But Zog's source material here, with its annotations and quirks, is artistic in its own right.
Edit: I managed to dig up the program too! Here it is:
TROLLS BLOCK SYSTEM (Zog, 8/29/92) PRINT 'N SAVE!
* In the following solids: R = Red G = Green
B = Blue Z = Grey
XR, XG, XB, XZ -- Raised 3-D geometric blox
[R, [G, [B, [Z -- Concrete (question blocks w/o questions!)
#R, #G, #B, #Z -- Smashable brick blocks
?R, ?G, ?B, ?Z -- Question blocks (of course!)
!R, !G, !B, !Z -- MushRoom in a ? block
@R, @G, @B, @Z -- An invisible block, most likely just a ? with a coin.
One complete vertical pipe with One complete horizontal pipe with both
both ends flanged: ends flanged: (Rarely used, so far..)
[PP] << Pipe tops Q1------Q3 (Yeah, it's ugly,
|PP| Q2======Q4 so what?)
|PP| << Pipe sides
|PP| Pipe segs w/ green: (not always indicated
(PP) << Pipe bottoms {P, P}, *-, *= in my maps, unfort.)
$$ << Coin $C << Cola $B << Beer ^^ << TNT?
$P << Pizza $H << Cow Meat Is there anything else??
Rocky ground: /RRRRRR\ Green mound ground: /ZZZZZZ\ (/Z and Z\ with
RRRRRRRR |......| a green bkgnd
will be /B and
B\ .)
Big white block: /000000\ Wood blocks: /WWWWWW\
|;;;;;;| (without sky |wwwwww|
|;;;;;;| shadowing) |wwwwww|AWWWW\
\______/ |wwwwww|fwwww|
Shadows for white blocks
and wood blocks: /0000\
|;;;;|f. << Side shadow is 'f'
|;;;;|f.
\____/f.
Bottom shadow is 'h' >> h.h.g. << corner shadow is 'g'
So, on sky: f. g. and h.
on wood: fw gw and hw
on white: f; g; and h;
Puffy sand dunes: /VVVVVV\ Sand shadows: VVV\
(without sky |vvvvvv| /VVVV\ vvv|# << round= c
shadowing) |v/AVVVVV\ |vvvv| vvv|# << bumpy= d
|v|avvvvv| |vvvv| vvv|# << straight= e
|v|avvvva|AVVVA\cvv|
|v|avvvva|evvva|dvv| So, on sky: c. d. and e.
|v|avvvva|evvva|evv| on dune: cv dv and ev
|v|avvvva|evvva|evv|
Background stuff:
/\
A palm tree: pPPp Some green hills: /\ //..\\ /\
qQQq //..\\ //......\\//..\\
Q5 //......\\//........./......\\
Q6 //..........\......../..........\\
Q6 //..............\..../..............\\
Q6
Q7
Notes:
* Did you notice that all the "A" or "a" blocks are "ANAL???"
* Yes, there are more backgrounds to come...
* I am also sending the first map. Take a look and tell me what you think. It al
so has one underground room, like one of the SMB2 jars.
Level 1-3:
NOTES: Add more coins and yummies and background stuff!... Also, I have realize
d that I don't have enough wood/white block shadows to cover the 2 opposite shad
ow corners... (Huh??) Well, don't worry, all in good time. Just try the map and
see what you think! One more note: As you can tell, there are still no real bac
kground blocks (except shadows and platform fills, big deal...) I will design co
des for those and foward them to you!
Now, here it is, LEVEL 1-3: (?)
0:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0>
1>
2> ?R
3> ?G
4>
5> /ZZZZZZZZZZZZZZZZZZ\
6> /ZZZZZZ\ |zzzzzzz?B?Bzzzzzzz|
7> |zzzzzz| [G#R[G#R[G |zzzzzzzzzzzzzzzzzz|
8> RRRRRRRRR\ |zzzzzz| |zzzzzzzzzzzzzzzzzz|
9> RRRRRRRRRR |zzzzzz| |zzzzzzzzzzzzzzzzzz|
A> RRRRRRRRRR |zzzzzz| |zzzzzXBXBXBXBzzzzz|
B> RRRRRRRRRR |zzzzzz| |zzzzzzzzzzzzzzzzzz|
1:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0>
1>
2>
3> /0000\
4> |;;;;| /0000000000000000\ /WWWWWWWW\ /WWWWWWWWW
5> \____/ |;;;;;;;;;;;;;;;;| |wwwwwwww| |wwwwwwwww
6> |;;;;;;;;;;;;;;;;| |www!Bwww| |wwwwwwwww
7> /00\;;;;;;;;;;;;/0000\ |w/00000000\ |wwwwwwwww
8> \__/;;;;;;;;;;;;|;?G;| |w\________/ |wwwwwwwww
9> |;;;;;;;;;;;;;\____/ |wwwwwwww| |wwwwwwwww
A> [PP] |;;;;;;;;;;;;;;;;| /WWWWWWWW\w| |wwwwwwwww
B> |PP| |;;;;;;;;;;;XR;;XR |wwwwwwww|w| |wwwwwwwww
2:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0> |PP| |PP| @R
1> |PP| |PP| pPPp
2> (PP) |PP| qQQq
3> (PP) Q5
4> WWW\ /0000000000000000\ ?R #G#G#GQ6#G#G#G
5> www| |;;;;;?G;;;;/WWWWWWWWWW\ #B#B#B[B#B#B#B
6> www| |;;;;;/00000000\wwwwwww| Q6
7> www| \_____|;;;;;;;;|wwwwwww| Q6
8> www| |;;;;;;;;|wwwwwww| Q6
9> www| /RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRQ7
A> www| RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
B> www| |;;;;;;;;| RRRRRRRRRRRR
3:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0> qQQq RRRRRR pPPp [R
1> pPPp pPPp Q5 RRRRRR qQQq
2> qQQq qQQq XRXRXRXRXRXR Q5
3> Q5 Q5 Q6pPPp Q6 Q6 [R
4> Q6 Q6 Q6qQQq Q6 Q6 [R
5> Q6 XRXRXRXRXRXR Q6 Q6
6> [B[B[B RRRRRR Q6 Q6 [R[R[R
7> Q6 RRRRRRQ6 Q6 Q6 Q6 [R
8> Q6 RRRRRR Q6 Q6[G[G[G Q6
9> Q7 RRRRRRQ6 Q6 Q6 Q6 Q6
A> RRRRRRRRRRRRRRRRRRRRRRRRRRRR Q6 Q6 Q6 Q6 Q6 [R
B> RRRRRRRRRRRRRRRRRRRRRRRRRR Q6 Q6 Q6 Q6 Q6
4:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0> [R [R //....\\
1> [R [R [R //........\\ //
2> [R ?R //[R..........\\//..
3> [R pPPp [R //................\...
4> qQ[R [R//........../BZZB\....\.
5> [R Q5 [R //....?R......|....|..../B
6> ?R Q6 [R //..............|....|....|.
7> ?RQ6 //[R..............|....|....|.
8> [R Q6 ?R //........[R........|....|....|.
9> [R Q6 [R//....................|....|....|.
A> [R Q6 //....[R................|....|....|.
B> [R Q6[R //............[R..........|....|....|.
5:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0> /\
1> ..\\
2> ....\\ #R#R#R
3> ......\\
4> ........\\
5> ZZZZB\....\\Q1----XGXG----Q3 [B?B!B[B Q1------XB
6> .....|......Q2====XGXG====Q4 [B Q2======XB
7> .....|........\\ |PP| |P
8> .....|\.........\\|PP| Q1------------XGXG------------Q3 |P
9> .....|..\.........{PP| Q2============XGXG============Q4 |P
A> .....|....\.......{PP| |PP| |P
B> .....|......\.....{PP|\\ |PP| |P
6:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0> ?B?B?B|ww|?B?B?B RRRRRR
1> Q1----Q3 |ww| RRRRRR #B#B#B
2> Q2====Q4 |ww| XRXRXRXRXRXR
3> |..| Q1------XGXG------Q3 /\
4> |..| Q2======XGXG======Q4 //..\\
5> XB------Q3 XRXRXRXRXRXR......\\
6> XB======Q4 /\ [PP] RRRRRR..........
7> P| |..| //..\\|PP| RRRRRR........
8> P| |..| //......{PP| //..RRRRRR......
9> P| |.Q1--------------XBXB------------XGXGQ3 //......RRRRRR....
A> P| |.Q2==============XBXB============XGXGQ4//..........RRRRRRRR
B> P| |..| |PP}............{PP}..\\............RRRRRR
7:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0> $$$$
1> $$ $$ ?Z?Z?Z?Z?Z pPPp
2> qQQq
3> /ZZ\ Q5
4> ?Z?Z?Z?Z?Z Q6
5> [PP] |..| #Z#Z Q6
6> \\ ?B|PP|?B /ZZZZ\.| #Z#Z Q6
7> ..\\ |PP| ?Z?Z?Z?Z?Z Q6
8> ....\\ |PP| |....|.| ^^ Q6
9> ......\\ |PP| |....|.| ^^ Q7
A> RRRRRRRRRRRRRR{PP}RRRRRRRRRRR\ /ZZZZZZZZZZZZZZZZZZZZZZ\ /ZZ\
B> RRRRRRRRRRRRRR{PP}RRRRRRRRRRRR |......................|[PP]|..|
Also, pipe room #1: (1 screen long) (perhaps for world 1-2? That is, when I re-
do 1-2 to look like superMario2 cheez, which will happen shortly after
1-4!) Personally, I think this will look awesome!:
0:=1-2-3-4-5-6-7-8-9=1=1-2-3-4-5-6-7-8-9=2=1-2-3-4-5-6-7-8-9=3=1-2-
0> vvvv[R[R (PP) [R[Rvvvv
1> vvvvvv[R [Rvvvvvv
2> vvvv[R[R [G [G [R[Rvvvv
3> vv[R[R [G [G [R[Rvv
4> [R[R $$ $$ [R[R
5> [R $P$P $$ $$ $P$P [R
6> [R $P$P $$$$$$$$$$$$ $P$PQ1--
7> [R $$$$$$$$ Q2==
8> [RAVVVV\ /WWWWW[R
9> [R[Rvvv| |www[R[R
A> vv[R[Rv| |w[R[Rvv
B> vvvv[R[R[R[R[R[R[R[R[R[R[R[RvvvvEdit: I managed to dig up the program too! Here it is:
ZOGMAP.CONV
10 DIM B$(200),A(200),B(200),N$(200),R$(12)
15 D$ = CHR$ (4): HGR : TEXT : HOME
20 PRINT "File number:";: GET A: PRINT A
30 PRINT : PRINT "Initializing block equivalents:"
35 PRINT D$;"open edit.dir/level";A;".txt"
37 PRINT D$;"read edit.dir/level";A;".txt"
40 BN = 1: PRINT
45 INPUT B$(BN)
50 INPUT A(BN),B(BN),N$(BN)
51 IF N$(BN) = "MapStart" THEN GOTO 60
52 IF LEN (B$(BN)) < 2 THEN B$(BN) = B$(BN) + LEFT$ (" ",2 - LEN (
B$(BN)))
55 PRINT "|";B$(BN);"| ";N$(BN);" ";A(BN);",";B(BN)
56 BN = BN + 1: GOTO 45
60 PRINT : PRINT "Total blocks:";BN - 1
65 PRINT : PRINT "Writing world:";A(BN);"-";B$(BN)
66 BN = BN - 1:MA = 8192:MB = 12288
70 INPUT P$: IF P$ = "End" THEN GOTO 200
71 P = VAL (P$): PRINT "Page:";P
72 FOR X = 1 TO 12: INPUT R$(X)
74 IF LEN (R$(X)) < 65 THEN R$(X) = R$(X) + LEFT$ ("
",65 - LEN (R$(X)))
78 NEXT X
80 FOR X = 0 TO 31: PRINT "Column:";X
85 FOR Y = 0 TO 11
86 PRINT "|"; MID$ (R$(Y + 1),(X * 2) + 2,2);"| ";
90 FOR Z = 1 TO BN: IF MID$ (R$(Y + 1),(X * 2) + 2,2) = B$(Z) THEN GOTO
110
100 NEXT Z: PRINT "Unknown!":Z = 1: GOTO 115
110 PRINT N$(Z)
115 POKE MA + (P * 384) + (X * 12) + Y,A(Z)
120 POKE MB + (P * 768) + (X * 24) + (Y * 2),B(Z) - INT (B(Z) / 256) *
256
125 POKE MB + (P * 768) + 1 + (X * 24) + (Y * 2), INT (B(Z) / 256)
130 NEXT Y: NEXT X: GOTO 70
200 PRINT : PRINT D$;"close"
210 PRINT "Saving..."
220 PRINT : PRINT D$;"bsave maps/wd";A(BN + 1);B$(BN + 1);",a$2000,l$30
00"