Resources Log in to Edit

World Map

The following files are now generated from the land.tmx map:

  • land.org -- binary, world data
  • land.ini -- world properties
  • castles.ini -- castle properties
  • towns.ini -- town properties
  • signs.txt -- signpost texts

land.tmx is a Tiled map. (The conversion is performed by the kbtmx.py python tool)

Strings

Credits

Free module reads credits from credits.txt file. Whitespace is important and should be used for formatting.

Ending text

Free module reads ending text(s) from endwin.txt and endlose.txt files. Note, that each file is formatted to fit into 21 lines and 20 columns, and also uses several %s and %d to display player's name, title and final scores.

Signs

Free module reads signpost text from signs.txt file. Each sign takes two lines of text. Thus, to edit sign N, goto line N/2. Each line should not exceed 27 characters to fit into classic UI.

Villains

Villain descriptions are kept in {dos-villain-name}.txt files. See below for a list. Whitespace is important and should be used for formatting. Don't forget to leave space for villain portrait. Rewards are currently plain-text and not %d, to comply with DOS villain format, this might change in the future!

Example for DOS-inspired mury.txt:

       Name: Murray the Miser
       Alias: None
       Reward: 5,000 gold
       Last Seen: %s
          Castle: %s
Distinguishing features:
  Threadbare clothres, bald
  patch with hair combed to
  cover it, incessant cough.
Crimes: Murray is wanted for
  various petty crimes as well
  as for treason. He allowed a
  group of pirates to enter the
  castle and free criminals.

Graphics

Free module uses PNG format for most of it's graphics. Filenames follow the {dos_image_name}{-optional_frame_number}.png pattern.

DOS image files were capable of keeping several distinct images (AKA "frames") in one file. For example, troop.256 in DOS version contains 4 separate 48x34 px images, which could be (and are) loaded separately. To simulate this behavior, troop.png in the Free module is 192x34 px wide (4 frames * 48 px = 192 px), and contains all 4 frames.

But it is also possible to keep each frame in a separate file. To specify a particular frame, -optional_frame_number (including the dash) could be added to the filename. For example, select.256 in DOS version contains 3 images: 288x184 px character selection screen, 320x5 px UI border and 48x44 px artist's signature. In Free module, each such image is kept as a separate file, called select-0.png, select-1.png and select-2.png.

Troops

Various troop stats (such as name, hit points, abilities) are kept in troops.ini file, with [troop<INDEX>] sections where INDEX is an integer from 0 to 25. That maps directly into the list below.

Free module reads troop graphics from {dos-troop-name}.png files. Such files should contain 4 frames of troop animation, each frame being 48x34 px wide (192x34 px total).

List of DOS troop names:

  • peas -- Peasant
  • spri -- Sprite
  • mili -- Militia
  • wolf -- Wolf
  • skel -- Skeleton
  • zomb -- Zombie
  • gnom -- Gnome
  • orcs -- Orc
  • arcr -- Archer
  • elfs -- Elven archer
  • pike -- Pike-man
  • noma -- Nomad
  • dwar -- Dwarf
  • ghos -- Ghost
  • kght -- Knight
  • ogre -- Ogre
  • brbn -- Barbarian
  • trol -- Troll
  • cavl -- Cavalery
  • drui -- Druid
  • arcm -- Archmage
  • vamp -- Vampire
  • gian -- Giant
  • demo -- Demon
  • drag -- Dragon

Villain Portraits

Villain names and others stats are read from villains.ini file. Each section is should be called [villain<INDEX>], with INDEX being 0 to 16, mapped into the table below. For example, first villain could be defined like this:

[villain0]
name = Murray the Miser
file = mury
reward = 5000
army0 = 50 x Peasants
army1 = 20 x Wolf
army2 = 25 x Militia
army3 = 30 x Peasants
army4 = 25 x Peasants

Free module reads villain portraits from {dos-villain-name}.png files. Such files should contain 4 frames of animated villain portrait, each frame being 48x34px wide (192x34px total).

List of DOS villain names:

  • mury
  • hack
  • ammi
  • baro
  • drea
  • cane
  • mora
  • barr
  • barg
  • rina
  • ragf
  • mahk
  • auri
  • czar
  • magu
  • urth
  • arec

Player

  • endpic-2 -- 48x34 px. Grass tile for ending animation
  • endpic-3 -- 48x34 px. Carpet tile for ending animation
  • endpic-4 -- 48x34 px. Hero sprite for ending animation
  • cursor -- Hero sprite for the game (and UI icons)

Tilesets

Tilesets are kept in tileseta and tilesetb files. Tilesize is 48x34. Both files contain 36 tiles. This leads to 72 tiles used in the game. Additionally, tilesalt contains 3 replacement tiles for continents 1-3. Those are embedded at tiles 0x11-0x13.

Combat tiles are kept in comtiles -- there should be ...

Backgrounds

240x102 px.

A troop will be superimposed on the bottom left corner.

  • town -- Town
  • cstl -- Castle
  • plai -- Plains
  • frst -- Forest
  • dngn -- Dungeon
  • cave -- Cave

Character Portraits

96x102 px.

Might share graphics with select-0 screen.

  • knig -- Knight
  • pala -- Paladin
  • sorc -- Sorceress
  • barb -- Barbarian

"High-res" screens

  • select-0

Character selection screen. 288x184px.

ref:

UI

  • nwcp -- "Company" Logo. 320x84 px.
  • title -- Title screen (with UI borders!) 320x200 px.
  • select-0 - Character selection screen. 288x184 px.
  • endpic-0 - Game won screen. 144x170 px.
  • endpic-1 - Game lost screen. 144x170 px.

  • select-1 -- UI separator border. 288x184 px.

  • select-2 -- Artist's signature. 42x44 px.
  • cursor -- UI icons for the game (and the hero sprite)
  • view -- 14 inventory slots (including an empty one)
  • comtiles -- combat tileset

Font

Free module uses openkb8x8.bmp as it's font. The file is 16x16 table (128 ascii symbols) kept as 1-bit bmp.

Sounds/Music

Tunes

Free module SHOULD first try tuneNN.ogg file, then tuneNN.wav and then tuneNN.ini when searching for tune files.

Each tune has an assigned number NN, forming the following list:

  • 00 - Walk sound
  • 01 - Bump sound
  • 02 - ? unknown melody?
  • 03 - Combat Victory
  • 04 - ?unknown melody?
  • 05 - Chest Taken
  • 06 - ?unknown melody?
  • 07 - Combat Defeat
  • 08 - ?unknown melody?
  • 09 - ?unknown sound effect?

The .ini format follows this convention:

[palette]
C2=220
A1=250
L1=300

[tune]
play=L1 A1 C2 A1 C2

In the [palette] section, you can specify any frequency (in hertz) for any desired note. You can also control the "duration palette", for the "note length" (L) command (in milliseconds).

In the [tune] section, you must provide a play= entry with the melody spelled out. The synatx loosely follows QB "play" commandstring. You must provide a set of notes
to be played, separated by space. You can pick a note from any octave (C2 C3), and set note durations using the L command (by default, L1 stands for 1000ms, L2 for 500ms, and so on). This can be controlled from the palette section, for example, the listing above sets L1 to mean 300ms "note length".


Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.