How To Make Your Own Levels

 

With GreenSnake1.2 you can create and play your own levels. You will need the freeware level-editor "Mappy" for this and a text editor (and may-be a paint program to make new graphics).

 

Download MappyWin32 V1.3.21

   http://www.geocities.com/SiliconValley/Vista/7336/robmpy.htm

Create a new zone first

Don't make a level, create a whole new zone! A zone contains some levels (may-be 4 or  more). Think of a name for the zone and create a new directory in "GreenSnake/Data/Levels".

If the name is longer than 12 chars it will only be displayed in title screen, not in game screen.

> mkdir GreenSnake/Data/Levels/MyNewZone

Description text file for the zone

Create a file "level.txt" in that new zone directory or copy the example file "GreenSnake/Data/Levels/level.txt" there.

> copy GreenSnake/Data/Levels/level.txt GreenSnake/Data/Levels/MyNewZone/   

Use Mappy to create one or more level-files

Level-files are the ones which have the ending ".fmp". A Mappy-level-file is a tile-map. You define a set of tiles (blocks) and place the blocks in a map. The map can be any size. The blocks got the size 20x20 pixels.

It might be easier to load an existing level and reuse the blocks there. Draw a new map and save this to the new level-file.

Don't forget to place a snake into the map for a start. Just draw one head and some snake body pieces to follow it. Use the right head for the right direction.

> mapwin.exe ...

Edit "level.txt" to add some more parameters

Look at the example file and its comments to understand the format of the file. Here you tell the loading program

·        what levels are included in this zone

·        the order of the levels

·        how fast the snake will go in each level

·        the time-limit for each level

·        background color of the whole zone

·        which bitmap-file to use for the snake-graphics

·        skill (how hard this zone is to play)

·        author

Errors

If there are fatal errors reading in any "level.txt" files or zone directories then look at the log files to get an idea what might be wrong. Log files are: "GreenSnake/log.txt" and "GreenSnake/errorLog.txt".

Test play your levels

The game program examines the "levels" directory and reloads all "level.txt" files when it enters the title screen or when you press l (for load) in title screen. So if you make some changes to the levels (create a new zone directory or change a level.txt file) return to title screen once (or press l there) to let the program know (or even restart the whole game). Then you should see all zones and if you play a new game the new parameter values should take effect. There are two cheat keys and the first one allows you to navigate to the level you want to test:

Create your own block-images

A map consists of many blocks. Each block is 20x20 pixels. You can import new block  graphics into Mappy. Just create a Bitmap-File with the graphics in there. GreenSnake will always use the blocks depending on their blockindex.

 

Index

Block

Meaning

0

don't use

1

empty space, snake can go here

2

Gold

3

Wall

4

Wall

5

snake body for start position

6

snake head for start position

7

snake head for start position

8

snake head for start position

9

snake head for start position

10

Bonus : half size

11

Bonus : slow down

12

Bonus : extra points

13

Bonus : extra time

>13

Walls

 

Starting with index 14 you can create as many different wall-blocks as you need. The blocks 5 to 9 are used to mark the start-position of the snake (e.g one of the heads and 3 times the body to follow it). The actual snake-graphics are not taken from the blocks in the level-file. To change the real snake gfx you need to edit another bitmap-file.

Design new snake graphics

Look at the standard snake graphic file in "GreenSnake/Data/Gfx/items.bmp"

 

 

Here you see 5 block-sets, each set consisting of 4 blocks. One set is vertical (the left row) and the other 4 sets are the remaining horizontal lines (sorry for this confusing arrangement).

 

left column

4 blocks for the slide-in-animation of the snake body

first row : block 2,3,4,5

normal snake head with open eyes

second row : block 2,3,4,5

normal snake head with closed eyes

(snake closes eyes from time to time)

third row : blocks 2,3,4,5

blinking animation for snake body

animation order = 2,3,4,5,4,3,2

fourth row : blocks 2,3,4,5

bumping snake head

used when snake hits a wall

 

If you design a zone where the levels don't use black (0x000000) as the background color, then new snake-graphics might be needed because the standard graphics have a border to blend into a dark background. There is another graphics-set

  "GreenSnake/Data/Gfx/items_blue.bmp"

for lighter backgrounds. May-be this is sufficient for most of the lighter background colors.