Modding 101 - For Beginners
Moderator: Admin
- 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
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.
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.
Last edited by origen on Fri Apr 01, 2005 10:19 am, edited 1 time in total.
READY!
(got a couple small 5x5 (& lil bigger) dungeon-style maps been using to introduce RPG's to my niece & neph)
(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
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
- origen
- Dark Sidhe Lord
- Posts: 903
- Joined: Thu Feb 10, 2005 5:54 pm
- Location: Secret League of Nirulat Headquarters
- Contact:
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:
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.
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
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.
Excellent step-by-step....how's this for a basic Walls Texture getup?
file= "allwall.cfg" & it goeth in the 'maps' folder
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?
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
& 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
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
- HGamer
- War Monger
- Posts: 188
- Joined: Thu Feb 10, 2005 7:59 pm
- Location: Land of fruits & nuts, i.e. SoCal
- Contact:
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.
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!
- origen
- Dark Sidhe Lord
- Posts: 903
- Joined: Thu Feb 10, 2005 5:54 pm
- Location: Secret League of Nirulat Headquarters
- Contact:
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.
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.
- origen
- Dark Sidhe Lord
- Posts: 903
- Joined: Thu Feb 10, 2005 5:54 pm
- Location: Secret League of Nirulat Headquarters
- Contact:
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:
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:
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.
Code: Select all
<Cell name> <N Wall> <W Wall> <S Wall> <E Wall> <type> <floor> <garnish>
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
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.
- origen
- Dark Sidhe Lord
- Posts: 903
- Joined: Thu Feb 10, 2005 5:54 pm
- Location: Secret League of Nirulat Headquarters
- Contact:
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:
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.
Code: Select all
0 0
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.
Garnishes?? What's this---Cooking with Style 409?!
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?
(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'.
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?
(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
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
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:
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
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor
- origen
- Dark Sidhe Lord
- Posts: 903
- Joined: Thu Feb 10, 2005 5:54 pm
- Location: Secret League of Nirulat Headquarters
- Contact:
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.
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.
- HGamer
- War Monger
- Posts: 188
- Joined: Thu Feb 10, 2005 7:59 pm
- Location: Land of fruits & nuts, i.e. SoCal
- Contact:
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.
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!
- origen
- Dark Sidhe Lord
- Posts: 903
- Joined: Thu Feb 10, 2005 5:54 pm
- Location: Secret League of Nirulat Headquarters
- Contact:
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.
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.
Thanks for the add'l tips, Origen...sorry your longer piece got nullified!
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.
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
Opposition is true friendship, unless one is opposed to true friendship or (try) Resisting here http://www.cafepress.com/notheresistor