Modding 101 - For Beginners

Discussion forum for Devil Whiskey 3rd Party MODS.

Moderator: Admin

User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Modding 101 - For Beginners

Post by origen »

The first tip I will offer for anyone who is thinking about beginning a mod, either a simple one level, or a more complex web of deception, should be to get an idea of the purpose of your mod, and to draw it our on Graph Paper (ideally without being numbered initially, in case you want to use wrap-around magic.)

Anyone who is just converting an existing game (such as what I am doing for Bard's Tale) should have an advantage since the maps may already be out there for you.

So, anyone who is interested in taking this little tour should put something down on graph paper and let me know when you are ready for step 2. :D
Last edited by origen on Fri Apr 01, 2005 10:19 am, edited 1 time in total.
User avatar
Growler
Necrolord
Posts: 1740
Joined: Mon Feb 14, 2005 10:37 pm
Location: Sputnik
Contact:

Post by Growler »

READY! :wink:

(got a couple small 5x5 (& lil bigger) dungeon-style maps been using to introduce RPG's to my niece & neph)
No Contraries : No Progression.
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Post by origen »

The next step will be to define our walls textures. There are two different ways of doing this file, and they both work the same way. The first way is to have 1 wall file for each level you are building. The second way is to have 1 wall file for all of your mods. The differences are as follows:

For the individual level wall files (usually names xxxwall.cfg, with xxx representing the name of the level), should only contain the wall textures that will be in that one level.

For the wall file that will be used for all levels (which I name allwall.cfg), it will include every wall texture that is included in the game.

To see the names of all of the wall textures, you need to go to your pics/walls folder inside your Devil Whiskey folder. Because these are dat files, you can not see what these pictures look like (as far as I know) until you put them in the game.

For each texture you are using, you need to put the following information (and note that each different texture requires it's own line)

<WallName> <texture pic file> <collision-integer> <special type> <height>

Wall Name is the name that you will use to refer to this wall texture. You can make it anything you want, but remember that punctuation does matter, there can not be any blank spaces, and you can not have more than 1 wall texture with the same name.

The texture pic file is the path and name of the texture file.

Collision Integer can be set to either 0 (the player can pass through, i.e. doors) or 1 (the player can not pass through, i.e. walls)

Special type represents one of the following: 0 = Standard 1 = Secret Door (-1) = Floor Tile (Do not include the parenthesis)

Height is any value from 1 to 4. If no value is given, it will default to 1.

A brief example of what this might look like is:

Code: Select all

CaveWall1  pics/walls/cave1.dat  1  0  1
CaveDoor1 pics/walls/cave_door.dat 0 0 1
This will provide us with 1 wall texture (which can not be passed through), and 1 door texture.

One thing to remember about height is that if the map does not define a ceiling (an outdoor map), the height will be calculated as the height from the floor. If the map does define a ceiling (a dungeon or castle, for example) the height is the distance from the ceiling, not the floor.

Most of this was taken out of the Maps tutorial, since this is pretty basic stuff. You should define as many wall and door textures as you feel you need. The height may need some adjusting, since some textures are naturally 4 heights, and will look unnaturally squished if the height is set to 1, and some textures are naturally 1 heights, and will look abnormally stretched if the height is set to 4.

Any questions so far? If not, then create your Wall file and save it in youe maps folder. You can always look at an existing Walls file if you want to see an example of a complete walls file.
User avatar
Growler
Necrolord
Posts: 1740
Joined: Mon Feb 14, 2005 10:37 pm
Location: Sputnik
Contact:

Post by Growler »

Excellent step-by-step....how's this for a basic Walls Texture getup?

file= "allwall.cfg" & it goeth in the 'maps' folder

Code: Select all

#Standard Cave Wall
CaveWall_1  pics/walls/cave1.dat     1 0 1


CaveDoor_1  pics/walls/cave_door.dat 0 0 1


CaveDoor_2  pics/walls/cave1.dat     0 1 1
Should any 'floor/ceiling'-related info go here?

& where you describe:
<special type> represents:
0 = Standard
1 = Secret Door
-1 = Floor Tile
Is '-1/floor-tile' basically an empty space which you can walk ‘into’ or across?
No Contraries : No Progression.
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
User avatar
HGamer
War Monger
Posts: 188
Joined: Thu Feb 10, 2005 7:59 pm
Location: Land of fruits & nuts, i.e. SoCal
Contact:

Post by HGamer »

To be annoying, I wonder if how you would handle an outdoor (i.e. no ceiling) square that the party is supposed to walk underneath. Like a castle gate. The way DW does it now, at least as seen in Rennibister, is to put a 1-high open gateway "wall" there. I think if a wall texture was made that was 2 or more units high, and transparent (or mostly transparent) on the lowest unit, it would do what I'm after. But for now, I'll use what's available.

Good tutorial so far, the part about the graph paper and wraparound is oh-so-true. I use Excel to do my maps, once I set up a square-sized cell in the spreadsheet, and just draw using the cell borders in different thicknesses and colors (& patterns if necessary). Because you can insert more rows or columns as needed, it makes resizing the map easy compared to paper.

Growler, so far so good. This "allwall.cfg" file is just to define what a typical wall, door, etc. look like. Origen will get to another file that defines the floor and ceiling soon.
1 point 21 jigawatts!
User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Post by origen »

So far, so good, Growler. As HGamer said, we will get into the other files a little later, which will define your ceiling and wall textures.

The -1 floor tile is used for any place where the floor will be different than the default floor. A good example of this is the Path that leads from the Adventurers Hall to the gates in Renibister.
User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Post by origen »

Okay, moving on, the next file we will create is the Cells file. As with the walls file, you can create a standard file that you can use for all of your maps, but there is the possibility that it can get confusing. For my maps, I use a different calls file for each map, but I try to keep all of my cell names consistent, as I am sure I have repeated many times. The cell file (usually named "xxxcell.cfg"), is what is used to define each individual cell in youe map. A cell can have a wall at any of the cardinal directions (North, South, East, and West), as well as a special floor texture, or a single garnish that is placed in the center of the cell. The DW format is to start by defining the North Wall, then West, South, and East (working counterclockwise). A line from a cell.cfg file will appear like this:

Code: Select all

<Cell name> <N Wall> <W Wall> <S Wall> <E Wall> <type> <floor> <garnish>
The cell name is only the name that you will refer to each cell. This name will be used by the main map config file.

For each of N Wall, W Wall, S Wall, and E Wall, this represents what will appear on the respective side of the cell. If there will be no texture on any wall, you should use "NULL" to define that side.

The cell type will be defined as either 0, 1, or 2. 0 means a normal cell, 1 is a cell with a special floor texture, and 2 is a cell that has a garnish.

The floor texture, if type 1 or 2, give the texture that will be shown on the floor, or "NULL" is default.

For the garnish texture, if type 1 or 2, give the garnish texture that will be displayed, or "NULL" if default.

For each texture that you use, it must be used in your walls.cfg file. Here is a sample of what a cells file will look like:

Code: Select all

DEFAULT NULL NULL NULL NULL 0 NULL NULL
NWall CaveWall1 NULL NULL NULL 0 NULL NULL
EWall NULL NULL NULL CaveWall1 0 NULL NULL
DoorN CaveDoor1 NULL NULL NULL 0 NULL NULL
DoorE NULL NULL NULL CaveDoor1 0 NULL NULL
All cells files MUST include a line labeled DEFAULT, as above. This is what every cell will look like unless you define otherwise. For this file, you need to determine every type of cell you will use. For my cells files, I only define the North and East walls, and work from there. In that case, you would need to define the following cells:

NWall
EWall
NEwall
DoorN
DoorE
DoorNE
DoorNWallE
WallNDoorE

So, if there are no questions at this time, then create your cells file and save it in your maps folder. This is another basic map, but we are starting to get to the good stuff.
User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Post by origen »

An interesting note about the floor textures and garnishes is that a cell with a garnish can not be walked on. But, if you define a special floor texture that is actually a garnish, then you can walk on that cell. I believe it was HGamer whi figured that one out.
User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Post by origen »

For the monsters file, at this point you don't need to know anything, except to make a file that looks exactly lik e this:

Code: Select all

0 0
and save it as xxxmon.cfg

This will create a monsters file with no encounters, so we can test the cells, walls, and textures without being distracted. We will go more in depth into this file later.
User avatar
Growler
Necrolord
Posts: 1740
Joined: Mon Feb 14, 2005 10:37 pm
Location: Sputnik
Contact:

Post by Growler »

Garnishes?? What's this---Cooking with Style 409?! :twisted:

Think I'm getting the general drift here...it's like a construction set:
make some walls,
use walls to make cells,
use cells to make maps,
use maps to make worlds,
use worlds to control universal destiny!

ok, all seriousness aside...
HGamer, you mind sharing that groovin' maps-spreadsheet? :D
(happy to host-post it if so)

Origen, how do you get by with just defining N & E walls?
Guessing a N wall from one cell = a S wall from an adjacent (northern) cell?

So a 'NE Wall' cell simply means a cell defined by having a wall to N & a wall to E..? Then, to close it off, say, you could have another 'NE Wall' cell placed just to the SW of the original one?
If this is correct, it seems both counter-intuitive, yet apparently efficient?

That way you don't have to establish all 4 sides to every single cell--just 1 or 2 for one cell, then finish the boundaries/walls from adjacent cells?

But this way would seem to require an 'extra' outer perimeter (at least on the SW side) in order to complete a dungeon's outer rooms (cells), right?

I'll use the Cell parameter/names you suggested for now..& maybe later implement stuff like 'SecretDoorNWallE'.
No Contraries : No Progression.
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
User avatar
Growler
Necrolord
Posts: 1740
Joined: Mon Feb 14, 2005 10:37 pm
Location: Sputnik
Contact:

Post by Growler »

Assuming the xxxmon.cfg file also goes in the Maps folder?
Can this file be named:
TESTCELLmon.cfg ? ~ or does it need to match my 'allcell.cfg' as in 'allcellmon.cfg' ?

If it'll work, got TESTCELLmon.cfg (text= '0 0') in maps folder along with allcell.cfg which contains:

Code: Select all

#<Cell name>  <N Wall>  <W Wall> <S Wall> <E Wall>   <type> <floor> <garnish>
DEFAULT         NULL      NULL     NULL     NULL       0      NULL    NULL
Nwall        CaveWall_1   NULL     NULL     NULL       0      NULL    NULL
Ewall           NULL      NULL     NULL   CaveWall_1   0      NULL    NULL
NEwall       CaveWall_1   NULL     NULL   CaveWall_1   0      NULL    NULL   
DoorN        CaveDoor_1   NULL     NULL     NULL       0      NULL    NULL
DoorE           NULL      NULL     NULL   CaveDoor_1   0      NULL    NULL
DoorNE       CaveDoor_1   NULL     NULL   CaveDoor_1   0      NULL    NULL
DoorNwallE   CaveDoor_1   NULL     NULL   CaveWall_1   0      NULL    NULL
DoorEwallN   CaveWall_1   NULL     NULL   CaveDoor_1   0      NULL    NULL





See any probs with my altering a few of the Cell Names?
Just thought it'd confuse me later if I had a Cell named: 'NWall' ...after a few pints, might think a magic [i]NorthWest[/i] wall had emerged! :P
No Contraries : No Progression.
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Post by origen »

You bring up some good points. First, the monsters folder does go in the maps folder as well. And the names do not have to have any consistency on the map, so that name works.

But your description of the map files to control universal destiny is right on point.

The cell names you used are not a problem, as long as they mnake sense to you. You can add as many as you would like.

I will go more into why we only define the North and West after I return from work.
User avatar
HGamer
War Monger
Posts: 188
Joined: Thu Feb 10, 2005 7:59 pm
Location: Land of fruits & nuts, i.e. SoCal
Contact:

Post by HGamer »

Any Excel spreadsheet could be used for drawing maps, the only one that I have available right now is all the maps for The Bard's Lore as separate sheets for each map. Sort of like what Origen did for his mod, but drawn graphically. I find it easier to work with the map visually, then do the conversion to "only N & W walls" while typing into the .cfg file. You could also use a Word table with square cells, but it wouldn't be as easy to manipulate.
Origen promises to explain why only N & W soon, but it could be any two sides as long as they aren't opposite directions.
You can use anything for your cell names, even "George", as long as you're consistent between the various files. Underscores ("_") are OK, but spaces are not.
1 point 21 jigawatts!
User avatar
origen
Dark Sidhe Lord
Posts: 903
Joined: Thu Feb 10, 2005 5:54 pm
Location: Secret League of Nirulat Headquarters
Contact:

Post by origen »

I will mention that 1 thing I do not like about these new forums is that if there is an error ehrn you try to submit what you typed, it erases everything and you have to start from scratch. So, instead of retype this long port whish I just tried to send, I will give you the gist of it.

1. As HGamer mentioned, you can use any 2 walls, as long as they are adjacent. Whatever you use, however, make it consistent. This only has to make sense to you, not anyone else.

2. If you define all of the walls in each cell, it would cause overlapping (The East Wall and West Wall of adjacent cells will actually be the same wall) and would make the game run slower on some computers.

3. For my mod, I had my maps on graph paper, and then converted them to my excel spreadsheet.
User avatar
Growler
Necrolord
Posts: 1740
Joined: Mon Feb 14, 2005 10:37 pm
Location: Sputnik
Contact:

Post by Growler »

Thanks for the add'l tips, Origen...sorry your longer piece got nullified! :cry:

Would it be worth it to tap it out in a word processor 1st, then cut'n'paste it into the forum?

Btw, I'm piecing together & saving your on-going/interactive 'tutorial' (w/ HGamer's tips added) in a single document...easier to read/follow & there's a backup of your efforts if the forum ever--:o--goes down again.
I'll post it for others when it's fini.
No Contraries : No Progression.
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
Post Reply