Boulder Dash Common File Format

Proposal written by: Tim Stridmann

Version: 0.32

Last modified: 14 February 2004

Based on: Grant Walker's text format proposal and Michal Kowalski's Boulder Rush cave format

The structure

; A comment line
[BDCFF] ; BDCFF necessary header
; Info about BDCFF version, etc.
Version=0.2

[game]
; game and default cave attributes

[mapcodes]
; extended codes for map-coded caves, may be absent.
Length=1	; The length (1 or 2 characters) of the map-codes. Default value = 1
; For example,
.=DIRT
W=STEELWALL
; ...etc. If Length = 2 then ..=DIRT, Ws=STEELWALL, etc.
[/mapcodes]

[cave]
; cave data and attributes
Size=6 5

[demo]
; demo data for this cave, all demo may be in one line, i.e. .30ur7 etc.
.30	; no movement for 30 turns
u	; move up one space
r7	; move right 7 spaces
; etc.
[/demo]

[objects]
; cave objects data, this is absent if cave is map-coded.
; For example,
Point=1 1 INBOX
Line=2 1 2 4 DIAMOND
Point=4 3 OUTBOX
[/objects]

[/cave]

[cave]
; next cave, etc.

[map]
; a map of a cave, is absent if cave is object-coded.
; For example,
WWWWWW
WXd..W
W.d..W
W.d..W
W.d.PW
WWWWWW
[/map]

[/cave]

[/game]

[/BDCFF]

The Attributes

Name
Cave (or game) title (string)
Date
Date of cave (or game) creating (string, 2002 or 2002-10 or 2002-10-31 format)
Author
Cave (or game) author (string, for cave default equals game author)
WWW
Link to author's webpage
Description
Cave (or game) description (string)
Charset
Character set, for example "space" for BD3, default = "original"
Fontset
Font set, for example "space" for BD3, default = "original"
Difficulty
Difficulty of the game (or level). For info purposes
Lives
Initial number of lives (number, default = 3). Available only in [game] section
BonusLife
Bonus life score (number, default = 500)
Levels
Default number of levels (number, default = 1). Available only in [game] section
Intermission
Is intermission (boolean, default value = false). Available only in [cave] section
CaveSize
Default cave width and height (two numbers, default values = 40 and 22). Available only in [game] section
IntermissionSize
Default intermission cave width and height (two numbers, default values = 20 and 12). Available only in [game] section
Size
Current cave width and height (two numbers, default values correspond to game info). Available only in [cave] section
DiamondValue
Number of points per diamond (two or one numbers, second value is number of bonus points per diamond)
DiamondsRequired
Number of diamonds required to successfully finish the cave for each level (five - or one - numbers). Available only in [cave] section
CaveTime
Cave total times for each level (five - or one - numbers). Available only in [cave] section
CaveDelay
Used in BoulderDash Construction Kit engine
Colors
Cave colors (string, five or less color names. May be not used)
InitialFill
Initial fill element (element name). This element is used to fill entire field. Default is DIRT
RandSeed
Random generator seed values for corresponding pseudo-randomly placed elements (five numbers)
RandomFill
Pseudo-randomly placed elements (four or less pairs of element name and it's probability). This info is used to pseudo-randomly fill entire field. Available only in [cave] section
MagicWallTime
Magic wall milling time (number)
AmoebaTime
Amoeba slow growth time (number)
AmoebaGrowthProb
Amoeba slow (and fast) growth probability (two or one number, default values = 0.03 and 0.25)
AmoebaThreshold
The percentage of the cave the amoeba is allowed to occupy before turning to boulders (number, default = 0.227)
SlimePermeability
Slime permeability (number)
HatchingDelay
Rockford's hatching delay (number)

Cave Objects

Point=x y element
Single element placed on given position
Line=x1 y1 x2 y2 element
Line of elements
Rectangle=x1 y1 x2 y2 element
Outlined rectangle of elements
FillRect=x1 y1 x2 y2 element [element2]
Filled rectangle of elements
Raster=x y numberx numbery stepx stepy element
Add=incx incy element1 element2
This was used only in BD2 as I know.

Cave Elements and Default Map Codes

element1 char. code2 char. code
SPACE  
DIRT...
WALLw 
MAGICWALLM 
OUTBOXX 
HIDDENOUTBOXH 
STEELWALLW 
FIREFLYlQol
FIREFLYuoou
FIREFLYrOor
FIREFLYdqod
BOULDERrrr
BOULDERf rf
DIAMONDddd
DIAMONDf df
INBOXP 
HEXPANDINGWALLx 
VEXPANDINGWALLv 
EXPANDINGWALLV 
BUTTERFLYdcbd
BUTTERFLYlCbl
BUTTERFLYubbu
BUTTERFLYrBbr
AMOEBAa 
SLIMEs 

History